Import-Clixml
Импортирует файл CLIXML и создает соответствующие объекты в PowerShell.
Синтаксис
ByPath (по умолчанию)
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
ByLiteralPath
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Описание
Командлет Import-Clixml
импортирует объекты, сериализованные в XML-файл common Language Infrastructure (CLI). Ценное использование Import-Clixml
на компьютерах Windows заключается в импорте учетных данных и безопасных строк, экспортированных как безопасный XML с помощью Export-Clixml
.
примере #2 показано, как использовать Import-Clixml
для импорта защищенного объекта учетных данных.
Данные CLIXML десериализируются обратно в объекты PowerShell. Однако десериализированные объекты не являются динамическими объектами. Они представляют собой моментальный снимок объектов во время сериализации. Десериализированные объекты включают свойства, но не методы.
Свойство TypeNames содержит префикс имени исходного типа, префиксированного Deserialized
.
примере #3 показать свойство TypeNames десериализированного объекта.
Import-Clixml
использует метку байтового порядка (BOM) для обнаружения формата кодирования файла. Если файл не имеет BOM, предполагается, что кодировка — UTF8.
Дополнительные сведения о интерфейсе командной строки см. в независимости языка.
Примеры
Пример 1. Импорт сериализованного файла и повторное создание объекта
В этом примере используется командлет Export-Clixml
для сохранения сериализованной копии сведений о процессе, возвращаемой Get-Process
.
Import-Clixml
извлекает содержимое сериализованного файла и повторно создает объект, хранящийся в переменной $Processes
.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
Пример 2. Импорт защищенного объекта учетных данных
В этом примере, имея учетные данные, которые вы сохранили в переменной $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
, чтобы импортировать защищенный объект учетных данных в скрипт. Этот импорт устраняет риск раскрытия паролей в виде открытого текста в вашем скрипте.
Пример 3. Проверка свойства TypeNames десериализированного объекта
В этом примере показано импорт объекта, хранящегося в виде данных CLIXML. Данные десериализируются обратно в объект PowerShell. Однако десериализированный объект не является динамическим объектом. Они представляют собой моментальный снимок объектов во время сериализации. Десериализированные объекты включают свойства, но не методы.
$original = [pscustomobject] @{
Timestamp = Get-Date
Label = 'Meeting event'
}
$original | Add-Member -MemberType ScriptMethod -Name GetDisplay -Value {
'{0:yyyy-MM-dd HH:mm} {1}' -f $this.Timestamp, $this.Label
}
$original | Get-Member -MemberType ScriptMethod
TypeName: System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
GetDisplay ScriptMethod System.Object GetDisplay();
$original | Export-Clixml -Path event.clixml
$deserialized = Import-CliXml -Path event.clixml
$deserialized | Get-Member
TypeName: Deserialized.System.Management.Automation.PSCustomObject
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
Label NoteProperty string Label=Meeting event
Timestamp NoteProperty System.DateTime Timestamp=1/31/2024 2:27:59 PM
Обратите внимание, что тип объекта в $original
System.Management.Automation.PSCustomObject, но тип объекта в $deserialized
deserialized.System.Management.Automation.PSCustomObject. Кроме того, метод GetDisplay()
отсутствует из десериализированного объекта.
Параметры
-First
Возвращает только указанное число объектов. Введите количество объектов, которые нужно получить.
Свойства параметра
Тип: | UInt64 |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-IncludeTotalCount
Сообщает общее количество объектов в наборе данных, за которым следуют выбранные объекты. Если командлет не может определить общее число, отображается общее число неизвестных. Целое число имеет свойство точности, указывающее надежность общего количества значений. Значение точности диапазоны от 0.0
до 1.0
, где 0.0
означает, что командлет не мог подсчитать объекты, 1.0
означает, что подсчет точный, а значение между 0.0
и 1.0
указывает на все более надежную оценку.
Свойства параметра
Тип: | SwitchParameter |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
-LiteralPath
Указывает путь к XML-файлам. В отличие от пути, значение параметра LiteralPath используется точно так, как напечатано. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки указывают PowerShell на то, что не следует интерпретировать какие-либо символы как управляющие последовательности.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Aliases: | PSPath, LP |
Наборы параметров
ByLiteralPath
Position: | Named |
Обязательно: | True |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-Path
Указывает путь к XML-файлам.
Свойства параметра
Тип: | String[] |
Default value: | None |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
ByPath
Position: | 0 |
Обязательно: | True |
Значение из конвейера: | True |
Значение из конвейера по имени свойства: | True |
Значение из оставшихся аргументов: | False |
-Skip
Игнорирует указанное число объектов, а затем получает оставшиеся объекты. Введите количество пропустить объектов.
Свойства параметра
Тип: | UInt64 |
Default value: | False |
Поддерживаются подстановочные знаки: | False |
DontShow: | False |
Наборы параметров
(All)
Position: | Named |
Обязательно: | False |
Значение из конвейера: | False |
Значение из конвейера по имени свойства: | False |
Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
String
Можно передать строку, содержащую путь к этому командлету.
Выходные данные
PSObject
Этот командлет возвращает объекты, десериализованные из сохраненных XML-файлов.
Примечания
При указании нескольких значений для параметра используйте запятые для разделения значений. Например: <parameter-name> <value1>, <value2>
.