PowerShell 2.0 のグリット出力は便利

PowerShellですが、Microsoftの各種サーバー製品に添付が進んでいます。覚えちゃえば本当に便利です。例えば、IISには、AppCmd.exe が添付されていますが、そうでないサーバー製品だと、ついていなかったり、あっても機能が限定されていたりと、利用ケースが限られてきていたこともあったでしょう。

PowerShell 2.0がWindows 7と (これ忘れがち!) Windows Server 2008 R2に標準搭載されていますが、一つ劇的に良くなった機能があります。
それは:

 Out-GridView

コマンドレットです。

スクリプトの出力結果を、GridViewに表示してくれ

  • フィルタができる。ただし正規表現はまだ・・・
  • ソートができる
  • コピーペーストで、別のアプリケーションに出力結果を

image

結果は

image

画面上部の “フィルター” にsqlと入れると、入力途中で検索結果にフィルタをかけてくれます!

image

フィルタ条件はこんな感じです。最初に列を選択するのですが・・・正規表現すらすら出てこない場合も多いですので、これで十分かもしれませんね。

image

複数のコンピューターに実行する場合はGUIは不要なのですが、そうでないケースも多々あると思います。
出力結果をgrepする事はままあると思いますが、そして勿論、PowerShellでもフィルタソートも標準コマンドレットで実行できるのですが。この便利さには勝てない気がします。

広告

Windows PowerShellで遊んでみた!

マイクロソフトの畠山でございます。
しばらくさぼっておりました・・・急がしかったということに託けてすいません。でも、本当に忙しかったっです・・・
 
世間的には、Windows Vista / 2007 Office system (Office 2007とは言わないようです) のラウンチがありまして、企業のシステム担当者でもある皆様も、マイクロソフトの露出を目にされたものと思われます。と、同時に多くのお客様への情報発信の場をご提供いただきまして、本当に感謝しております。
 
今回もツールのご紹介を。
Windows PowerShell v1.0 です。
システム管理者の方であれば、各種コマンドラインツールをご利用になっているかと思います。UNIX系なら、なおさらですよね。昔からWindows Serverの管理をする上で、「シェルが弱いからねぇ」と言われておりましたが、Windows 2000、2003とマイクロソフトから標準提供されるコマンド数もかなり増加して、UNIX系とそん色ないと言えるかと思います。
WSH (Windows Scripting Host) もその中の一つで、皆様なじみ深いものになっていますでしょうか?どうでしょう?
 
さて、PowerShellですが、これまでの、コマンドラインシェル、WSHと、異なる部分があります。
これまでのものは、
 ジョブの実行結果を、テキストとして、次のジョブに渡す
が基本でしたよね? 最後のジョブの結果は標準だと画面に出力(UNIX系なら標準出力ですよね)しますので、出力先を切り替えると、ファイルに出したりできたわけです。UNIX系は、あらゆるものをファイルとして扱いますが、実際はファイルに出力して、以上終了が多かったのではないでしょうか?
PowerShellは
 ジョブの実行結果を、オブジェクトとして、次のジョブに渡す
ことを基本とします。
この違い、以下がその証拠になります。
 
ps | get-member 実行結果
ps (UNIX系のコマンドと同じもの使えそうです) の実行結果を、get-member ジョブに渡しています。"Definition"列をみてください。うんんんんん?これって、.NET Frameworkのオブジェクトですよね?実行結果として、オブジェクトが渡されていて、そのデータ型を表示しているわけです!
これは、すごい!今までとは一気に世界が変わってきます!
 
例えば、.NET Frameworkが提供しているクラスを直接使えるようにしてくれちゃったりしています。
 
[DateTime]::Now 実行結果

ということは、.NET Frameworkが提供してくれている、あるいは自作のライブラリ経由で、RDBMSとか、WebServiceとか、呼び出せそうです。

しかも、ファイルシステムだけではなくて、レジストリなどにもアクセスできます。

Get-PSProvider – cd HKCU: – ls 実行結果

使ってみて、さらに気に入ったことがあります。 
マニュアルを一読すると、以下の特徴があるそうです

・提供されているコマンドは、Get- もしくは Start-のように、動詞-名詞 の形式

これさえ覚えておけば、コマンド忘れたときに、なんと!、インテリセンスのように、入力支援機能があります。ためしに、"Get-"だけ入力して、[TAB]キーを押すと、次々と候補が表示されます!!!

それから、こんなことも書いてありました。

・エイリアス (別名) が設定可能

もともと、ps 自体はエイリアスで、Get-Processがその実態です。これも、Get-Alias で一覧表示できます。

いかがでしたでしょうか?様々な記事で、Windows PowerShell扱っているものが増えてきました。現時点で、以下の環境で動作します。
・Windows XP SP2
・Windows 2003 SP1
・Windows Vista -> 私はこの環境で遊んでおります
そして
・.NET Framework 2.0
がその実行環境として必要になってきます。
是非、皆さんも一度試してみてください!これ覚えちゃったら、コマンドシェルに戻れなくなります。

2007年2月2日
畠山大有