通过Powershell从本地管理员中删除用户/组时出错
作为项目的一部分,我需要从本地administrators组的服务器数量中删除几个域用户和组。由于对许多服务器执行相同的操作会消耗大量时间,因此我想通过powershell执行相同的操作。 下面是我正在使用的代码: 首先,我尝试在一台服务器上本地完成。一旦成功,我将使用forloop一次为所有服务器运行它通过Powershell从本地管理员中删除用户/组时出错,powershell,Powershell,作为项目的一部分,我需要从本地administrators组的服务器数量中删除几个域用户和组。由于对许多服务器执行相同的操作会消耗大量时间,因此我想通过powershell执行相同的操作。 下面是我正在使用的代码: 首先,我尝试在一台服务器上本地完成。一旦成功,我将使用forloop一次为所有服务器运行它 $RemoteComputer = "US05APP9008.jnj.com" $Computer = [ADSI]("WinNT://$RemoteComputer,computer") $
$RemoteComputer = "US05APP9008.jnj.com"
$Computer = [ADSI]("WinNT://$RemoteComputer,computer")
$Group = $Computer.PSBase.Children.Find("Administrators")
$account="domain\groupname"
$Group.Remove("WinNT://$account")
错误
使用“1”参数调用“Remove”时出现异常:“无法添加成员”
o或从本地组中删除,因为该成员不存在。
"
在C:\Users\admin\u broy5\Desktop\remtest.ps1:6 char:14
+$Group.Remove您使用的命令似乎没有任何问题,只是它们不适用,您需要添加额外的代码来解决它们。在第一个场景中,似乎您正试图从一个用户不是其成员的组中删除该用户。没关系,只要用try/catch处理异常即可 下面是使用try/catch处理错误的示例函数:
function Remove-LocalUserAccount {
param ( [string]$userName,
[string]$computerName = $ENV:COMPUTERNAME )
[ADSI]$computer="WinNT://" + $computerName
try { $computer.delete("User",$userName) }
catch { logmsg -msg $error -entrytype "Error"; return $false }
return $true
}
在您的例子中,您将使用与$group.remove()相同的技术,因为这是您期望发生错误的地方:
try {
$group.remove($accName.path);
}
catch {
# do something, if you need to act on the error... or not
}
看起来您使用的命令没有任何问题,只是它们不适用,您需要添加额外的代码来解决它们。在第一个场景中,似乎您正试图从一个用户不是其成员的组中删除该用户。没关系,只要用try/catch处理异常即可 下面是使用try/catch处理错误的示例函数:
function Remove-LocalUserAccount {
param ( [string]$userName,
[string]$computerName = $ENV:COMPUTERNAME )
[ADSI]$computer="WinNT://" + $computerName
try { $computer.delete("User",$userName) }
catch { logmsg -msg $error -entrytype "Error"; return $false }
return $true
}
在您的例子中,您将使用与$group.remove()相同的技术,因为这是您期望发生错误的地方:
try {
$group.remove($accName.path);
}
catch {
# do something, if you need to act on the error... or not
}