以下代码旨在列出特定上级支持小组的所有成员。我想将“Members”数组中的所有值分开,并在输出到CSV的文件中包含这些逗号。我该怎么办?
Set-ExecutionPolicy Bypass -Force
#Report start of script actions.
Write-Output "Discovering Security Group members..."
# Install Remote Server Administration Tools if not already installed.
if (!(Get-Module -ListAvailable -Name ActiveDirectory)) {
Install-WindowsFeature RSAT-AD-PowerShell
}
# Import the ActiveDirectory module.
Import-Module ActiveDirectory
#Prevent truncated output of objects in the Members array.
$FormatEnumerationLimit = -1
#Define the Export-CSV output location.
$OutputFile = "$home\Desktop\Web_Filtering_Group_memberships_" + (Get-Date -Format "M.d.yyyy-HHmm") + ".csv"
#Prevent truncated output of arrays.
$FormatEnumerationLimit = -1
#Discovering Security Group members.
Get-ADGroup -SearchBase 'OU=Parent Group,OU=Security Groups,DC=domain,DC=com' -Filter * -Properties * |
Select-Object -Property Name, Description, GroupCategory,
@{Name='Members';exp={
Get-ADGroupMember $_.SamAccountName | Select -ExpandProperty SamAccountName
}} |
Export-CSV -NoTypeInformation $OutputFile
#Report end of script actions.
Write-Output "Discovery of all Web Filtering Group members is complete. Output saved to: $OutputFile"
最佳答案
只需将成员加入逗号分隔的字符串即可:
... | Select-Object Name,Description,GroupCategory,@{n='Members';e={
(Get-ADGroupMember $_.SamAccountName | Select -Expand SamAccountName) -join ','
}} | Export-Csv ...
Export-Csv
将所有导出的字段都放在双引号中,因此您将获得如下输出:“名称”,“描述”,“GroupCategory”,“成员”
...,“foo,bar,baz”
...,“一些”
...,“或其他”
字符串值中的嵌套逗号为有效CSV。
关于arrays - 输出到CSV包含逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38688904/