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
Import-Clixml
cmdlet은 CLI(공용 언어 인프라) XML 파일로 serialize된 개체를 가져옵니다. Windows 컴퓨터에서 Import-Clixml
사용하는 중요한 방법은 Export-Clixml
사용하여 보안 XML로 내보낸 자격 증명 및 보안 문자열을 가져오는 것입니다.
예제 #2Import-Clixml
사용하여 보안 자격 증명 개체를 가져오는 방법을 보여줍니다.
CLIXML 데이터는 PowerShell 개체로 다시 역직렬화됩니다. 그러나 역직렬화된 개체는 라이브 개체가 아닙니다. serialization 시 개체의 스냅샷입니다. 역직렬화된 개체에는 속성이 포함되지만 메서드는 없습니다.
TypeNames 속성에는 Deserialized
접두사로 된 원래 형식 이름이 포함됩니다.
예제 #3 역직렬화된 개체의 TypeNames 속성을 표시합니다.
Import-Clixml
BOM(바이트 순서 표시)을 사용하여 파일의 인코딩 형식을 검색합니다. 파일에 BOM이 없으면 인코딩이 UTF8이라고 가정합니다.
CLI에 대한 자세한 내용은 언어 독립성참조하세요.
예제
예제 1: 직렬화된 파일 가져오기 및 개체 다시 만들기
이 예제에서는 Export-Clixml
cmdlet을 사용하여 Get-Process
반환된 프로세스 정보의 직렬화된 복사본을 저장합니다.
Import-Clixml
serialize된 파일의 내용을 검색하고 $Processes
변수에 저장된 개체를 다시 만듭니다.
Get-Process | Export-Clixml -Path .\pi.xml
$Processes = Import-Clixml -Path .\pi.xml
예제 2: 보안 자격 증명 개체 가져오기
이 예제에서는 Get-Credential
cmdlet을 실행하여 $Credential
변수에 저장한 자격 증명이 지정된 경우 Export-Clixml
cmdlet을 실행하여 자격 증명을 디스크에 저장할 수 있습니다.
중요하다
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
Export-Clixml
cmdlet은 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이 총 개수를 확인할 수 없으면 알 수 없는 총 개수 표시됩니다. 정수에는 총 개수 값의 안정성을 나타내는 정확도 속성이 있습니다.
정확도 값은 0.0
범위에서 1.0
이르기까지 다양합니다. 여기서 0.0
cmdlet이 개체 수를 계산할 수 없음을 의미합니다. 1.0
개수가 정확하다는 것을 의미하며, 0.0
1.0
사이의 값은 점점 더 신뢰할 수 있는 추정치를 나타냅니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-LiteralPath
XML 파일의 경로를 지정합니다. Path달리 LiteralPath 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 와일드카드로 해석되는 문자는 없습니다. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.
형식: | String[] |
별칭: | PSPath, LP |
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