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>]
说明
该 cmdlet 将 Export-Clixml
对象序列化为基于 XML 的公共语言基础结构(CLI)表示形式,将其存储在文件中。 然后可以使用 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”的一种表示形式。
"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
Get-Acl
cmdlet 获取 Test.txt
文件的安全描述符。 它通过管道发送对象,以将安全描述符传递给 Export-Clixml
。 对象的基于 XML 的表示形式存储在名为 FileACL.xml
的文件中。
Import-Clixml
cmdlet 从 FileACL.xml
文件中的 XML 创建对象。 然后,它将对象保存在 $fileacl
变量中。
示例 3:加密导出的凭据对象
在此示例中,如果通过运行 Get-Credential
cmdlet 将凭据存储在 $Credential
变量中,则可以运行 Export-Clixml
cmdlet 来将凭据保存到磁盘。
重要
Export-Clixml
仅导出 Windows 上的加密凭据。 在非 Windows 操作系统(如 macOS 和 Linux)上,凭据以明文形式导出,并存储为 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
Export-Clixml
cmdlet 使用 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 与 little-endian 字节顺序配合使用。UTF7
使用 UTF-7。UTF8
使用 UTF-8。UTF32
将 UTF-32 与 little-endian 字节顺序配合使用。
类型: | 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 对象,该对象表示使用存储的数据创建的文件。