トピック
    about_Properties

簡易説明
    Windows PowerShell でオブジェクト プロパティを使用する方法について説明します。


詳細説明
    Windows PowerShell では、"オブジェクト" と呼ばれる構造化された情報の集合体を使用して、
    データ ストア内の項目やコンピューターの状態を表します。通常は Microsoft .NET Framework 
    に含まれるオブジェクトを操作しますが、Windows PowerShell でカスタム オブジェクトを作成
    することもできます。


    項目とそのオブジェクトは、密接に結び付いています。オブジェクトを変更すると、そのオブジェクトが
    表す項目も変更されます。たとえば、Windows PowerShell でファイルを取得する場合、実際のファイルを
    取得するのではなく、そのファイルを表す FileInfo オブジェクトを取得します。FileInfo オブジェクト
    を変更すると、ファイルも変更されます。


    ほとんどのオブジェクトにはプロパティがあります。プロパティは、オブジェクトに関連付けられている
    データです。このデータは、オブジェクトの性質を表します。たとえば、FileInfo オブジェクトには Length 
    というプロパティがあります。これは、FileInfo オブジェクトで表されるファイルのサイズを示します。


  オブジェクトのプロパティ

     オブジェクトのプロパティを一覧表示するには、Get-Member コマンドレットを使用します。たとえば、
     FileInfo オブジェクトのプロパティを取得するには、Get-ChildItem コマンドレットを使用して、ファイルを表
     す FileInfo オブジェクトを取得します。次に、パイプライン演算子 (|) を使用して、FileInfo オブジェクトを 
     Get-Member に渡します。PowerShell.exe ファイルを取得して Get-Member に渡すには、次のコマンドを使用
     します。$Pshome 自動変数には、Windows PowerShell のインストール ディレクトリのパスが含まれます。

         get-childitem $pshome\powershell.exe |get-member


     コマンドの出力には FileInfo オブジェクトのメンバーが一覧表示されます。メンバーには、プロパティとメ
     ソッドの両方が含まれます。Windows PowerShell で作業しているときは、オブジェクトのすべてのメンバーにアク
     セスできます。


     メソッドは除外し、オブジェクトのプロパティだけを取得するには、次の例のように、Get-Member コマンドレ
     ットの MemberType パラメーターを使用して、値を "property" に設定します。

         get-childitem $pshome\powershell.exe | get-member 
         -membertype property

            TypeName: System.IO.FileInfo
        
         Name              MemberType Definition
         ----              ---------- ----------
         Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
         CreationTime      Property   System.DateTime CreationTime {get;set;}
         CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
         Directory         Property   System.IO.DirectoryInfo Directory {get;}
         DirectoryName     Property   System.String DirectoryName {get;}
         Exists            Property   System.Boolean Exists {get;}
         Extension         Property   System.String Extension {get;}
         FullName          Property   System.String FullName {get;}
         IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
         LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
         LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
         LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
         LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
         Length            Property   System.Int64 Length {get;}
         Name              Property   System.String Name {get;}

     見つかったプロパティは、Windows PowerShell コマンド内で使用できます。


  プロパティ値
    
     特定の種類のオブジェクトには同じプロパティがありますが、それらのプロパティの値は、特定のオブジェクトの
     性質だけを表します。たとえば、どの FileInfo オブジェクトにも CreationTime プロパティがありますが、
     そのプロパティの値はファイルごとに異なります。


     オブジェクトのプロパティの値を取得する際に最も一般的に使用されるのは、ドット メソッドを使用する方法で
     す。オブジェクトへの参照 (オブジェクトが含まれている変数など) か、オブジェクトを取得するコマンドを入
     力します。次に、ドット (.) を入力し、その後にプロパティ名を入力します。


     たとえば、次のコマンドは、PowerShell.exe ファイルの CreationTime プロパティの値を表示します。
     Get-ChildItem コマンドは、PowerShell.exe ファイルを表す FileInfo オブジェクトを返します。このコマンド
     は、プロパティへのアクセスの前に実行されるように、かっこで囲まれています。また、Get-ChildItem コマン
     ドの後にドットと CreationTime プロパティの名前が続いています。

         C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime
         Tuesday, March 18, 2008 12:07:52 AM


     次の例に示すように、変数にオブジェクトを保存し、ドット メソッドを使用してそのプロパティを取得すること
     もできます。

         C:\PS> $a = Get-ChildItem $pshome\powershell.exe
         C:\PS> $a.CreationTime
         Tuesday, March 18, 2008 12:07:52 AM


     Select-Object コマンドレットと Format-List コマンドレットを使用してオブジェクトのプロパティ値を
     表示することもできます。Select-Object と Format-List には、それぞれ Property パラメーターがありま
     す。この Property パラメーターを使用して、1 つまたは複数のプロパティとその値を指定できます。
     また、すべてのプロパティを表すワイルドカード文字 (*) を使用することもできます。


     たとえば、次のコマンドは、PowerShell.exe ファイルのすべてのプロパティの値を表示します。
 
 
         C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property *

         PSPath            : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         PSParentPath      : Microsoft.PowerShell.Core\FileSystem::C:\Windows\system32\WindowsPowerShell\v1.0
         PSChildName       : powershell.exe
         PSDrive           : C
         PSProvider        : Microsoft.PowerShell.Core\FileSystem
         PSIsContainer     : False
         VersionInfo       : File:             C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
                             InternalName:     POWERSHELL
                             OriginalFilename: PowerShell.EXE.MUI
                             File Version:      6.1.6570.1 (fbl_srv_powershell(nigels).070711-0102)
                             FileDescription:  PowerShell.EXE
                             Product:          Microsoft® Windows® Operating System
                             ProductVersion:   6.1.6570.1
                             Debug:            False
                             Patched:          False
                             PreRelease:       False
                             PrivateBuild:     True
                             SpecialBuild:     False
                             Language:         English (United States)

         BaseName          : powershell
         Mode              : -a---
         Name              : powershell.exe
         Length            : 160256
         DirectoryName     : C:\Windows\system32\WindowsPowerShell\v1.0
         Directory         : C:\Windows\system32\WindowsPowerShell\v1.0
         IsReadOnly        : False
         Exists            : True
         FullName          : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe
         Extension         : .exe
         CreationTime      : 3/18/2008 12:07:52 AM
         CreationTimeUtc   : 3/18/2008 7:07:52 AM
         LastAccessTime    : 3/19/2008 8:13:58 AM
         LastAccessTimeUtc : 3/19/2008 3:13:58 PM
         LastWriteTime     : 3/18/2008 12:07:52 AM
         LastWriteTimeUtc  : 3/18/2008 7:07:52 AM
         Attributes        : Archive
        

関連項目
    about_Objects
    Get-Member
    Select-Object
    Format-List




目次