如何在 PowerShell 中使用 Export-CSV

Jacki

如果您在 PowerShell 中创建报告,您肯定会使用 Export-CSV cmdlet。此 cmdlet 允许 PowerShell 将收集的信息输出到 CSV 文件。让我们看看可能性和功能。在本文中,您将了解如何在 PowerShell 中使用 Export-CSV cmdlet。

导出 CSV cmdlet

Export-CSV cmdlet 会创建您提交的对象的 CSV 文件。每个对象都是一行,其中包含对象属性值的字符分隔列表。您可以使用 Export-CSV cmdlet 创建电子表格并与接受 CSV 文件作为输入的程序共享数据。

在将对象发送到 Export-CSV cmdlet 之前,请勿格式化对象。如果 Export-CSV 接收格式化对象,则 CSV 文件包含格式属性而不是对象属性。要仅导出对象的选定属性,请使用 Select-Object cmdlet。

您可以将 Export-CSV cmdlet 与 PowerShell 中的任何 cmdlet 结合使用。在本文中,我们将使用 Get-ADUser cmdlet。这是 Active Directory 中最流行的 cmdlet 之一。

小路

-小路参数是指定要导出的 CSV 文件的路径。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv"

无类型信息

-无类型信息不会添加 PowerShell 默认添加到 CSV 的信息标头。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -NoTypeInformation -Encoding UTF8

分隔符

-分隔符参数指定用于分隔列的字符。您可以使用逗号 (,) 或分号 (;)。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -Delimiter ","
Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -Delimiter ";"

使用文化

-使用文化参数使用当前区域性的列表分隔符作为项目分隔符。当您使用逗号可能不是标准分隔符的区域设置时,这可能很有用。

当您指定-使用文化,cmdlet 将自动使用系统区域设置中设置的任何分隔符作为列表分隔符。这使得输出与期望根据本地标准格式化数据的本地应用程序更加兼容。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -UseCulture

要查找区域性的列表分隔符,请在 PowerShell 中使用以下命令。

(Get-Culture).TextInfo.ListSeparator

编码

-编码参数指定文件的字符编码。对于国际字符支持,建议使用-编码UTF8

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -Encoding UTF8

附加

-附加参数将内容添加到现有文件的末尾而不是覆盖它。如果该文件不存在,则会创建一个新文件。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -Append

力量

-福尔参数将强制 cmdlet 使用以下内容覆盖文件只读属性。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -Force

无破坏者

-NoClobber参数防止覆盖现有文件。默认情况下,Export-CSV 将覆盖指定路径中的任何现有文件,而不发出警告。

Get-ADUser -Filter * | Export-Csv -Path "C:tempAllUsers.csv" -NoClobber

Export-CSV cmdlet 示例

导出所有AD用户,分号分隔,UTF-8无BOM编码,如果文件存在则覆盖:

Get-ADUser -Filter * -Properties * | Export-Csv -Path "C:tempAllUsers.csv" -Delimiter ";" -Encoding UTF8NoBOM

使用自定义编码导出所有启用的 AD 用户,附加到现有文件:

Get-ADUser -Filter {Enabled -eq $true} -Properties EmailAddress, Department | Export-Csv -Path "C:tempAllUsers.csv" -Delimiter "," -Encoding Unicode -Append

使用自定义分隔符导出特定 AD 用户属性,无类型信息,并且不会覆盖现有文件:

Get-ADUser -Filter * -Properties GivenName, Surname, EmailAddress | Export-Csv -Path "C:tempAllUsers.csv" -Delimiter "|" -NoTypeInformation -NoClobber

使用特定于区域的分隔符从特定 OU 导出所有 AD 用户,如果文件存在则覆盖:

Get-ADUser -Filter * -SearchBase "OU=Staff,DC=company,DC=com" -Properties JobTitle | Export-Csv -Path "C:tempAllUsers.csv" -UseCulture -Encoding UTF8

就是这样!

结论

您学习了如何在 PowerShell 中使用 Export-CSV cmdlet。这是一个出色的 cmdlet,可将数据从 PowerShell 导出到 CSV 文件。请熟悉它,因为您将需要此 cmdlet 及其参数。

您喜欢这篇文章吗?您可能还喜欢在 Microsoft 365 中强制更改所有用户的密码。不要忘记关注我们并分享本文。

阅读更多:如何将 Google Chrome 保存的密码导出到 CSV 文件