powershell 为什么PS AD模块中Get-ADGroup命令的ProtectedFromAccidentalDeletion属性在一台计算机上返回NullReferenceException?

cgvd09ve  于 2023-05-07  发布在  Shell
关注(0)|答案(1)|浏览(94)

我有一个使用Active Directory PowerShell模块(RSAT的一部分)的PowerShell脚本。它在PowerShell 7中的Windows 10机器上运行良好,但在PowerShell 6中的Windows Server 2019 VM上,它返回错误。RSAT的AD工具安装在两台机器上,1.0.1.0当我运行Get-Module -Name ActiveDirectory时,ActiveDirectory v www.example.com在两台机器上都显示为正确安装:

脚本遍历所有AD组,并使用以下命令将它们放入数组中:

$ADGroupsList = @(Get-ADGroup -Filter * -Properties * | Select-Object DistinguishedName,CN,GroupCategory,Description | Sort-Object CN)

在Server 2019 VM上返回以下错误:

Get-ADGroup : Object reference not set to an instance of an object.
At line:1 char:19
+ Get-ADGroup -Identity ACC_Admin -Properties *
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (ACC_Admin:ADGroup) [Get-ADGroup], NullReferenceException
+ FullyQualifiedErrorId : ActiveDirectoryCmdlet:System.NullReferenceException,Microsoft.ActiveDirectory.Management.Commands.GetADGroup

当我将其分解为组成部分时,我发现即使我选择了一个我知道存在并具有属性的特定AD组(如“ACC_Admin”),也会得到相同的错误:

如果我只选择一个属性,比如CN,它工作得很好:

Get-ADGroup -Filter * -Properties CN

结果:

CN                : ACC_Admin
DistinguishedName : CN=ACC_Admin,OU=SecurityCameras,DC=ths,DC=local
GroupCategory     : Security
Name              : ACC_Admin
ObjectClass       : group
ObjectGUID        : 77d856b4-3f8b-4afc-80cb-106e0b8cbc3b
SamAccountName    : ACC_Admin
SID               : S-1-5-21-994927589-7149997842-1008150880-53730

当我遍历每一个默认属性以找到罪魁祸首时,我发现ProtectedFromAccidentalDeletion是导致错误的属性。
这也是令人困惑的,因为对于我正在检查的示例组,这个属性的值是“False”,而不是空白或null,当我从我的个人工作站检查它时:

如果在我的个人工作站上没有返回错误,为什么ProtectedFromAccidentalDeletion在这里返回NRE,而我的个人工作站安装了相同版本的Active Directory模块(1.0.1.0)?我该怎么弥补?

anhgbhbe

anhgbhbe1#

这是PowerShell 6中的一个bug。解决方案是升级到PowerShell 7,其中was fixed
参考首次报告并标记为已修复的GitHub问题:
SteveL-MSFT于2019年8月23日评论:
这在PS 7 Preview 3中已修复
(See https://github.com/PowerShell/PowerShellModuleCoverage/issues/8

相关问题