В чем ошибка при использовании команды Add-LocalGroupMember?

Как создать двух пользователей с заданными настройками и добавить их в группы с помощью скрипта PowerShell? После выполнения скрипта один пользователь создается и добавляется в группы, а второй создается, но не добавляется в группы. Как исправить эту проблему?
Изображение к вопросу
  • 8 декабря 2023 г. 12:19
Ответы на вопрос 2
Ошибка при использовании команды 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
То во второй ссылке есть вызов получения сида из имени. видимо, именно он при одинаковых вводных сначала запрашивает компы, а потом юзеров
Похожие вопросы