Get-Member コマンドレットの使用

コマンドまたはオブジェクトのプロパティとメソッドの表示

スクリプトを記述するときやコマンド ラインから作業するときにぶつかる最も大きな問題は、実行できることとできないことを知る方法です。使用できるプロパティとメソッドはどうすればわかるでしょうか。MSDN に掲載されているすべてのオブジェクト モデルを記憶せずにスクリプトを記述したりコマンド ライン コマンドを入力するにはどうすればよいでしょうか。

1 つの方法は、Windows PowerShell の Get-Member を使用することです。オブジェクトに接続すると、そのオブジェクトを Get-Member にパイプ処理できます。次に Get-Member を使用してそのオブジェクトのプロパティとメソッドを列挙します。たとえば、イベント ログに使用できるプロパティとメソッドを知りたいとします。Get-EventLog -list を使用してイベント ログ オブジェクトを取得する方法を知っている場合、必要な処理は次のコマンドの実行です。

Get-EventLog -list | Get-Member

次に、Windows PowerShell は以下のようなデータを返します。

Name                      MemberType Definition
----                      ---------- ----------
add_Disposed              Method     System.Void add_Disposed(EventHandler v...
add_EntryWritten          Method     System.Void add_EntryWritten(EntryWritt...
BeginInit                 Method     System.Void BeginInit()
Clear                     Method     System.Void Clear()
Close                     Method     System.Void Close()

WMI Win32_BIOS クラスのプロパティに関心がありますか。この場合、次のコマンドを使用し、返されるデータをプロパティのみに制限するために -membertype パラメータを付加します。

Get-WmiObject win32_bios | Get-Member -membertype properties

また、-membertype を method に設定すると、メソッドのみを返します。

Get-Member の興味深い使用方法を紹介します。Get-Process コマンドレットが返すプロパティの一部にエイリアスがあることはご存じですか。このコマンドを実行して -membertype を AliasProperty に設定すると、わかります。

Get-Process | Get-Member -membertype aliasproperty

返される内容を次に示します。

Name    MemberType    Definition
----    ----------    ----------
Handles AliasProperty Handles = Handlecount
Name    AliasProperty Name = ProcessName
NPM     AliasProperty NPM = NonpagedSystemMemorySize
PM      AliasProperty PM = PagedMemorySize
VM      AliasProperty VM = VirtualMemorySize
WS      AliasProperty WS = WorkingSet

"プロパティにエイリアスがある" とはどのような意味でしょうか。単純に、次に Get-Process コマンドレットを処理するときに、NonpagedSystemMemorySize の代わりに NPM と入力できることです。たとえば、次のようになります。

Get-Process | Select-Object name, npm

当然ながら、Get-Member は COM オブジェクトも処理できます。FileSystemObject のプロパティとメソッドを知る必要があるのですか。必要な操作は、New-Object コマンドレットを使用して FileSystemObject のインスタンスを作成してから、オブジェクトを Get-Member にパイプ処理するだけです。

New-Object -com scripting.filesystemobject | Get-Member

返される情報の一部を紹介します。

Name                MemberType Definition
----                ---------- ----------
BuildPath           Method     string BuildPath (string, string)
CopyFile            Method     void CopyFile (string, string, bool)
CopyFolder          Method     void CopyFolder (string, string, bool)
CreateFolder        Method     IFolder CreateFolder (string)
CreateTextFile      Method     ITextStream CreateTextFile (string, bool, bool)
DeleteFile          Method     void DeleteFile (string, bool)
DeleteFolder        Method     void DeleteFolder (string, bool)
DriveExists         Method     bool DriveExists (string)
FileExists          Method     bool FileExists (string)
FolderExists        Method     bool FolderExists (string)
Get-Member エイリアス
  • gm

関連リンク