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 エイリアス |
---|
|