Export-Clixml
建立物件或物件的 XML 型表示法,並將其儲存在檔案中。
語法
Export-Clixml
[-Path] <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Export-Clixml
-LiteralPath <String>
-InputObject <PSObject>
[-Depth <Int32>]
[-Force]
[-NoClobber]
[-Encoding <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Cmdlet 會將 Export-Clixml
物件串行化為 Common Language Infrastructure (CLI) XML 表示法,並將其儲存在檔案中。 接著 Import-Clixml
,您可以使用 Cmdlet,根據該檔案的內容重新建立儲存的物件。 如需 CLI 的詳細資訊,請參閱 語言獨立性。
此 Cmdlet 類似於 ConvertTo-Xml
,但 Export-Clixml
會將產生的 XML 儲存在檔案中。 ConvertTo-XML
會傳回 XML,因此您可以在 PowerShell 中繼續處理它。
在 Windows 電腦上的重要 Export-Clixml
用途是將認證和安全字串安全地匯出為 XML。 如需範例,請參閱範例 3。
範例
範例 1:將字串匯出至 XML 檔案
此範例會建立儲存在目前目錄中的 XML 檔案,這是測試字串的表示法。
"This is a test" | Export-Clixml -Path .\sample.xml
字串 This is a test
會向下傳送至管線。 Export-Clixml
會 使用Path 參數,在目前目錄中建立名為 sample.xml
的 XML 檔案。
範例 2:將物件匯出至 XML 檔案
這個範例示範如何將對象匯出至 XML 檔案,然後從檔案匯入 XML 來建立 物件。
Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml
Cmdlet Get-Acl
會取得檔案的安全性描述元 Test.txt
。 它會將 物件傳送到管線,以將安全性描述元傳遞至 Export-Clixml
。 物件的 XML 型表示會儲存在名為 FileACL.xml
的檔案中。
Cmdlet Import-Clixml
會從檔案中的 FileACL.xml
XML 建立 物件。 然後,它會將 物件儲存在變數中 $fileacl
。
範例 3:加密導出的認證物件
在此範例中,假設您已藉由執行 Get-Credential
Cmdlet 將認證儲存在 變數中$Credential
,您可以執行 Export-Clixml
Cmdlet,將認證儲存至磁碟。
重要
Export-Clixml
只會匯出 Windows 上的加密認證。 在macOS和Linux等非 Windows 作業系統上,認證會匯出為儲存為 Unicode 字元陣列的純文字。 這提供一些模糊化,但不提供加密。
$Credxmlpath = Join-Path (Split-Path $Profile) TestScript.ps1.credential
$Credential | Export-Clixml $Credxmlpath
$Credxmlpath = Join-Path (Split-Path $Profile) TestScript.ps1.credential
$Credential = Import-Clixml $Credxmlpath
Cmdlet Export-Clixml
會使用 Windows 資料保護 API 來加密認證物件。 加密可確保只有該電腦上的用戶帳戶才能解密認證對象的內容。
導出的 CLIXML
檔案不能在不同的計算機上或由不同的使用者使用。
在此範例中,儲存認證的檔案會以 TestScript.ps1.credential
表示。 將 TestScript 取代為您正在載入認證的腳本名稱。
您會將認證物件向下傳送至 Export-Clixml
,並將它儲存至您在第一個命令中指定的路徑 $Credxmlpath
。
若要自動將認證匯入腳本,請執行最後兩個命令。 執行 Import-Clixml
以將受保護的認證物件匯入您的腳本。 此匯入可消除在您的文稿中公開純文字密碼的風險。
參數
-Confirm
執行 Cmdlet 之前先提示您確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Depth
指定 XML 表示法中包含多少個自主物件的層級。 預設值是 2
。
您可以覆寫檔案中 Types.ps1xml
物件類型的預設值。 如需詳細資訊,請參閱 about_Types.ps1xml。
類型: | Int32 |
Position: | Named |
預設值: | 2 |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Encoding
指定目標檔案的編碼類型。 預設值為 Unicode。
此參數可接受的值如下:
ASCII
使用 ASCII (7 位) 字元集。BigEndianUnicode
使用UTF-16搭配 big-endian 位元組順序。Default
使用對應至系統使用中代碼頁 (通常是 ANSI) 的編碼方式。OEM
使用對應至系統目前 OEM 代碼頁的編碼方式。Unicode
使用UTF-16搭配位元組順序。UTF7
使用UTF-7。UTF8
使用UTF-8。UTF32
使用UTF-32搭配位元組順序。
類型: | String |
接受的值: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
Position: | Named |
預設值: | Unicode |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
強制命令執行,而不要求使用者確認。
必要時,Cmdlet 會清除輸出檔的唯讀屬性。 Cmdlet 會在命令完成時嘗試重設只讀屬性。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-InputObject
指定要轉換的物件。 輸入包含 物件的變數,或輸入取得物件的命令或表達式。 您也可以使用管線將 物件傳送至 Export-Clixml
。
類型: | PSObject |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-LiteralPath
指定將儲存物件之 XML 表示的檔案路徑。 與 Path 不同,LiteralPath 參數的值會與輸入時完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
類型: | String |
別名: | PSPath |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-NoClobber
指出 Cmdlet 不會覆寫現有檔案的內容。 根據預設,如果檔案存在於指定的路徑中, Export-Clixml
則會覆寫檔案而不發出警告。
類型: | SwitchParameter |
別名: | NoOverwrite |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Path
指定將儲存物件之 XML 表示的檔案路徑。
類型: | String |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 Cmdlet 未執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以將任何物件管線至此 Cmdlet。
輸出
此 Cmdlet 會傳 回 FileInfo 物件,代表具有預存數據的已建立檔案。