【发布时间】:2016-03-05 23:44:43
【问题描述】:
这真的很烦人而且很难找到,但我已经在我的环境中证明了这一点,所以我想我会把它贴在这里,希望能帮助更多的人解决它。
问题是,当使用Get-ADPrincipalGroupMembership -Identity $User.SamAccountName 并且他们现有的组名之一(他们是其中的成员)在任何一个组的名称中有一个/(正斜杠)时,它不会终止该用户的错误。
所以,我跑了Get-ADGroup -Filter {name -like "*/*"} 看看我们有多少这样的组,而且有很多。果然,在我的脚本中,catch 块找到了很多人,这个 cmdlet 失败了。
foreach ($User in $Users) {
try {
$User_MemberOf = @()
Get-ADPrincipalGroupMembership -Identity $User.SamAccountName |
Select Name |
Where-Object {$_.Name -like 'CBA-*'} |
ForEach-Object { $User_MemberOf += @($_.Name) }
foreach ($Group in $User_MemberOf) {
New-Object PSObject -Property @{
SID = $User.SamAccountName
Name = $User.name
Group = $Group
} | Export-Csv -Path $logs -NoTypeInformation -Append
}
} catch {
New-Object PSObject -Property @{
SID = $User.SamAccountName
Name = $User.name
Group = "Error processing this user"
} | Export-Csv -Path $logs -NoTypeInformation -Append
}
}
错误信息:
由于内部错误,服务器无法处理请求。 有关错误的更多信息,请打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或从配置行为)在服务器上 命令将异常信息发送回客户端,或打开 根据 Microsoft .NET Framework 3.0 SDK 文档和 检查服务器跟踪日志。
谁能给我一个替代解决方案?我还没有找到好的。
【问题讨论】:
-
无法复制。哪个操作系统版本,错误是什么?
-
Win7 Ent,Powershell 4.0; Get-ADPrincipalGroupMembership :由于内部错误,服务器无法处理请求。有关错误的详细信息,请在服务器上打开 IncludeExceptionDetailInFaults(来自 ServiceBehaviorAttribute 或来自
配置行为)以便将异常信息发送回客户端,或者根据 Microsoft .NET Framework 打开跟踪3.0 SDK 文档并检查服务器跟踪日志。 -
您是否尝试过转义斜线? *`/* 或 *\/* 或许
-
不行,你是怎么逃出来的?
-
同上,在斜杠前使用反引号,或者反斜杠
标签: powershell active-directory