Powershell导出csv问题

Powershell导出csv问题,powershell,csv,active-directory,Powershell,Csv,Active Directory,此脚本从禁用的OU中删除禁用用户的所有组,并将这些组的名称添加到信息字段中,同时导出具有相同信息的csv 问题是,当禁用的OU中有许多用户时,csv仅填充一个用户的groupmembership。问题是,如何以csv格式导出所有用户及其组成员身份。因此,我有一个已处理的所有用户的列表 我一直认为导出csv将导出powershell处理的所有内容 提前谢谢你的帮助 脚本尝试为每个用户导出csv: <# Run the Script On Active Directory to remove

此脚本从禁用的OU中删除禁用用户的所有组,并将这些组的名称添加到信息字段中,同时导出具有相同信息的csv

问题是,当禁用的OU中有许多用户时,csv仅填充一个用户的groupmembership。问题是,如何以csv格式导出所有用户及其组成员身份。因此,我有一个已处理的所有用户的列表

我一直认为导出csv将导出powershell处理的所有内容


提前谢谢你的帮助

脚本尝试为每个用户导出csv:

<# 
Run the Script On Active Directory to remove disabled users from All Groups and Set description what user was member of group if you have all the disable users in an OU. 
Just add -SearchBase "OU=disabled,DC=domain,DC=com" after  -filter 'enabled -eq $false' 

#> 
import-module activedirectory 
$users=get-aduser -filter 'enabled -eq $false' -SearchBase "OU=Lockdown,DC=home,DC=ac,DC=uk" -Properties samaccountname,memberof  |select samaccountname, @{n=’MemberOf’; e= { ( $_.memberof | % { (Get-ADObject $_).Name }) -join “,” }}  


#set description 
Foreach ($user in $users) 
{ Set-ADUser $user.samaccountname -Replace @{info="Was a member of :- $($user.memberof)"} 
# Export the list to csv
$Groups = (Get-ADPrincipalGroupMembership -Identity $user.SamAccountName | Select-Object -ExpandProperty name) -join ','

get-aduser $user.SamAccountName -properties memberof,samaccountname,givenname,surname | select samaccountname, @{name="Groups";expression={$Groups}} | export-csv "C:\Users\Administrator\Desktop\grpsss.csv" -Delimiter ";"



# Remove From all the Groups 
 Get-ADGroup -Filter {name -notlike "*domain users*"}  | Remove-ADGroupMember -Members $user.samaccountname -Confirm:$False  

} 


 $total = ($users).count  

 Write-Host "$total accounts have been processed..." -ForegroundColor Green 
但是,这意味着只有在这个foreach块中运行的最后一个用户的数据会被写入.csv文件

这是因为默认情况下,导出Csv将覆盖现有.Csv文件的内容。因此,foreach块中的每个用户都将覆盖它之前的用户

要解决此问题,请将参数开关-Append添加到导出Csv命令的末尾。e、 g


去冒险,猜一猜你想把-Append放在导出csv的末尾C:\Users\Administrator\Desktop\grpsss.csv-Delimiter;这很有魅力。谢谢。工作进展顺利,非常感谢您的详细回复,特别是您强调了这个问题,并感谢您提供了解释其工作原理的链接。再次感谢。
Foreach ($user in $users) {
...
get-aduser $user.SamAccountName -properties memberof,samaccountname,givenname,surname | 
  select samaccountname, @{name="Groups";expression={$Groups}} |
  export-csv "C:\Users\Administrator\Desktop\grpsss.csv" -Delimiter ";"
...
}
Foreach ($user in $users) {
...
get-aduser $user.SamAccountName -properties memberof,samaccountname,givenname,surname | 
  select samaccountname, @{name="Groups";expression={$Groups}} |
  export-csv "C:\Users\Administrator\Desktop\grpsss.csv" -Delimiter ";" -Append
...
}