about_properties
トピック
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
2008 年 3 月 18 日 0:07:52
次の例に示すように、変数にオブジェクトを保存し、ドット メソッドを使用してそのプロパティを取得すること
もできます。
C:\PS> $a = Get-ChildItem $pshome\powershell.exe
C:\PS> $a.CreationTime
2008 年 3 月 18 日 0:07:52
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