다음을 통해 공유


Export-Clixml

개체 또는 개체의 XML 기반 표현을 만들어 파일에 저장합니다.

Syntax

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

Description

cmdlet은 Export-Clixml 개체를 CLI(공용 언어 인프라) XML 기반 표현으로 직렬화하여 파일에 저장합니다. 그런 다음 cmdlet을 Import-Clixml 사용하여 해당 파일의 내용에 따라 저장된 개체를 다시 만들 수 있습니다. CLI에 대한 자세한 내용은 언어 독립성(Language Independence)을 참조하세요.

이 cmdlet은 결과 XML을 파일에 저장한다는 점을 Export-Clixml 제외하고 유사ConvertTo-Xml합니다. ConvertTo-XML 는 XML을 반환하므로 PowerShell에서 계속 처리할 수 있습니다.

Windows 컴퓨터에서 중요한 사용 Export-Clixml 은 자격 증명을 내보내고 문자열을 안전하게 XML로 보호하는 것입니다. 예제는 예제 3을 참조하세요.

예제

예제 1: XML 파일로 문자열 내보내기

다음은 현재 디렉터리에 저장되는 XML 파일을 만드는 예제로, 테스트인 문자열의 표현입니다.

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

문자열 This is a test 이 파이프라인 아래로 전송됩니다. Export-ClixmlPath 매개 변수를 사용하여 현재 디렉터리에 이름이 지정된 sample.xml XML 파일을 만듭니다.

예제 2: XML 파일로 개체 내보내기

이 예제에서는 개체를 XML 파일로 내보낸 다음 파일에서 XML을 가져와 개체를 만드는 방법을 보여 줍니다.

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

cmdlet은 Get-Acl 파일의 Test.txt 보안 설명자를 가져옵니다. 파이프라인 아래로 개체를 보내 보안 설명자를 전달합니다 Export-Clixml. 개체의 XML 기반 표현은 이름이 지정된 FileACL.xml파일에 저장됩니다.

cmdlet은 Import-Clixml 파일의 XML에서 개체를 FileACL.xml 만듭니다. 그런 다음 변수에 개체를 $fileacl 저장합니다.

예제 3: 내보낸 자격 증명 개체 암호화

이 예제에서는 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 하여 보안 자격 증명 개체를 스크립트로 가져옵니다. 이 가져오기를 사용하면 스크립트에서 일반 텍스트 암호를 노출할 위험이 없습니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

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

대상 파일의 인코딩 형식을 지정합니다. 기본값은 Unicode입니다.

이 매개 변수에 허용되는 값은 다음과 같습니다.

  • ASCII ASCII(7비트) 문자 집합을 사용합니다.
  • BigEndianUnicode big-endian 바이트 순서로 UTF-16을 사용합니다.
  • Default 시스템의 활성 코드 페이지(일반적으로 ANSI)에 해당하는 인코딩을 사용합니다.
  • OEM 시스템의 현재 OEM 코드 페이지에 해당하는 인코딩을 사용합니다.
  • Unicode little-endian 바이트 순서로 UTF-16을 사용합니다.
  • UTF7 UTF-7을 사용합니다.
  • UTF8 UTF-8을 사용합니다.
  • UTF32 little-endian 바이트 순서로 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

사용자 확인을 요청하지 않고 명령을 강제 실행합니다.

필요한 경우 cmdlet이 출력 파일의 읽기 전용 특성을 지우도록 합니다. 명령이 완료되면 cmdlet이 읽기 전용 특성을 다시 설정하려고 합니다.

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 매개 변수의 값은 입력된 대로 정확하게 사용됩니다. 어떤 문자도 야생으로 해석되지 카드. 경로에 이스케이프 문자가 포함된 경우 작은따옴표로 묶습니다. 작은따옴표는 PowerShell에 문자를 이스케이프 시퀀스로 해석하지 않도록 지시합니다.

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

-NoClobber

cmdlet이 기존 파일의 내용을 덮어쓰지 않음을 나타냅니다. 기본적으로 지정된 경로 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

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

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

입력

PSObject

이 cmdlet에 개체를 파이프라인할 수 있습니다.

출력

FileInfo

이 cmdlet은 저장된 데이터를 사용하여 만든 파일을 나타내는 FileInfo 개체를 반환합니다.