Import-Clixml
CLIXML 파일을 가져오고 PowerShell에서 해당 개체를 만듭니다.
구문
Import-Clixml
[-Path] <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Import-Clixml
-LiteralPath <String[]>
[-IncludeTotalCount]
[-Skip <UInt64>]
[-First <UInt64>]
[<CommonParameters>]
Description
cmdlet은 Import-Clixml
CLI(공용 언어 인프라) XML 파일로 serialize된 개체를 가져옵니다. Windows 컴퓨터에서 중요한 사용 Import-Clixml
은 자격 증명을 가져오고 보안 XML로 내보낸 보안 문자열을 사용하는 Export-Clixml
것입니다.
예제 #2 는 보안 자격 증명 개체를 가져오는 데 사용하는 Import-Clixml
방법을 보여줍니다.
CLIXML 데이터는 PowerShell 개체로 다시 역직렬화됩니다. 그러나 역직렬화된 개체는 라이브 개체가 아닙니다. serialization 시 개체의 스냅샷입니다. 역직렬화된 개체에는 속성이 포함되지만 메서드는 없습니다.
TypeNames 속성에는 접두사로 된 원래 형식 이름이 포함됩니다Deserialized
.
예제 #3에는 역직렬화된 개체의 TypeNames 속성이 나와 있습니다.
Import-Clixml
는 BOM(바이트 순서 표시)을 사용하여 파일의 인코딩 형식을 검색합니다. 파일에 BOM이 없으면 인코딩이 UTF8이라고 가정합니다.
CLI에 대한 자세한 내용은 언어 독립성(Language Independence)을 참조하세요.
예제
예제 1: 직렬화된 파일 가져오기 및 개체 다시 만들기
이 예제에서는 cmdlet을 Export-Clixml
사용하여 반환 Get-Process
된 프로세스 정보의 직렬화된 복사본을 저장합니다. Import-Clixml
는 serialize된 파일의 내용을 검색하고 변수에 저장된 개체를 $Processes
다시 만듭니다.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
예제 2: 보안 자격 증명 개체 가져오기
이 예제에서는 cmdlet을 실행하여 변수에 $Credential
저장한 자격 증명이 Get-Credential
지정된 경우 cmdlet을 실행 Export-Clixml
하여 자격 증명을 디스크에 저장할 수 있습니다.
Important
Export-Clixml
는 Windows에서 암호화된 자격 증명만 내보냅니다. macOS 및 Linux와 같은 비 Windows 운영 체제에서는 자격 증명을 일반 텍스트로 내보냅니다.
$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 Data Protection API를 사용하여 자격 증명 개체를 암호화합니다. 암호화를 사용하면 사용자 계정만 자격 증명 개체의 내용을 해독할 수 있습니다. 내보낸 CLIXML
파일은 다른 컴퓨터나 다른 사용자가 사용할 수 없습니다.
예제에서 자격 증명이 저장되는 파일은 .로 표시됩니다 TestScript.ps1.credential
. TestScript를 자격 증명을 로드하는 스크립트의 이름으로 바꿉습니다.
자격 증명 개체를 파이프라인 Export-Clixml
아래로 보내고 첫 번째 명령에서 지정한 경로 $Credxmlpath
에 저장합니다.
자격 증명을 스크립트로 자동으로 가져오려면 마지막 두 명령을 실행합니다. 실행 Import-Clixml
하여 보안 자격 증명 개체를 스크립트로 가져옵니다. 이 가져오기를 사용하면 스크립트에서 일반 텍스트 암호를 노출할 위험이 없습니다.
예제 3: 역직렬화된 개체의 TypeNames 속성 검사
이 예제에서는 CLIXML 데이터로 저장된 개체를 가져오는 방법을 보여줍니다. 데이터는 PowerShell 개체로 다시 역직렬화됩니다. 그러나 역직렬화된 개체는 라이브 개체가 아닙니다. serialization 시 개체의 스냅샷입니다. 역직렬화된 개체에는 속성이 포함되지만 메서드는 없습니다.
$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 |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-IncludeTotalCount
데이터 집합의 총 개체 수와 선택한 개체를 보고합니다. cmdlet이 총 개수를 확인할 수 없으면 알 수 없는 총 개수가 표시됩니다. 정수에는 총 개수 값의 안정성을 나타내는 정확도 속성이 있습니다. 정확도 값의 범위는 cmdlet이 개체 수를 계산할 수 없음을 의미하고, 1.0
개수가 정확하며, 그 사이의 0.0
값과 1.0
점점 더 신뢰할 수 있는 예상치를 나타내는 위치 0.0
까지 다양 0.0
1.0
합니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LiteralPath
XML 파일의 경로를 지정합니다. Path와 달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.
형식: | String[] |
별칭: | PSPath |
Position: | Named |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Path
XML 파일의 경로를 지정합니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Skip
지정된 개수의 개체를 무시한 다음 나머지 개체를 가져옵니다. 건너뛸 개체 수를 입력합니다.
형식: | UInt64 |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
이 cmdlet에 대한 경로를 포함하는 문자열을 파이프할 수 있습니다.
출력
이 cmdlet은 저장된 XML 파일에서 역직렬화된 개체를 반환합니다.
참고
매개 변수에 대해 여러 값을 지정하는 경우 쉼표로 값을 구분합니다. 예들 들어 <parameter-name> <value1>, <value2>
입니다.
관련 링크
PowerShell