计数Active Directory用户

问题描述:

下面的代码应该计数和比较用户并输出总计数,但不知何故结果为空。我需要做些什么来解决它?计数Active Directory用户

$groups = $A_group, $B_Group 
$gm  = @() 

foreach ($group in $groups) { 
    $gm += Get-ADGroupMember $group -Recursive | 
      `where {$_.objectclass -eq 'user'} |` 
      ' select SamAccountName' 
} 

($gm.samaccountname | Select -Unique).Count 
Write-Output total: ($gm.samaccountname | Select -Unique).Count 
+0

您的管线语法已损坏。删除反引号和单引号。 –

您可以在一个更PowerShell的去年秋季的方式做到这一点。

$groups = $A_group, $B_Group 
$uniqueMemberCount = $groups | 
    Get-ADGroupMember -Recursive | 
    Where-Object {$_.objectClass -ieq "user"} | 
    Select-Object -Unique | 
    Measure-Object | 
    Select-Object -ExpandProperty Count 

Write-Output "Total: $uniqueMemberCount" 
+0

我明白了。如何输出到CVS这个写输出“Total:$ uniqueMemberCount”? – Power988

+0

知道了吧!非常感谢! – Power988

我想你想指望两个组的唯一成员:

$aGroup = @('a','b','c') 
$bGroup = @('b','c','e','f') 
(Compare-Object $aGroup $bGroup -IncludeEqual).count 
+0

这是对的,也包括嵌套组。有数百个用户,所以你提到的代码不会这样做。 – Power988

+0

你的问题没有说明嵌套组的计数。 –