항목
    about_Format.ps1xml

간단한 설명
    Windows PowerShell의 Format.ps1xml 파일은 Windows PowerShell 콘솔에서 개체의 
    기본 표시를 정의합니다. 직접 Format.ps1xml 파일을 만들어 개체의 표시를 변경하거나 Windows 
    PowerShell에서 만든 새 개체 유형에 대한 기본 표시를 정의할 수 있습니다.

자세한 설명
    Windows PowerShell의 Format.ps1xml 파일은 Windows PowerShell에서 개체의 기본 
    표시를 정의합니다. 직접 Format.ps1xml 파일을 만들어 개체의 표시를 변경하거나 Windows 
    PowerShell에서 만든 새 개체 유형에 대한 기본 표시를 정의할 수 있습니다.


    Windows PowerShell은 개체를 표시할 때 구조화된 형식 지정 파일의 데이터를 사용하여 개체의 기본 표시를 
    결정합니다. 형식 지정 파일의 데이터는 개체가 테이블로 렌더링되는지 아니면 목록으로 렌더링되는지와 기본적으로 
    표시되는 속성을 결정합니다. 


    형식 지정은 표시에만 영향을 주고 파이프라인을 따라 전달되는 개체 속성 또는 개체 속성이 전달되는 방식에는 
    영향을 주지 않습니다.


    Windows PowerShell에는 형식 지정 파일이 7개 있습니다. 이러한 파일은 설치 디렉터리($pshome)에 
    있으며, 각 파일은 Microsoft .NET Framework 개체의 그룹 표시를 정의합니다.


	Certificate.Format.ps1xml
            인증서 저장소의 개체(예: X.509 인증서 및 인증서 저장소)입니다.

	DotNetTypes.Format.ps1xml
            기타 .NET Framework 유형(예: CultureInfo, FileVersionInfo 및 
            EventLogEntry 개체)입니다.

	FileSystem.Format.ps1xml
            파일 시스템 개체(예: 파일 및 디렉터리)입니다.

	Help.Format.ps1xml
            자세히 보기와 전체 보기, 매개 변수 및 예제 등과 같은 도움말 보기입니다.

	PowerShellCore.format.ps1xml
            Windows PowerShell 핵심 cmdlet에서 생성한 개체(예: Get-Member 및 
            Get-History)입니다.

	PowerShellTrace.format.ps1xml
            Trace-Command cmdlet에서 생성한 개체 등을 추적합니다.

	Registry.format.ps1xml 
            키 및 항목 등과 같은 레지스트리 개체입니다.


    형식 지정 파일은 각 개체의 네 가지 보기, 즉 테이블, 목록, 와이드 및 복합 보기를 정의할 수 있습니다. 예를 
    들어, Get-ChildItem 명령의 출력이 Format-List 명령에 파이프되면 Format-List는 
    FileSystem.format.ps1xml 파일의 보기를 사용하여 파일과 폴더 개체를 목록으로 표시하는 방법을 결정합니다.


    Format.ps1xml 파일에서 보기는 보기 이름, 보기를 적용할 수 있는 개체 유형, 열 머리글, 보기의 본문에 
    표시되는 속성 등을 설명하는 XML 태그 세트로 정의됩니다. Format.ps1xml 파일의 형식은 데이터가 사용자에게 
    표시되기 바로 전에 적용됩니다. 

  새 Format.ps1xml 파일 만들기

      형식 지정에 스크립트 블록이 포함될 수 있으므로 Windows PowerShell과 함께 설치된 .ps1xml 
      파일에는 변조를 방지하도록 디지털 서명이 되어 있습니다. 따라서 기존 개체 보기의 표시 형식을 변경하거나 새 
      개체에 대한 보기를 추가하려면 고유한 Format.ps1xml 파일을 만든 다음 사용자의 Windows PowerShell 
      세션에 추가합니다.


      새 파일을 만들려면 기존 Format.ps1xml 파일을 복사합니다. 새 파일의 이름은 임의로 지정할 수 있지만 파일 이름 
      확장명은 .ps1xml이 되어야 합니다. Windows PowerShell에 액세스할 수 있는 디렉터리에 새 파일을 배치할 수 있지만 
      Windows PowerShell 설치 디렉터리($pshome)나 설치 디렉터리의 하위 디렉터리에 배치하는 것이 좋습니다.

      현재 보기의 형식을 변경하려면 형식 지정 파일에서 보기를 찾은 다음 태그를 사용하여 보기를 변경합니다. 새 개체 
      유형에 대한 보기를 만들려면 새 보기를 만들거나 기존 보기를 모델로 사용합니다. 태그는 이 항목의 다음 단원에서 
      설명합니다. 파일을 검토하는 모든 사람이 변경 사항을 명확하게 구분할 수 있도록 파일에서 다른 보기를 모두 
      삭제할 수 있습니다.


      변경 사항을 저장한 경우에는 Update-FormatData cmdlet을 사용하여 새 파일을 사용자의 
      Windows PowerShell 세션에 추가합니다. 사용자의 보기를 기본 제공 파일에 정의된 보기보다 우선 적용하려면 
      Update-FormatData의 PrependData 매개 변수를 사용합니다. Update-FormatData는 현재 
      세션에만 영향을 줍니다. 이후의 모든 세션을 변경하려면 Update-FormatData 명령을 Windows 
      PowerShell 프로필에 추가합니다.


  예: Culture 개체에 일정 데이터 추가

      이 예에서는 Get-Culture cmdlet에서 생성한 culture 개체의 형식(System.Globalizat
      ion.CultureInfo)을 변경하는 방법을 보여 줍니다.
      이 예의 명령은 calendar 속성을 culture 개체의 기본 표 보기 표시에 추가합니다.


      첫 번째 단계에서는 culture 개체의 각 보기가 포함된 Format.ps1xml 파일을 찾습니다. 다음 
      Select-String 명령은 파일을 찾습니다.


	  select-string -path $pshome\*format.ps1xml `
              -pattern System.Globalization.CultureInfo


      이 명령은 정의가 DotNetTypes.Format.ps1xml 파일에 있음을 나타냅니다.


      다음 명령은 파일 내용을 새 파일 MyDotNetTypes.Format.ps1xml에 복사합니다.


	  copy-item DotNetTypes.Format.ps1xml MyDotNetTypes.Format.ps1xml


      그런 다음 MyDotNetTypes.Format.ps1xml 파일을 메모장과 같은 XML 또는 텍스트 편집기에서 엽니다. 
      System.Globalization.CultureInfo 개체 섹션을 찾습니다. 다음 XML은 CultureInfo 개체의 
      보기를 정의합니다. 이 개체에는 TableControl 보기만 있습니다.
 

      <View>
          <Name>System.Globalization.CultureInfo</Name>
          <ViewSelectedBy>
             <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
             <TypeName>System.Globalization.CultureInfo</TypeName>
          </ViewSelectedBy>

          <TableControl>
              <TableHeaders>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader>
                      <Width>16</Width>
                  </TableColumnHeader>
                  <TableColumnHeader/>
              </TableHeaders>
              <TableRowEntries>
                  <TableRowEntry>
                      <TableColumnItems>
                          <TableColumnItem>
                              <PropertyName>LCID</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>Name</PropertyName>
                          </TableColumnItem>
                          <TableColumnItem>
                              <PropertyName>DisplayName</PropertyName>
                          </TableColumnItem>
                      </TableColumnItems>
                  </TableRowEntry>
               </TableRowEntries>
          </TableControl>
      </View>


      파일에서 여는 <?XML>, <Configuration> 및 <ViewDefinitions> 태그와 닫는 
      <ViewDefintions> 및 <Configuration> 태그를 제외한 나머지를 삭제합니다. 파일을 변경할 때마다 
      디지털 서명도 삭제해야 합니다.


      <?xml version="1.0" encoding="utf-8" ?>
      <Configuration>
          <ViewDefinitions>
              <View>
                  <Name>System.Globalization.CultureInfo</Name>
                  <ViewSelectedBy>
                      <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName>
                      <TypeName>System.Globalization.CultureInfo</TypeName>
                  </ViewSelectedBy>

                  <TableControl>
                      <TableHeaders>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader>
                              <Width>16</Width>
                          </TableColumnHeader>
                          <TableColumnHeader/>
                      </TableHeaders>
                      <TableRowEntries>
                          <TableRowEntry>
                              <TableColumnItems>
                                  <TableColumnItem>
                                      <PropertyName>LCID</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>Name</PropertyName>
                                  </TableColumnItem>
                                  <TableColumnItem>
                                      <PropertyName>DisplayName</PropertyName>
                                  </TableColumnItem>
                              </TableColumnItems>
                          </TableRowEntry>
                       </TableRowEntries>
                  </TableControl>
              </View>
          </ViewDefinitions>
      </Configuration>


      그런 다음 새로운 <TableColumnHeader> 태그 세트를 추가하여 Calendar 속성에 대한 새 열을 
      만듭니다. Calendar 속성 값이 길 수 있으므로 다음과 같이 45자의 값이 사용됩니다.


                  <TableControl>
                    <TableHeaders>
                        <TableColumnHeader>
                            <Width>16</Width>
                        </TableColumnHeader>
                        <TableColumnHeader>
                            <Width>16</Width>
                        </TableColumnHeader>
                 
                        <TableColumnHeader>
                            <Width>45</Width>
                        </TableColumnHeader>

                        <TableColumnHeader/>
                    </TableHeaders> 


      이제 다음과 같이 테이블 행에 새 열 항목을 추가합니다.


                <TableRowEntries>
                    <TableRowEntry>
                        <TableColumnItems>
                            <TableColumnItem>
                                <PropertyName>LCID</PropertyName>
                            </TableColumnItem>
                            <TableColumnItem>
                                <PropertyName>Name</PropertyName>
                            </TableColumnItem>

                            <TableColumnItem>
                                <PropertyName>Calendar</PropertyName>
                            </TableColumnItem>

                            <TableColumnItem>
                                <PropertyName>DisplayName</PropertyName>
                            </TableColumnItem>
                        </TableColumnItems>
                    </TableRowEntry>
                 </TableRowEntries>



      파일을 저장하고 닫은 후에 다음 명령과 같은 Update-FormatData 명령을 사용하여 새 형식 파일을 현재 세션에 
      추가합니다. 이 명령은 PrependData 매개 변수를 사용하여 원래 파일보다 우선 순위가 높은 순위에 새 파일을 
      배치합니다. (Update-FormatData에 대한 자세한 내용을 보려면 "get-help update-formatdata"를 입력하십시오.)


	  update-formatdata -prependpath $pshome\MyDotNetTypes.format.ps1xml


      변경 사항을 테스트하려면 "get-culture"를 입력한 다음 Calendar 속성이 포함된 출력을 검토합니다.


      C:\PS> get-culture

      LCID Name  Calendar                               DisplayName
      ---- ----  --------                               -----------
      1042 ko-KR System.Globalization.GregorianCalendar 한국어 (대한민국)


  Format.ps1xml 파일의 XML

      각 Format.ps1xml 파일의 ViewDefinitions 섹션에는 각 보기를 정의하는 <View> 태그가 
      포함됩니다. 일반적인 <View> 태그에는 다음 태그가 포함됩니다.

    
          <Name>
              <Name> 태그는 보기의 이름을 식별합니다.


          <ViewSelectedBy>
              <ViewSelectedBy> 태그는 보기를 적용할 개체 유형을
              지정합니다.

    
          <GroupBy>
              <GroupBy> 태그는 보기의 항목을 그룹으로 결합하는 방법을 
              지정합니다.


          <TableControl>
          <ListControl>
          <WideControl>
          <ComplexControl>
              이러한 태그에는 각 항목을 표시하는 방법을 지정하는 태그가 포함됩니다.

    
      <ViewSelectedBy> 태그에는 보기를 적용할 각 개체 유형에 대한 <TypeName> 태그가 포함될 수 
      있습니다. 또는 <SelectionSet> 태그를 사용하여 다른 곳에 정의한 선택 집합을 참조하는 
      <SelectionSetName> 태그를 포함할 수 있습니다.


      <GroupBy> 태그에는 항목을 그룹화할 때 기준으로 사용되는 개체 속성을 지정하는 <PropertyName> 태그가 
      포함됩니다. 또한 각 그룹의 레이블로 사용할 문자열을 지정하는 <Label> 태그 또는 <Control> 태그를 사용하여 
      다른 곳에 정의한 복잡한 컨트롤을 참조하는 <ComplexControlName> 태그가 포함됩니다. <Control> 태그에는 
      <Name> 태그와 <ComplexControl> 태그가 포함됩니다. 

    
      일반적으로 <TableControl> 태그에는 테이블의 머리글과 행에 대한 형식을 정의하는 <TableHeaders>  
      및 <TableRowEntries> 태그가 포함됩니다. 일반적으로 <TableHeaders> 태그에는 <Label>, 
      <Width> 및 <Alignment> 태그가 포함되는 <TableColumnHeader> 태그가 포함됩니다. 
      <TableRowEntries> 태그에는 테이블의 각 행에 대한 <TableRowEntry> 태그가 포함됩니다. 
      <TableRowEntry> 태그에는 행의 각 열에 대한 <TableColumnItem> 태그를 포함하는 
      <TableColumnItems> 태그가 포함됩니다. 
      일반적으로 <TableColumnItem> 태그에는 정의된 위치에 표시할 개체 속성을 식별하는 
      <PropertyName> 태그나 정의된 위치에 표시할 결과를 계산하는 스크립트 코드를 포함하는 
      <ScriptBlock> 태그가 포함됩니다. 


      참고: 스크립트 블록은 계산 결과가 유용할 수 있는 다른 위치에도 사용될 있습니다. 

    
      <TableColumnItem> 태그에는 속성이나 계산 결과가 표시되는 방법을 지정하는 <FormatString> 
      태그도 포함될 수 있습니다.

    
      일반적으로 <ListControl> 태그에는 <ListEntries> 태그가 포함됩니다. <ListEntries> 
      태그에는 <ListItems> 태그가 포함됩니다. <ListItems> 태그에는 <PropertyName> 태그가 
      포함되는 <ListItem> 태그가 포함됩니다. <PropertyName> 태그는 목록에 지정된 위치에 표시할 개체 속성을 
      지정합니다. 선택 집합을 사용하여 보기 선택을 정의한 경우 <ListControl> 태그에 하나 이상의 <TypeName> 
      태그가 포함된 <EntrySelectedBy> 태그가 포함될 수도 있습니다. 이러한 <TypeName> 태그는 
      <ListControl> 태그를 표시할 개체 유형을 지정합니다.

    
      일반적으로 <WideControl> 태그에는 <WideEntries> 태그가 포함됩니다. <WideEntries> 
      태그에는 <WideEntry> 태그가 한 개 이상 포함됩니다. 일반적으로 <WideEntry> 태그에는 보기의 
      지정된 위치에 표시할 속성을 지정하는 <PropertyName> 태그가 포함됩니다. <PropertyName> 
      태그에는 속성이 표시되는 방법을 지정하는 <FormatString> 태그가 포함될 수 있습니다. 

    
      <ComplexControl> 태그에는 다른 보기 유형보다 복잡한 태그 조합이 포함됩니다. 일반적으로 
      <ComplexControl> 태그에는 <ComplexEntries> 태그가 포함됩니다. 
      <ComplexEntries> 태그에는 <ComplexEntry> 태그가 여러 개 포함됩니다. 일반적으로 
      <ComplexEntry> 태그에는 <ComplexItem> 태그가 포함됩니다. 이 태그에는 <Text>, 
      <Indentation>, <ExpressionBinding> 및 <NewLine> 태그를 포함하여 보기의 지정된 
      위치에 대한 내용과 형식을 지정하는 다양한 태그가 포함될 수 있습니다.


  Update-FormatData

      Format.ps1xml 파일을 Windows PowerShell 세션으로 로드하려면 Update-FormatDat
      a cmdlet을 사용합니다. 사용자 파일의 보기를 기본 제공 Format.ps1xml 파일의 보기보다 우선적으로 
      적용하려면 Update-FormatData의 PrependData 매개 변수를 사용합니다. 
      Update-FormatData는 현재 세션에만 영향을 줍니다. 이후의 모든 세션을 변경하려면 
      Update-FormatData 명령을 Windows PowerShell 프로필에 추가합니다.


  Types.ps1xml의 기본 표시

      일부 기본 개체 유형의 기본 표시는 $pshome 디렉터리의 Types.ps1xml 파일에 정의되어 있습니다. 이 노드에는 
      PsStandardMembers라는 이름이 지정되고 하위 노드는 다음 태그 중 하나를 사용합니다.


          <DefaultDisplayProperty>
          <DefaultDisplayPropertySet>
          <DefaultKeyPropertySet>


      자세한 내용을 보려면 다음 명령을 입력하십시오.

	  get-help about_types.ps1xml
 

  Format.ps1xml 파일 사용 추적

      Format.ps1xml 파일 로드 또는 적용 시 오류를 감지하려면 Trace-Command cmdlet과 함께 
      Name 매개 변수의 값으로 다음 형식의 구성 요소를 사용합니다.


	  FormatFileLoading
          UpdateFormatData
          FormatViewBinding


      자세한 내용을 보려면 다음 명령을 입력하십시오.


          get-help trace-command
          get-help get-tracesource   


  Format.ps1xml 파일 서명

      Format.ps1xml 파일 사용자를 보호하려면 디지털 서명을 사용하여 파일에 서명합니다. 자세한 내용을 보려면 다음을 
      입력하십시오.

          get-help about_signing


참고 항목
    Update-FormatData
    Trace-Command
    Get-TraceSource




목차