2017-09-21 177 views
2

下面的代碼應該計數和比較用戶並輸出總計數,但不知何故結果爲空。我需要做些什麼來解決它?計數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

您的管線語法已損壞。刪除反引號和單引號。 –

回答

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

0

我想你想指望兩個組的唯一成員:

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

這是對的,也包括嵌套組。有數百個用戶,所以你提到的代碼不會這樣做。 – Power988

+0

你的問題沒有說明嵌套組的計數。 –