如何在 PowerShell 中使用 Export-CSV
如果您在 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 中強制更改所有用戶的密碼。不要忘記關注我們並分享本文。
