Windows PowerShellの紹介



 


Windows PowerShellは、主にシステム管理者を対象に設計されたWindows の新しいコマンドライン シェルです。PowerShell には対話型のプロンプトとスクリプト環境が備えられており、これらは別々に使用することも、組み合わせて使用することもできます。


 


ほとんどのシェルではテキストを受け取って返しますが、Windows PowerShell .NET 共通言語ランタイム (CLR) および .NET Framework 上に構築されているため、.NET オブジェクトを受け取って返すことができます。


 


Windows PowerShell では、シェルに組み込まれているシンプルな単一機能のコマンドライン ツールであるコマンドレットの概念が導入されています。それぞれのコマンドレットは個別に使用できますが、このシンプルなツールを組み合わせて複雑なタスクを実行することでコマンドレットの威力を発揮できます。Windows PowerShell には、100 を超える数の基本的なコア コマンドレットが付属しています。これに加えて、自分でコマンドレットを作成して他のユーザーと共有することもできます。


 


多くのシェルと同様、Windows PowerShell でも、コンピュータ上のファイル システムへのアクセスが提供されます。加えて、Windows PowerShell プロバイダにより、ファイル システムにアクセスするのと同じくらい簡単にレジストリやデジタル署名証明書ストアなどの他のデータ ストアにアクセスできます。


 


Windows PowerShell では、Windows コマンドライン プログラムを実行できます。メモ帳や電卓などの、グラフィック ユーザー インターフェイスを持つ Windows プログラムは、シェル内で起動できます。さらに、Cmd.exe を使用した場合と同じように、プログラムによって生成されるテキストをキャプチャしてそのテキストをシェルで使用することもできます。



 


 


Usage for Windows PowerShell


 


さて、とりあえず使ってみましょう。



 


まずはじめに、Windows PowerShellDownload(下記“Where we get Windows PowerShell?”項目を参照)した後にインストールしてください。


次に、スタート” – “Windows PowerShell 1.0” – “Windows PowerShell”メニューを選び、Windows PowerShell Command Prompt Windowを起動します。


 


以下のように文字列”abc”を入力すると、abcが返ってきます。


PS C:\>”abc”<Enter>


abc


 


今までのShellのようにただの文字列が返ってきているようにも見えますが、これはStringオブジェクトです。このことを検証してみましょう。


 


Windows PowerShell では、パイプ処理をほぼすべての状況で使用できます。画面にはテキストが表示されますが、コマンド間で受け渡しされる情報はテキストではありません。パイプの中を流れるデータは、実際にはオブジェクトです。


 


Windows PowerShell ではオブジェクトが主要な役割を果たすため、オブジェクトの種類に関係なく使用できるネイティブ コマンドがいくつか用意されています。その中で最も重要なコマンドが Get-Member です。


コマンドから返されたオブジェクトを解析するための最も簡単な方法は、そのコマンドの出力をパイプで Get-Member コマンドレットに渡すことです。Get-Member コマンドレットを実行すると、オブジェクトの正式な型名と、そのすべてのメンバの一覧が表示されます。非常に多くの要素が返される場合もあります。


 


以下のようにコマンドを入力してみてください。


PS C:\>”abc” | get-member<Enter>


 


TypeName: System.String


 


Name       MemberType     Definition


----       ----------     ----------


Clone      Method         System.Object Clone()


CompareTo  Method         System.Int32 CompareTo(Object value), System.Int32 CompareTo(String strB)



 


文字列”abc”を、パイプを通してGet-Memberコマンドへ渡した結果、上記のように”TypeName: System.String”と表示されましたので、文字列”abc”Stringオブジェクトであることが確認できます。


 


また、Get-MemberコマンドはStringオブジェクトを返しますので、今回のようにオブジェクトのTypeNameだけ知りたい場合には以下のようなコマンドを入力することにより必要な情報だけを返すこともできます。


PS C:\>”abc” | get-member | findstr “TypeName:”<Enter>


 


TypeName: System.String


 


文字列の先頭に’$’を付けると変数になります。この変数の型定義はありませんので、どのようなObjectも代入することができます。


以下のコマンドを入力することにより、変数$abcに文字列”abc”を代入した後、$abcに代入されたオブジェクトが何かを調べてみるとStringオブジェクトであることが確認できます。


PS C:\>$abc = “abc”


PS C:\>$abc | get-member | findstr “TypeName:”<Enter>


 


TypeName: System.String


 


下記コマンドを入力するとNotepad.exeが1つ起動されます。


PS C:\>notepad<Enter>


 


下記コマンドを入力すると、いま起動されたNotepad.exeのプロセス情報が表示されます。


PS C:\>get-process notepad<Enter>


 


Handles  NPM(K)  PM(K)  WS(K)  VM(K)  CPU(s)    Id  ProcessName


------- -------  -----  -----  -----  ------    --  -----------


     65       7   2924  6892      98    0.02  2228  notepad


 


以下のコマンドを入力することにより、上記のコマンドが何を返してくるのかを調べることができます。


PS C:\>get-process notepad | get-member | findstr “TypeName:”<Enter>


 


TypeName: System.Diagnostics.Process


 


下記コマンドを入力すると、いま起動されたNotepad.exeのプロセスが削除されます。


PS C:\>get-process notepad | kill<Enter>


 


いかがでしょうか?簡単な説明ではございますが、パイプを通して文字列ではなくオブジェクトを受け渡すことの便利さを感じていただけましたら幸いです。


 


 


Where we get Windows PowerShell?


 


Windows PowerShellまたはWindows PowerShell関連の情報は、以下の場所から無料でDownloadして利用することができますので、どうぞ使ってみてください。


 


Windows PowerShell 1.0 Documentation Pack


http://www.microsoft.com/downloads/details.aspx?FamilyID=b4720b00-9a66-430f-bd56-ec48bfca154f&DisplayLang=en


(このドキュメント内に日本語翻訳されたものが入っております。)



Windows PowerShell Week Script Samples


http://www.microsoft.com/downloads/details.aspx?FamilyID=264ce487-1d36-4466-bd8b-23a7f1fa967e&DisplayLang=en



Windows PowerShell Week Magazine


http://www.microsoft.com/downloads/details.aspx?FamilyID=9fb32b6c-e847-4488-a242-d76bee92a21b&DisplayLang=en


 



x86 (JPN)



WindowsXPWindows PowerShell 1.0インストールパッケージ(ローカライズ版)


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=30125a46-b97c-4704-aa10-605e809d5933



Windows Server 2003Windows PowerShell 1.0インストールパッケージ(ローカライズ版)


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=c61fb27b-e71c-4ecf-9d2c-9b299b149490



 


x64 (JPN)



Windows XP x64 EditionWindows PowerShell 1.0インストールパッケージ(ローカライズ版)


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=814f4d99-2036-4c8e-a0ce-0480b9976091



Windows Server 2003 x64 EditionWindows PowerShell 1.0インストールパッケージ(ローカライズ版)


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=22e607f4-f854-497f-9548-770477e4b71d



 


x86 (English)



Windows PowerShell 1.0 English-Language Installation Package for Windows XP


http://www.microsoft.com/downloads/details.aspx?FamilyID=6ccb7e0d-8f1d-4b97-a397-47bcc8ba3806&DisplayLang=en



Windows PowerShell 1.0 English-Language Installation Package for Windows Server 2003


http://www.microsoft.com/downloads/details.aspx?FamilyID=10ee29af-7c3a-4057-8367-c9c1dab6e2bf&DisplayLang=en



 


x64 (English)



Windows PowerShell 1.0 English-Language Installation Package for Windows XP x64 Edition


http://www.microsoft.com/downloads/details.aspx?FamilyID=e9a90e13-c67c-42d7-b391-0e67dd67b83f&DisplayLang=en



Windows PowerShell 1.0 English-Language Installation Package for Windows Server 2003 x64 Edition


http://www.microsoft.com/downloads/details.aspx?FamilyID=8913eec8-b8ad-4889-ad85-a113f13441c5&DisplayLang=en



 


Itanium



Windows PowerShell 1.0 English-Language Installation Package for Windows Server 2003 for Itanium-based Systems


http://www.microsoft.com/downloads/details.aspx?FamilyID=3a804d57-2b54-4a47-93d4-a471e7108941&DisplayLang=en



Windows PowerShell 1.0 Multilingual User Interface Package for Windows Server 2003 for Itanium-based Systems


http://www.microsoft.com/downloads/details.aspx?FamilyID=29c265e9-f967-4e21-af2e-3f4d978a4e16&DisplayLang=en



Windows PowerShell 1.0 Localized Installation Package for Windows Server 2003 for Itanium-based Systems


http://www.microsoft.com/downloads/details.aspx?FamilyID=2fb5a053-d84c-4deb-9d67-658e2b7f24a5&DisplayLang=en



Windows Server 2003 for Itanium-based SystemsWindows PowerShell 1.0インストールパッケージ(ローカライス版)


http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=2fb5a053-d84c-4deb-9d67-658e2b7f24a5


 


 

Skip to main content