Поделиться через


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>]

Описание

Командлет Export-Clixml сериализовал объект в XML-представление на основе XML-кода, основанного на интерфейсе командной строки, сохраняет его в файле. Затем можно использовать Import-Clixml командлет для повторного создания сохраненного объекта на основе содержимого этого файла. Дополнительные сведения о интерфейсе командной строки см. в разделе "Независимость языка".

Этот командлет аналогичен ConvertTo-Xml, за исключением того, что Export-Clixml сохраняет полученный XML-код в файле. ConvertTo-XML возвращает XML-код, чтобы продолжить обработку его в PowerShell.

Полезное использование Export-Clixml на компьютерах Windows заключается в том, чтобы безопасно экспортировать учетные данные и безопасные строки в виде XML. Пример см. в примере 3.

Примеры

Пример 1. Экспорт строки в XML-файл

В этом примере создается XML-файл, который хранится в текущем каталоге, представление строки Это тест.

"This is a test" | Export-Clixml -Path .\sample.xml

Строка This is a test отправляется вниз конвейера. Export-Clixmlиспользует параметр Path для создания XML-файла с именем sample.xml в текущем каталоге.

Пример 2. Экспорт объекта в XML-файл

В этом примере показано, как экспортировать объект в XML-файл и затем создать объект путем импорта из XML-файла.

Get-Acl C:\test.txt | Export-Clixml -Path .\FileACL.xml
$fileacl = Import-Clixml -Path .\FileACL.xml

Командлет Get-Acl получает дескриптор Test.txt безопасности файла. Он отправляет объект вниз конвейера, чтобы передать дескриптор Export-Clixmlбезопасности. Xml-представление объекта хранится в файле с именем FileACL.xml.

Командлет Import-Clixml создает объект из XML-файла FileACL.xml . Затем он сохраняет объект в переменной $fileacl .

Пример 3. Шифрование экспортированного объекта учетных данных

В этом примере с учетом учетных данных, хранящихся в $Credential переменной, выполнив Get-Credential командлет, можно запустить 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

Командлет Export-Clixml шифрует объекты учетных данных с помощью API защиты данных Windows. Шифрование гарантирует, что только ваша учетная запись пользователя на компьютере может расшифровывать содержимое объекта учетных данных. Экспортируемый CLIXML файл нельзя использовать на другом компьютере или другом пользователе.

В примере файл, в котором хранятся учетные данные, представлен в TestScript.ps1.credential. Замените TestScript именем скрипта, с которым вы загружаете учетные данные.

Объект учетных данных отправляется в конвейер Export-Clixmlи сохраняется в пути, $Credxmlpathуказанном в первой команде.

Чтобы автоматически импортировать учетные данные в скрипт, выполните последние две команды. Выполните импорт Import-Clixml защищенного объекта учетных данных в скрипт. Этот импорт устраняет риск предоставления паролей обычного текста в скрипте.

Параметры

-Confirm

Запрос подтверждения перед выполнением командлета.

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

Указывает тип кодировки для целевого файла. Значение по умолчанию — Юникод.

Допустимые значения для этого параметра приведены следующим образом:

  • ASCII Использует набор символов ASCII (7-разрядный).
  • BigEndianUnicode Использует UTF-16 с порядком байтов больших байтов.
  • Default Использует кодировку, соответствующую активной кодовой странице системы (обычно ANSI).
  • OEM Использует кодировку, соответствующую текущей кодовой странице OEM системы.
  • Unicode Использует UTF-16 с маленьким порядком байтов.
  • UTF7 Использует UTF-7.
  • UTF8 Использует UTF-8.
  • UTF32 Использует UTF-32 с маленьким порядком байтов.
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

Принудительное выполнение команды без запроса на подтверждение пользователем.

В результате командлет снимает атрибут только для чтения выходного файла при необходимости. Командлет попытается сбросить атрибут "только для чтения" после выполнения команды.

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 используется точно так же, как он типизированный. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.

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

-NoClobber

Указывает, что командлет не перезаписывает содержимое существующего файла. По умолчанию, если файл существует в указанном пути, 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

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

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

Входные данные

PSObject

Вы можете конвейерировать любой объект в этот командлет.

Выходные данные

FileInfo

Этот командлет возвращает объект FileInfo , представляющий созданный файл с сохраненными данными.