トピック 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