我正在尝试将一些数据从我们的 Active Directory 导出到 .csv 文件。该文件需要包含某些列(因为导入 .csv 文件的工具非常严格,我无法更改它),而我没有这些列,并且不处理报价。
目前我有以下内容(有更多字段,但这只是一个例子):
Get-ADUser -Filter {(enabled -eq $true)} -Properties * | Select-Object -Property @{Name="FirstName";Expression={$_."GivenName"}},
@{Name="LastName";Expression={$_."SurName"}},
@{Name="UserID";Expression={$_."EmployeeId"}} | Export-CSV -NoTypeInformation -Encoding UTF8 -Path Data.csv
这将导出一个 .csv 文件,其中每个字段都放在双引号中,所以我的第一个问题是如何避免这些双引号?我发现从 PowerShell 7 开始有一个可用的 -UseQuotes 选项,但我无法更改 PowerShell 的版本(服务器上不允许更改软件)。
我的第二个问题是:如何在上面的列表中添加一个空白列?我尝试添加
@{Name="Blank";Expression={$_.""}},
"",
Something_That_Doesnt_Exist
但这些要么给出错误,要么给出用双引号括起来的空白值。
您知道如何才能获得所需的输出,而无需在创建 .csv 文件后对其进行处理吗?
答案1
要导出不带引号的内容,请使用-UseQuotes Never
参数。
对于空白字段,使用:@{Name="Blank";Expression={$null}}
。
或者,如果输出为字符串,$null
则使用诸如的字符串" "
。