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 创建一个公共语言基础结构 (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

字符串 “这是一个测试 ”在管道中向下发送。 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 根据 文件中的 XML FileACL.xml 创建对象。 然后,它将 对象保存在 变量中 $fileacl

示例 3:加密导出的凭据对象

在此示例中,给定通过运行 Get-Credential cmdlet 存储在 变量中的$Credential凭据,可以运行 cmdlet Export-Clixml 将凭据保存到磁盘。

重要

Export-Clixml 仅导出 Windows 上的加密凭据。 在非 Windows 操作系统(如 macOS 和 Linux)上,凭据以纯文本格式导出。

$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 之前进行确认。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Depth

指定 XML 表示形式中所包含的包含对象的级别数。 默认值为 2

可以为文件中的对象类型 Types.ps1xml 重写默认值。 有关详细信息,请参阅 about_Types.ps1xml

Type:Int32
Position:Named
Default value:2
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

指定目标文件的编码类型。 默认值为 Unicode。

此参数的可接受值如下所示:

  • Ascii 使用 ASCII (7 位) 字符集。
  • BigEndianUnicode 将 UTF-16 与 big-endian 字节顺序一起使用。
  • 默认 使用与系统的活动代码页相对应的编码 (通常为 ANSI) 。
  • Oem 使用对应于系统的当前 OEM 代码页的编码。
  • Unicode 将 UTF-16 与 little-endian 字节顺序一起使用。
  • UTF7 使用 UTF-7。
  • UTF8 使用 UTF-8。
  • UTF32 将 UTF-32 与 little-endian 字节顺序一起使用。
Type:String
Accepted values:ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32
Position:Named
Default value:Unicode
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

强制运行命令而不要求用户确认。

使该 cmdlet 清除输出文件的只读属性(如有必要)。 该 cmdlet 将在命令完成时尝试重置只读属性。

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

指定要转换的对象。 输入一个包含对象的变量,或键入可获取对象的命令或表达式。 还可以通过管道将对象传递给 Export-Clixml

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

指定指向将存储对象的 XML 表示形式的文件的路径。 与 Path 不同, LiteralPath 参数的值与键入时完全相同。 不会将任何字符解释为通配符。 如果路径包括转义符,请将其括在单引号中。 单引号告知 PowerShell 不要将任何字符解释为转义序列。

Type:String
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-NoClobber

指示 cmdlet 不会覆盖现有文件的内容。 默认情况下,如果文件存在于指定路径中, Export-Clixml 则覆盖该文件而不发出警告。

Type:SwitchParameter
Aliases:NoOverwrite
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

指定指向将存储对象的 XML 表示形式的文件的路径。

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

显示运行该 cmdlet 时会发生什么情况。 cmdlet 未运行。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

输入

PSObject

可以将任何对象管道传递给 Export-Clixml

输出

FileInfo

Export-Clixml 创建一个包含 XML 的文件。