【问题标题】:Add users to Local User Group将用户添加到本地用户组
【发布时间】:2017-02-23 01:51:20
【问题描述】:

我正在使用以下函数将用户添加到本地用户组。我需要将一组用户添加到我机器上的本地组。

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")

我收到以下错误:

检索成员“add”时发生以下异常:
找不到组名。

我是 powershell 新手。请帮忙:)

【问题讨论】:

    标签: powershell powershell-2.0


    【解决方案1】:

    问题来了

    -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
    

    请试一试

    【讨论】:

    • @user1595214 更新在这里 :)
    • 如果代码有效,请随时接受我的回答,如果无效,请与我联系,我会帮助您
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-19
    相关资源
    最近更新 更多