如何在PowerShell中使用Export-CSV

Jacki

如果您在PowerShell中创建报告,则肯定会使用导出CSV CMDLET。此CMDLET使PowerShell将收集的信息输出到CSV文件。让我们看一下可能性和功能。在本文中,您将学习如何使用PowerShell中的导出CSV CMDLET。

导出CSV CMDLET

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

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

您可以使用PowerShell中的任何CMDLET使用导出CSV CMDLET。在本文中,我们将使用Get-Aduser CMDLET。这是Active Directory中最受欢迎的CMDLET之一。

小路

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

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

Notypeinformation

- 非元素形式默认情况下,不会添加PowerShell添加到CSV的信息标头。

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

定界符

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

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

-Noclobber参数可防止覆盖现有文件。默认情况下,导出CSV将覆盖指定路径上的任何现有文件,而无需发出警告。

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

导出CSV CMDLET示例

将所有具有半分离的广告用户导出,UTF-8编码无BOM,如果文件存在,则覆盖:

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

所有启用了具有自定义编码的广告用户,将广告用户附加到现有文件:

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

带有自定义定界符,没有类型信息的特定广告用户属性,并且不会覆盖现有文件:

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

将所有广告用户从特定区域特定定界符中导出所有广告用户,如果文件存在,则覆盖:

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

就是这样!

另请阅读:如何导出Google Chrome将密码保存到CSV文件

结论

您学会了如何在PowerShell中使用Export-CSV CMDLET。这是将数据从PowerShell导出到CSV文件的绝佳CMDLET。熟悉它,因为您需要此CMDLET及其参数。

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