输出到CSV包括逗号

时间:2016-07-31 22:30:45

标签: arrays csv powershell

以下代码旨在列出特定父支持组的所有成员。我想分离“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"

1 个答案:

答案 0 :(得分:0)

只需将成员加入逗号分隔的字符串:

//= require jquery
//= require jquery.turbolinks
//= require jquery_ujs
...

... | Select-Object Name,Description,GroupCategory,@{n='Members';e={ (Get-ADGroupMember $_.SamAccountName | Select -Expand SamAccountName) -join ',' }} | Export-Csv ... 将所有导出的字段放在双引号中,因此您将获得如下输出:

"Name","Description","GroupCategory","Members"
...,"foo,bar,baz"
...,"some"
...,"or,other"

字符串值中的嵌套逗号是有效的CSV。