Member 10714689 Ответов: 2

Как Добавить пользователя в локальную группу администраторов с помощью powershell, если имя пользователя имеет пробел посередине?


Привет,

Я не могу добавить пользователей в локальную группу администраторов, когда имя пользователя имеет место посередине. Я читаю значения имен пользователей из CSV-файла. Требуется ли изменение в CSV-файле или в скрипте Powershell?

Спасибо в Аднвансе.

Что я уже пробовал:

foreach($Computer in $servers) {
    #Write-Host "We can now use the server name [$Computer] in our code"
    $Status=$null
    $Comment = $null
    $ComputerName= $servers.ComputerNM[$count]
    $Usrgroup = $servers.UserGroup  #"Here we get username"
    $ObjName = $servers.UserGroup[$count]
    $count++
    #Write-Host "ComputerName :" $ComputerName
    #Write-Host "Username :" $ObjName
    #Write-Host ("{0}. Working on {1}" -f $count, $ComputerName)
    if(Test-Connection -ComputerName $ComputerName -Count 1 -Quiet) {
        Write-Verbose "$ComputerName : Online"
        try {
            $GroupObj = [ADSI]"WinNT://$ComputerName/Administrators"
            $GroupObj.Add("WinNT://$ObjDomain/$ObjName")
            $Status = "Success"
            $Comment = "Added $ObjName $ObjectType to Local administrators group on [$ComputerName]"
            Write-Verbose "Successfully added $ObjName $ObjectType to $ComputerName"
        } catch {
            $Status = "Failed"
            $Comment = $ObjectType  + "[$ObjName] - " + $_.toString().replace("`n","").replace("`r","")
            Write-Verbose "Failed to add $ObjName $ObjectType to $ComputerName"
        }
        Add-Content -Path $ResultsFile -Value ("{0},{1},{2}" -f $ComputerName,$Status,$Comment )   

    } else {
        Write-Warning "$ComputerName : Offline"
        Add-Content -Path $ResultsFile -Value ("{0},{1}" -f $ComputerName,"Offline")
    }



---Это мой формат csv---

ComputerNM || UserGroup
========================
Дев || Гарри
dev || James Horner --->этот не добавляет

2 Ответов

Рейтинг:
1

MadMyche

Если имя пользователя содержит пробелы, PowerShell требует, чтобы оно было заключено в кавычки.

Вот несколько вопросов/как я нашел в Google, они должны быть в состоянии направить вас в правильном направлении о том, как решить вашу проблему:
1. [РЕШЕННЫЙ] Powershell Get-ADUser, пользователь с пробелом в имени пользователя выдает ошибку - Spiceworks[^]
2. powershell - обработка имен с пробелами - переполнение стека[^]