다음을 통해 공유


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

입력

String

이 cmdlet에 대한 경로를 포함하는 문자열을 파이프할 수 있습니다.

출력

PSObject

이 cmdlet은 저장된 XML 파일에서 역직렬화된 개체를 반환합니다.

참고

매개 변수에 대해 여러 값을 지정하는 경우 쉼표로 값을 구분합니다. 예들 들어 <parameter-name> <value1>, <value2>입니다.