我有以下代码用于获取用户名列表并输出用户名的CSV报告 - GroupMembership。在命令行,输出看起来很棒,因为我在左侧获得“名称”并在右侧递归“组成员身份”(请参阅图片http://i.stack.imgur.com/zLxUR.jpg获取命令行输出,抱歉无法发布嵌入式Pics)
我希望将输出写入具有相同格式的CSV文件,即一列中的用户名和第二列中的GroupMemberships。原始代码来自:http://thesurlyadmin.com/2013/03/21/get-a-users-group-memberships/,只有一些小的更改。
Param (
[Parameter(Mandatory=$true,ValueFromPipeLine=$true)]
[Alias("ID","Users")]
[string[]]$User
)
Begin {
Try { Import-Module ActiveDirectory -ErrorAction Stop }
Catch { Write-Host "Unable to load Active Directory module, is RSAT installed?"; Break }
}
Process {
ForEach ($U in $User)
{ $UN = Get-ADUser $U -Properties MemberOf
$Groups = ForEach ($Group in ($UN.MemberOf))
{ (Get-ADGroup $Group).Name
}
$Groups = $Groups | Sort
ForEach ($Group in $Groups)
{ New-Object PSObject -Property @{
Name = $UN.Name
Group = $Group
}
}
}
}
我尝试使用这个“$ PSObject | Export-CSV C:\ Scripts \ GroupMembershipList.csv”,但它只将第一行写入CSV,之后没有任何内容。
答案 0 :(得分:1)
内特,
在Powershell v3.0中,Export-CSV cmdlet引入了-Append参数。
不知道您正在使用的Powershell版本,这可能需要您更新以利用新功能。
在我自己的情况下,如果我忘记了-Append到我的CSV,我通常会看到相反的问题;我只会以最后条目结束而不是第一条。
我不会声称这是你的修复,但可能值得一试......
示例:$PSObject | Export-CSV C:\Scripts\GroupMembershipList.csv -Append