2017-09-29 57 views
0

我有幾個組,需要將結果導出到一個文件中。不過,我嘗試了方法,但無法實現。如果我使用$group則格式不正確。我想仍然保持選擇結果,如名稱和計數。我應該添加什麼代碼才能使它工作?寫輸出格式

$group2 | Get-ADGroupMember -Recursive | 
    Where-Object { $_.objectClass -eq "User" } | 
    Select-Object -Unique | 
    Get-ADUser -Properties canonicalName | 
    Select-Object @{Name='container';Expression={($_.canonicalname -split '/')[2,3]}}, Count | 
    Group-Object container 
    Select Name, Count 

$group3 | Get-ADGroupMember -Recursive | 
    Where-Object { $_.objectClass -eq "User" } | 
    Select-Object -Unique | 
    Get-ADUser -Properties canonicalName | 
    Select-Object @{Name='container';Expression={($_.canonicalname -split '/')[2,3]}}, Count | 
    Group-Object container 
    Select Name, Count 

$group4 | Get-ADGroupMember -Recursive | 
    Where-Object { $_.objectClass -eq "User" } | 
    Select-Object -Unique | 
    Get-ADUser -Properties canonicalName | 
    Select-Object @{Name='container';Expression={($_.canonicalname -split '/')[2,3]}}, Count | 
    Group-Object container 
    Select Name, Count 

Write-Output User, $Group2, $group3, Group4 | 
    Out-File -FilePath C:\Temp\Group_User$timestamp.csv -Append 
+0

你在得到什麼?.....你想得到什麼? – ArcSet

+0

您不會將管線的結果存儲在任何地方.. – TessellatingHeckler

+0

我該怎麼做? – Power988

回答

0

你的問題不清楚你想達到什麼目的。你應該給我們幾行所需的輸出。 然後人們現在會是你想要的。 話雖如此,作爲一個腳本編寫者,您想要嘗試使代碼執行傳輸,而不是一遍又一遍地編寫相同的代碼。 因此,對於你,你應該看看一個foreach循環。 通過這種方式,您的代碼可以多次重複,因爲您有組。

$groups = @("group1","group2") 
$report = @() 
foreach ($group in $groups){ 
$report += $group | Get-ADGroupMember -Recursive | 
     Where-Object { $_.objectClass -eq "User" } | 
     Select-Object -Unique | 
     Get-ADUser -Properties Name,canonicalname | 
     Select Name, canonicalname 
} 

$report