В вашем коде вы фактически не добавляете пользователя в группу.
Здесь вы фактически извлекаете объект группы, но вы ничего с ним не делаете.
#Add the account to the local admins group
$group = ([ADSI]"WinNT://$computer/$local_security_group,group")
$username = [ADSI]"WinNT://$Computer/$username,user"
Сначала вы должны удалить присвоение $username
. Затем вы должны вызвать метод объекта $group
, чтобы добавить пользователя:
#Add the account to the local admins group
$group = ([ADSI]"WinNT://$computer/$local_security_group,group")
$computerHostName = (Get-WmiObject -ComputerName $computer Win32_ComputerSystem).Name
$group.Add([ADSI]"WinNT://$computerHostName/$username,user")
Здесь есть одна загвоздка. Обратите внимание, что я использую Get-WmiObject
, чтобы получить имя хоста с компьютера. При использовании метода Add()
имя компьютера должно быть неполным именем хоста. Например, server-01
, а НЕ server-01.domain.lan
. Если вы хотите получить объект ADSI для пользователя позже, я рекомендую назначить его другому имени переменной, например:
$adsiUser = [ADSI]"WinNT://$Computer/$username,user"