问题机器正在运行Windows 7,Powershell 5.0.10586.117。
这是一个奇怪的问题,似乎表明在一台机器上的环境有问题,但我似乎无法追踪它。基本上,问题是当我运行时
Get-ADUser username -Properties *
我收到以下错误:
Get-ADUser : Object reference not set to an instance of an object.
At line:1 char:1
+ Get-ADUser username -Properties *
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (username:ADUser) [Get-ADUser], NullReferenceException
+ FullyQualifiedErrorId : Object reference not set to an instance of an object.,Microsoft.ActiveDirectory.Management.Commands.GetADUser
我在2012r2盒子(PS版本4.0)上运行了相同的命令,它完成没有问题。
在Win7框中运行没有-Properties *
的命令,该命令将成功完成。另外,我可以将属性添加到-Properties
以及-Properties AccountExpirationDate,POBox,telephoneNumber'
,命令也会成功完成。最后,我构建了一个包含所有AD属性的数组,并将其分解为四个属性,这些属性会在Win7框上产生不同的错误。
PrincipalsAllowedToDelegateToAccount, CompoundIdentitySupported, AuthenticationPolicySilo, AuthenticationPolicy'
属性会在Win7框中导致无效参数异常。
PrimaryGroup
属性导致NullReferenceException。
通过在2012r2框(或基本上任何机器上,除了问题Win7之外)成功运行命令来提取这些属性时,它们具有以下值:
AuthenticationPolicy : {}
AuthenticationPolicySilo : {}
CompoundIdentitySupported : {}
PrimaryGroup : CN=Domain Users,OU=BuiltInUsers,DC=ad,DC=domain,DC=com
PrincipalsAllowedToDelegateToAccount : {}
我没有在Win7机箱和AFAIK上使用Powershell配置文件,我没有对环境进行任何重大修改。我没有把所有内容卸回到默认设置并重新开始,所以我希望有人可能知道造成这种情况的原因。
答案 0 :(得分:0)
它是通过反复试验而出现的,而我本人对此问题也进行了大量研究, 有一些帐户 PrincipalsAllowedToDelegateToAccount, CompoundIdentitySupported, AuthenticationPolicySilo, 认证政策 ACL将显示此错误。 您可以使用try / catch来遍历广告用户:
$ids= Get-ADUser -Filter *
foreach ($id in $IDs) {
Try {
$user = Get-ADUser -Identity $id -Properties *
Write-Host "Success: $($user.name)"
}
Catch {
# continue to next
Write-Host "Failure: $($user.name)"
}
}