我正在使用以下功能将用户添加到本地用户组。我需要将一组用户添加到我的计算机上的本地组。
function AddUsersToGroup([string]$MachineName,[string]$GroupName,[String[]]$Userarr)
{
write-host 'write: $Userarr'
Foreach($s in $Userarr)
{
write-host $s
}
$objOU = [ADSI]"WinNT://$MachineName/$GroupName,group"
Foreach($User in $Userarr)
{
$objOU.add("WinNT://$MachineName/$User,user")
}
}
$UserArray=@("Administrator", "NETWORK SERVICE", "LOCAL SERVICE","SYSTEM")
AddUsersToGroup -MachineName:"localhost" -GroupName:"Comserver Consumer",-Userarr:@("Administrator", "NETWORK SERVICE", "LOCAL SERVICE","SYSTEM")
AddUsersToGroup -MachineName:"localhost" -GroupName:"Comserver Consumer",-Userarr:@("Administrator", "NETWORK SERVICE", "LOCAL SERVICE","SYSTEM")
我收到以下错误:
检索成员时出现以下异常"添加":
找不到组名。
我是PowerShell的新手。请帮助:)
答案 0 :(得分:3)
问题在这里
-GroupName:"Comserver Consumer", -Userarr
逗号是powershell数组的分隔符。
你遇到的问题是,你用逗号分隔参数,但PowerShell会使它占用哪个空格。
查看此问题以获取更多信息: How do I pass multiple parameters into a function in PowerShell?
/更新
这是代码
function AddUsersToGroup([string]$MachineName,[string]$GroupName,[Array]$Users)
{
$Group = [ADSI]"WinNT://$MachineName/$GroupName,group"
Foreach($User in $Users)
{
Write-Host $User
$Group.Add("WinNT://$User,user")
}
}
[Array]$UserArray=@("Username", "NETWORK SERVICE", "LOCAL SERVICE","SYSTEM")
AddUsersToGroup -MachineName "localhost" -GroupName "Testgroup" -Users $UserArray
请试一试