다음을 통해 공유


출력 개체 확장

형식 파일(.ps1xml)을 사용하여 cmdlet, 함수 및 스크립트에서 반환되는 .NET Framework 개체를 확장할 수 있습니다. 형식 파일은 기존 개체에 속성 및 메서드를 추가할 수 있는 XML 기반 파일입니다. 예를 들어 Windows PowerShell은 여러 기존 .NET Framework 개체에 요소를 추가하는 Types.ps1xml 파일을 제공합니다. Types.ps1xml 파일은 Windows PowerShell 설치 디렉터리($PSHOME)에 있습니다. 사용자 고유의 형식 파일을 만들어 해당 개체를 추가로 확장하거나 다른 개체를 확장할 수 있습니다. 형식 파일을 사용하여 개체를 확장하면 개체의 모든 인스턴스가 새 요소로 확장됩니다.

System.Array 개체 확장

다음 예제에서는 Windows PowerShell이 Types.ps1xml 파일에서 System.Array 개체를 확장하는 방법을 보여 줍니다. 기본적으로 System.Array 개체에는 배열의 개체 수를 나열하는 Length 속성이 있습니다. 그러나 이름 "length"가 속성을 명확하게 설명하지 않으므로 Windows PowerShell은 Length 속성과 동일한 값을 표시하는 Count 별칭 속성을 추가합니다. 다음 XML은 System.Array 형식에 Count 속성을 추가합니다.

<Type>
  <Name>System.Array</Name>
  <Members>
    <AliasProperty>
      <Name>Count</Name>
      <ReferencedMemberName>Length</ReferencedMemberName>
    </AliasProperty>
  </Members>
</Type>

이 새 별칭 속성을 보려면 다음 예제와 같이 배열에서 Get-Member 명령을 사용합니다.

Get-Member -InputObject (1,2,3,4)

이 명령은 다음 결과를 반환합니다.

Name           MemberType    Definition
----           ----------    ----------
Count          AliasProperty Count = Length
Address        Method        System.Object& Address(Int32 )
Clone          Method        System.Object Clone()
CopyTo         Method        System.Void CopyTo(Array array, Int32 index):
Equals         Method        System.Boolean Equals(Object obj)
Get            Method        System.Object Get(Int32 )
...
Length         Property      System.Int32 Length {get;}

Count 속성 또는 Length 속성을 사용하여 배열에 있는 개체 수를 확인할 수 있습니다. 다음은 그 예입니다.

PS> (1, 2, 3, 4).Count
4
PS> (1, 2, 3, 4).Length
4

사용자 지정 형식 파일

사용자 지정 형식 파일을 만들려면 먼저 기존 형식 파일을 복사합니다. 새 파일은 어떤 이름도 가질 수 있지만 .ps1xml 파일 이름 확장명이 있어야 합니다. 파일을 복사할 때 Windows PowerShell에서 액세스할 수 있는 디렉터리에 새 파일을 배치할 수 있지만 Windows PowerShell 설치 디렉터리($PSHOME) 또는 설치 디렉터리의 하위 디렉터리에 파일을 배치하는 것이 유용합니다.

파일에 고유한 확장 형식을 추가하려면 확장하려는 각 개체에 대한 형식 요소를 추가합니다. 다음 항목에서는 예제를 제공합니다.

  • 속성 및 속성 집합을 추가하는 방법에 대한 자세한 내용은 확장 속성 참조하세요.

  • 메서드를 추가하는 방법에 대한 자세한 내용은 확장 메서드 참조하세요.

  • 멤버 집합을 추가하는 방법에 대한 자세한 내용은 확장 멤버 집합 참조하세요.

고유한 확장 형식을 정의한 후 다음 방법 중 하나를 사용하여 확장 개체를 사용할 수 있도록 합니다.

  • 확장 형식 파일을 현재 세션에서 사용할 수 있도록 하려면 Update-TypeData cmdlet을 사용하여 새 파일을 추가합니다. 형식이 다른 형식 파일(Types.ps1xml 파일 포함)에 정의된 형식보다 우선하도록 하려면 Update-TypeData cmdlet의 PrependData 매개 변수를 사용합니다.
  • 이후의 모든 세션에서 확장 형식 파일을 사용할 수 있도록 하려면 모듈에 형식 파일을 추가하거나, 현재 세션을 내보내거나, Update-TypeData 명령을 Windows PowerShell 프로필에 추가합니다.

서명 형식 파일

XML에 스크립트 블록이 포함될 수 있으므로 변조를 방지하기 위해 형식 파일을 디지털 서명해야 합니다. 디지털 서명 추가에 대한 자세한 내용은 about_Signing 참조하세요.

또한 참조하십시오

개체 대한 기본 속성 정의

개체 대한 기본 메서드 정의

개체 대한 기본 멤버 집합 정의

Windows PowerShell Cmdlet 작성