我的目标是能够快速比较应用于多台电脑的组成员资格,以确认它们都是完全相同的组的成员。
首先,我很抱歉,因为我对 PowerShell 的经验非常有限,并且可能有一个非常简单的解决方案来解决我的问题。
我只是通过将它们表示为变量来定义我的电脑:
$Computers = "pc1", "pc2", "pc3"
然后我将它们通过管道传输到另一个命令中:
$computers | Get-ADPrincipalGroupMembership
虽然这确实返回所有 PC 所属的所有组,但输出仅列出组,而不列出哪些 PC 属于哪些组。如前所述,我希望能够单独看到每台电脑的组成员身份。
我真诚地感谢您提供的任何建议!
您可以做的是循环遍历阵列中的每台计算机,并针对每台计算机循环遍历其所属的组。 接下来,输出具有计算机名称和组的对象(每组一个项目)。
为了稍后进行比较,我建议您将结果另存为 CSV 文件,您可以双击在 Excel 中打开。
$Computers = "pc1", "pc2", "pc3"
$computers | ForEach-Object {
foreach ($group in (Get-ADPrincipalGroupMembership -Identity $_)) {
[PsCustomObject] @{
ComputerName = $_
Group = $group.Name
}
}
} | Export-Csv -Path 'X:\Somewhere\ComputerGroupMembers.csv' -NoTypeInformation -UseCulture