|
Windows PowerShellは、マイクロソフトが開発した拡張可能なコマンドラインインターフェース(CLI)シェルおよびスクリプト言語である。オブジェクト指向に基づいて設計されており、.NET Framework 2.0を基盤としている。 かつてはMicrosoft Shell(MSH、コードネームMonad)と呼ばれていた。 Windows XP、Windows Server 2003、Windows Vistaに対応しており、Windows Server 2008に含まれることが予定されている。
歴史マイクロソフトによるOSには、MS-DOSからWindowsに至るまで、どのバージョンにもコマンドラインツールが付属した。それは、かつてはCOMMAND.COMであり、NTベースのOSにおいてはcmd.exeであった。これらのツールは、GUIで提供されるような管理機能の自動化や再利用に必ずしも長けているとは言えなかった。これはコマンドライン内の制限によるものであり、マイクロソフトが高品質なコマンドラインツールを提供しなかったためでもあった。Windows Server 2003では状況は改善されたが、それでもユーザは適切なドキュメントやコマンドライン機能の不足に苦しんだ。 マイクロソフトは、コマンドラインツールの短所を補うものとして、1998年、Windows 98でWindows Script Host(WSH)を提供した。これは様々なスクリプト言語を実装するための新しいスクリプティングレイヤーであった。しかし、WSHはシェルに統合されていないという欠点があり、ドキュメントも非常に使いにくいものだった。また、WSHの持つセキュリティ上の欠陥をつくコンピューターウイルスがいくつか出現したため、システム上の脆弱性とみなされたこともあり、広く普及するには至らなかった。 マイクロソフトによるコマンドラインツール改善の試みとしては、Windows Server 2003と一部のバージョンのWindows XP向けの、CScript.exeと呼ばれるコマンドラインベースのスクリプト環境も存在する(本質的にはWSHの一部分である)が、既存のシェル(cmd.exe)には統合されなかった。これらのOSには、他にもアドホックなコマンドラインインターフェース(例えばnetsh)が存在したが、やはり統合はされなかった。 2004年、マイクロソフトはMonad(MSH)と呼ばれる新しいシェルの開発に着手した。この新しいシェルは、広範囲にわたる管理タスクの自動化が可能であるように設計された。 マイクロソフトは2005年6月、2005年9月、2006年1月にそれぞれベータ版をリリースした。 2006年4月、マイクロソフトはMonadをWindows PowerShellと改名し、マイクロソフトの管理技術において重要な役割を担うものと位置づけた。同時にリリース候補(RC)1がリリースされた。 2006年9月、RC2がリリースされた。 2006年11月、Windows PowerShell 1.0がウェブ上でリリースされた(RTW)。 2007年1月、PowerShell for Vistaがリリースされた。 マイクロソフトはこれからの主なGUIツールはPowerShell上に構築されると表明し、主な管理機能がスクリプト可能になるとした。例えば、Exchange Server 2007の管理ツールはPowerShellの上に構築されている。多くの日常的な場面でPowerShellはCMD.EXEやWSHを置き換えるものとして利用できる。しかし、後方互換性のためにCMD.EXEやWSHのいずれも将来のWindowsでサポートされると思われる。 基本的な概念PowerShellは、基本的な機能をもつ様々なコンポーネントを組み合わせたタスクによって構成される。これは、PowerShellのコードネームであるMonadが、ゴットフリート・ライプニッツの単子論(monadology)、すなわち宇宙は予定調和によって調和されたモナドと呼ばれる基本的な元素から構成される、という哲学に由来することにも現れている。PowerShellのコンポーネントは、cmdlet(コマンドレット)と呼ばれるプログラムであり、その実体は.NETのクラスである。 cmdlet間でのデータの受け渡しは、古典的なUNIX型アプローチ(テキスト入出力をパイプする)とは異なり、オブジェクト(構造化されたデータ)で行なわれる。コマンドラインから個別にアクセスされた場合、cmdletの出力は自動的にテキストに変換されるが、出力が他のcmdletに渡されるのであれば、そのcmdletの入力として最も適切な形式に変換され、渡される。これにより、UNIX型システムで一般的なテキスト処理ユーティリティ(grepやawkなど)が不要となり、インタラクティブに、またはスクリプト環境(より複雑なプログラミング言語が必要)の中で、様々なcmdletを結合することができる。例えば、プロセスの一覧を出力する場合、それらは単なるテキストの一覧ではなく、プロセスの情報を表すオブジェクトの一覧である。従ってそれらのオブジェクトに対して、明示的に外部の構造やライブラリを使用することなく、直接的にメソッドを適用することができる。 機能PowerShell 1.0には次の機能が含まれる。
dir HKLM:SOFTWARE\Microsoft
使用例
PS> get-process p* | stop-process
PS> get-process | where { $_.WS -gt 1000MB } | stop-process
PS> get-childitem | measure-object -property length -sum
PS> $processToWatch = get-process notepad PS> $processToWatch.WaitForExit()
PS> "hello, world!".ToUpper()
PS> "string".Insert(1, "ABC")
PS> $rssUrl = "http://blogs.msdn.com/powershell/rss.aspx" PS> $blog = [xml](new-object System.Net.WebClient).DownloadString($rssUrl) PS> $blog.rss.channel.item | select title -first 8
PS> $UserProfile = $env:UserProfile 外部リンク
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.
Mercedes Car
This site monitored by SitePinger.net