您好我正在使用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上的本地用户/组的代码示例。
答案 0 :(得分:0)
您可以发布您正在使用的代码,以及完整的错误。我猜测有一个解决方法,但没有看到你的代码,我不能看到可能出错的地方。如果抛出一个终止错误,它将阻止脚本或函数进一步运行(有一些陷阱和异常),有很多方法可以解决这个问题
你也可以发布完整的错误。
您可能需要将$ erroractionpreference设置为silentntlycontinue。然后查看$ error变量来检查错误,但我只是在猜测。