POWERSHELL - 无法解析会员的SID

时间:2015-08-27 15:18:33

标签: powershell

您好我正在使用Active Directory组和用户,我想检查并设置从AD到计算机的正确用户/组。问题是当我在某台机器上迭代本地用户/组并且AD POWERSHELL中不再存在的旧用户/组将停止工作并将抛出异常。

  

枚举组成员资格时发生错误(1332)。该成员的SID无法解析。

我知道导致这个问题的原因,但我不知道如何解决这个问题。这里的主要问题是,如果一个用户不再有效,它甚至不可能遍历整个用户数组。只有这个解决方案是manualy删除那些无效用户。

我甚至看到一些报告给微软,这种行为是错误的,应该修复但没有做任何事情。

这里有人遇到过这个问题吗?

感谢您的帮助。

$ctype = [System.DirectoryServices.AccountManagement.ContextType]::Machine
$computer = "PC name"
$groupName = "Administrators"
$context = New-Object -TypeName System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList   $ctype, $computer
$idtype = [System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName
$groupData = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($context, $idtype, $groupName)   
$groupData.Members |  select @{N='Server'; E={$computer}}, @{N='Domain'; E={$_.Context.Name}},@{N='Group'; E={$groupName}} , @{N='Account Name/Group'; E={$_.SamAccountName}}                            

以下是我用于迭代某些PC上的本地用户/组的代码示例。

1 个答案:

答案 0 :(得分:0)

您可以发布您正在使用的代码,以及完整的错误。我猜测有一个解决方法,但没有看到你的代码,我不能看到可能出错的地方。如果抛出一个终止错误,它将阻止脚本或函数进一步运行(有一些陷阱和异常),有很多方法可以解决这个问题

你也可以发布完整的错误。

您可能需要将$ erroractionpreference设置为silentntlycontinue。然后查看$ error变量来检查错误,但我只是在猜测。