PowerShell HelpFile - about_format.ps1xml
 記事記号:[me1534] 初版:2011/May/10

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

トピック
    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) にあります。各ファイルは、Mi
    crosoft .NET Framework オブジェクトのグループの表示を定義します。

	Certificate.Format.ps1xml
            X.509 証明書や証明書ストアなど、証明書ストアのオブジェクト。

	DotNetTypes.Format.ps1xml
            CultureInfo オブジェクト、FileVersionInfo オブジェクト、EventLogEntr
            y オブジェクトなど、その他の .NET Framework 型。

	FileSystem.Format.ps1xml
            ファイルやディレクトリなど、ファイル システム オブジェクト。

	Help.Format.ps1xml
            詳細ビューや完全ビューなどのヘルプのビュー、パラメーター、および例。

	PowerShellCore.format.ps1xml
            Get-Member や Get-History などの Windows PowerShell コア 
            コマンドレットによって生成されるオブジェクト。

	PowerShellTrace.format.ps1xml
            Trace-Command コマンドレットによって生成されるようなトレース オブジェ
            クト。

	Registry.format.ps1xml
            キーやエントリなどのレジストリ オブジェクト。

    書式設定ファイルでは、各オブジェクトの 4 つのビュー (表、一覧、ワイド、複雑) 
    を定義することができます。たとえば、Get-ChildItem コマンドの出力を Format-Li
    st コマンドにパイプを介して渡すと、Format-List は、FileSystem.format.ps1xml 
    ファイルのビューを使用して、ファイル オブジェクトおよびフォルダー オブジェク
    トを一覧として表示する方法を決定します。

    Format.ps1xml ファイルで、ビューは、ビューの名前、適用可能なオブジェクトの型、
    列ヘッダー、およびビューの本体に表示されるプロパティを記述する XML タグのセ
    ットによって定義されます。Format.ps1xml ファイルの書式は、データがユーザーに
    表示される直前に適用されます。

  Format.ps1xml ファイルの新規作成

      Windows PowerShell と共にインストールされた .ps1xml ファイルは、改ざんを防
      止するためにデジタル署名されています。書式設定にはスクリプト ブロックを含
      めることができるためです。したがって、既存のオブジェクト ビューの表示書式
      を変更したり、新規オブジェクトのビューを追加するには、独自の Format.ps1xml 
      ファイルを作成し、これらのファイルを Windows PowerShell セッションに追加し
      ます。

      新しいファイルを作成するには、既存の Format.ps1xml ファイルをコピーします。
      新しいファイルには任意の名前を付けることができますが、ファイル名拡張子 .ps
      1xml を付ける必要があります。新しいファイルは、Windows PowerShell がアクセ
      スできるどのディレクトリにも配置できますが、Windows PowerShell インストー
      ル ディレクトリ ($pshome) またはインストール ディレクトリのサブディレクト
      リに配置すると便利です。

      現在のビューの書式設定を変更するには、書式設定ファイルでビューを見つけ、タ
      グを使用してビューを変更します。新規オブジェクト型のビューを作成するには、
      ビューを新規作成するか、または既存のビューをモデルとして使用します (タグに
      ついては、このトピックの次のセクションで説明します)。書式設定ファイル内で
      不要なビューをすべて削除しておくと、変更内容がわかりやすくなります。

      変更を保存したとき、Update-FormatData コマンドレットを使用して Windows Pow
      erShell セッションに新しいファイルを追加します。組み込みファイルに定義され
      ているビューよりも優先させるビューがある場合は、Update-FormatData の Prepe
      ndData パラメーターを使用します。Update-FormatData は、現在のセッションに
      のみ影響します。将来のすべてのセッションを変更するには、Windows PowerShell 
      プロファイルに Update-FormatData コマンドを追加します。

  例: カレンダー データのカルチャ オブジェクトへの追加

      この例では、Get-Culture コマンドレットによって生成されるカルチャ オブジェ
      クト (System.Globalization.CultureInfo) の書式設定を変更する方法を示します。
      この例のコマンドは、カルチャ オブジェクトの既定の表ビューの表示に Calendar 
      プロパティを追加します。

      最初の手順は、カルチャ オブジェクトの現在のビューを含んでいる Format.ps1xm
      l ファイルを見つけることです。次の Select-String コマンドは、このファイル
      を見つけます。

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

      このコマンドによって、DotNetTypes.Format.ps1xml ファイルに定義があることが
      わかります。

      次のコマンドは、そのファイルの内容を新しいファイル MyDotNetTypes.Format.ps
      1xml にコピーします。

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

      次に、XML エディターやメモ帳などのテキスト エディターで MyDotNetTypes.Form
      at.ps1xml ファイルを開きます。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> と終了タグ <Vie
      wDefintions> および <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-fo
      rmatdata」と入力してください)。

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

      変更をテストするには、「get-culture」と入力して、Calendar プロパティが含ま
      れている出力を確認します。

      C:\PS> get-culture

      LCID Name  Calendar                               DisplayName
      ---- ----  --------                               -----------
      1033 en-US System.Globalization.GregorianCalendar English (United States)

  Format.ps1xml ファイルの XML

      各 Format.ps1xml ファイルの ViewDefinitions セクションには、各ビューを定義
      する <View> タグが含まれています。通常の <View> タグには、以下のタグが含ま
      れています。
    
          <Name>
              <Name> タグは、ビューの名前を表します。

          <ViewSelectedBy>
              <ViewSelectedBy> タグには、ビューを適用するオブジェクトの型を指定
              します。
    
          <GroupBy>
              <GroupBy> タグには、ビューの項目をグループ化する方法を指定します。

          <TableControl>
          <ListControl>
          <WideControl>
          <ComplexControl>
              これらのタグには、各項目の表示方法を指定するタグが含まれます。

      <ViewSelectedBy> タグには、ビューを適用するオブジェクトの型ごとに <TypeNam
      e> タグを含めることができます。または、<SelectionSet> タグを使用して別の場
      所で定義されている選択セットを参照する <SelectionSetName> タグを含めること
      もできます。

      <GroupBy> タグには、項目をグループ化するために使用するオブジェクト プロパテ
      ィを指定する <PropertyName> タグが含まれています。また、各グループのラベル
      として使用される文字列を指定する <Label> タグ、または別の場所で <Control> 
      タグを使用して定義されている複雑コントロールを参照する <ComplexControlName> 
      タグも含まれています。<Control> タグには、<Name> タグと <ComplexControl> タ
      グが含まれます。
    
      通常、<TableControl> タグには、表のヘッダーと行の書式を定義する <TableHead
      ers> および <TableRowEntries> タグが含まれています。この <TableHeaders> タ
      グには、通常、<Label>、<Width>、および <Alignment> タグを含む <TableColumn
      Header> タグが含まれています。<TableRowEntries> タグには、表の各行の <Tabl
      eRowEntry> タグが含まれています。この <TableRowEntry> タグには、行の各列の 
      <TableColumnItem> タグを含む <TableColumnItems> タグが含まれています。
      通常、<TableColumnItem> タグには、定義済みの場所に表示されるオブジェクト 
      プロパティを表す <PropertyName> タグ、またはその場所に表示される結果を計算
      するスクリプト コードを含む <ScriptBlock> タグが含まれています。

      注: スクリプト ブロックは、計算された結果が役立つ別の場所でも使用できます。
    
      <TableColumnItem> タグには、プロパティまたは計算された結果の表示方法を指定 
      する <FormatString> タグを含めることもできます。
    
      通常、<ListControl> タグには、<ListEntries> タグが含まれます。<ListEntries
      > タグには、<ListItems> タグが含まれます。<ListItems> タグには <ListItem> 
      タグが含まれ、このタグには <PropertyName> タグが含まれます。<PropertyName> 
      タグには、リストの指定場所に表示するオブジェクト プロパティを指定します。
      選択セットを使用してビューの選択が定義されている場合、<ListControl> タグ
      には、1 つ以上の <TypeName> タグを含む <EntrySelectedBy> タグも含めること
      ができます。これらの <TypeName> タグには、<ListControl> タグで表示するオ
      ブジェクトの型を指定します。
    
      通常、<WideControl> タグには、<WideEntries> タグが含まれます。<WideEntries
      > タグには、1 つ以上の <WideEntry> タグが含まれます。通常、<WideEntry> タグ
      には、ビューの指定場所に表示するプロパティを指定する <PropertyName> タグが
      含まれます。<PropertyName> タグには、プロパティの表示方法を指定する <Forma
      tString> タグを含めることができます。
    
      <ComplexControl> タグには、その他の種類のビューよりも複雑なタグの組み合わせ
      が含まれます。通常、<ComplexControl> タグには、<ComplexEntries> タグが含ま
      れます。<ComplexEntries> タグには、複数の <ComplexEntry> タグが含まれます。
      通常、<ComplexEntry> タグには、<ComplexItem> タグが含まれます。この <Compl
      exItem> タグには、ビューの指定場所の内容と書式を指定するさまざまなタグ (<T
      ext>、<Indentation>、<ExpressionBinding>、<NewLine> タグなど) を含めること
      ができます。

  Update-FormatData

      Windows PowerShell セッションに Format.ps1xml ファイルを読み込むには、Upda
      te-FormatData コマンドレットを使用します。組み込み Format.ps1xml ファイル
      のビューよりも優先させるビューがファイルにある場合は、Update-FormatData の 
      PrependData パラメーターを使用します。Update-FormatData は、現在のセッショ
      ンにのみ影響します。将来のすべてのセッションを変更するには、Windows PowerS
      hell プロファイルに Update-FormatData コマンドを追加します。

  Types.ps1xml の既定の表示

      一部の基本オブジェクトの型の既定の表示は、$pshome ディレクトリの Types.ps1
      xml ファイルに定義されています。ノードは PsStandardMembers という名前で、
      サブノードでは次のタグの 1 つを使用します。

          <DefaultDisplayProperty>
          <DefaultDisplayPropertySet>
          <DefaultKeyPropertySet>

      詳細については、次のコマンドを入力してください。

	  get-help about_types.ps1xml

  Format.ps1xml ファイルのトレースの使用

      Format.ps1xml ファイルの読み込みまたは適用時にエラーを検出するには、Trace-
      Command コマンドレットと共に、次の書式コンポーネントのいずれかを 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
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、HelpFile、about_format.ps1xml
ご利用数: 1973241
感想・要望・問い合わせは こちら