Как создать двух пользователей с заданными настройками и добавить их в группы с помощью скрипта PowerShell? После выполнения скрипта один пользователь создается и добавляется в группы, а второй создается, но не добавляется в группы. Как исправить эту проблему?
Ошибка при использовании команды Add-LocalGroupMember может быть связана с неправильным указанием имени пользователя или названия группы. Другая возможная причина - отсутствие прав администратора при выполнении команды. Чтобы создать двух пользователей с заданными настройками и добавить их в группы, можно использовать следующий скрипт PowerShell: ```powershell # Создание первого пользователя $user1 = New-LocalUser -Name "User1" -Description "User 1" -Password (ConvertTo-SecureString "Password1" -AsPlainText -Force) Add-LocalGroupMember -Group "Group1" -Member $user1.Name Add-LocalGroupMember -Group "Group2" -Member $user1.Name # Создание второго пользователя $user2 = New-LocalUser -Name "User2" -Description "User 2" -Password (ConvertTo-SecureString "Password2" -AsPlainText -Force) Add-LocalGroupMember -Group "Group1" -Member $user2.Name Add-LocalGroupMember -Group "Group2" -Member $user2.Name ``` В данном примере создаются два пользователя - "User1" и "User2" с соответствующими настройками, а затем они добавляются в группы "Group1" и "Group2" при помощи команды Add-LocalGroupMember. Убедитесь, что у вас есть административные права для выполнения команды Add-LocalGroupMember и указание правильных имен польователя и группы.
Попробуйте добавлять не имя, а результат new-localuser или get-localuser, раз уж создан
MaxKozlov, спасибо помогло добавление еще одной переменной после создания пользака и запихивания туда выхлопа Get-LocalUser -Name $name.
чертовски странно но оно работает ))
$name = hostname
$pass = ConvertTo-SecureString "1234567" -AsPlainText -Force
#Создаем пользака sysadmin
New-LocalUser -Name sysadmin -PasswordNeverExpires -Password $pass
Add-LocalGroupMember -Group Администраторы -Member sysadmin
Add-LocalGroupMember -Group "Пользователи удаленного рабочего стола" -Member sysadmin
#echo "$name"
#Создаем пользака с именем компа
New-LocalUser -Name $name -PasswordNeverExpires -Password $pass
$login = Get-LocalUser -Name $name
#echo "$login"
Add-LocalGroupMember -Group Администраторы -Member $login
Add-LocalGroupMember -Group "Пользователи удаленного рабочего стола" -Member $login
А работает оно так потому что
При этом
LocalUser - наследник LocalPrincipal
То есть, если в качестве Member передавать нативный объект, всё работает как часы
А если строку, то эта строка неверно преобразуется в объект.
Вот так легко создаётся LocalPricipal из имени компа.
Если залезть в исходники
AddLocalGroupMemberCommand.cs
Sam.cs
То во второй ссылке есть вызов получения сида из имени. видимо, именно он при одинаковых вводных сначала запрашивает компы, а потом юзеров