写输出格式

时间:2017-09-29 02:13:05

标签: powershell powershell-v2.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

1 个答案:

答案 0 :(得分: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