将用户添加到服务器的管理员组,遇到错误

时间:2013-07-02 15:04:27

标签: powershell active-directory

我正在编写一个脚本,可以让我将用户添加到一组服务器,然后在以后从该组中删除所述用户。现在,当我只有一台服务器时,我可以使脚本工作但是当我使用以逗号分隔的列表时,我收到以下错误:Exception calling "Invoke" with "2" argument(s): "Unknown error (0x80005000)"

我在必要的计算机上以管理员身份运行脚本,并且我的执行策略设置为允许脚本在我所定位的任何服务器上运行。此外,域名情况是:

目标服务器:

DomainA/ServerA
DomainA/ServerB

用户:

DomainB/UserA

我可以通过登录服务器来增加用户。这是我正在使用的代码:

param($serverName, $group, $user, $action)

if (! $serverName) {
  $serverlist = read-host "Enter server(comma separated list): ".split(",")
}

if (! $group) {
  $group = read-host "Enter group: "
}

if (! $action) {
  $action = read-host "Add, Remove or List: "
}

$objGroup = [ADSI]("WinNT://$serverName/$group")

if ($action.ToLower() -eq "list") {
  $members = @($objGroup.psbase.Invoke("Members"))
  $members | foreach {
    $_.GetType().InvokeMember("Name", 'GetProperty', $null, $_, $null)
  }
} else {
  if (! $user) {
    $user = read-host "Enter domain user id: "
  }

  foreach ($serverName in $serverList) {
    $serverName = $serverName.Trim().ToUpper()
    $objADUser = [ADSI]("WinNT://$serverName/$user")
  }

  $objGroup.PSBase.Invoke($action,$objADUser.PSBase.Path)
}

1 个答案:

答案 0 :(得分:1)

read-host "Enter server(comma separated list): ".split(",")更改为(read-host "Enter server(comma separated list)").split(",")(已添加括号)