Windows PowerShell 2.0 CTP(3)Microsoft TechEd Developers 2007

What's New in Windows PowerShell V2

先日11/5〜11/9にスペインのバルセロナで開催された「Microsoft TechEd Developers 2007」において、
PowerShell生みの親であるJeffrey Snoverが、PowerShell Ver.2.0のセッションを開きました。


MSのPowerShell Teamのブログではセッション資料(PowerPoint)が公開されています。
また、TechEd Developers 2007サイトでは、上記セッションのサマリであるJeffreyのVideocast(4:02)が公開されています。

世界のPowerShell書籍

TechEd Developers 2007のセッションの中で「世界では14冊以上のPowerShell書籍が出版されている」ということで、PowerShell書籍の山積み写真が載っています。

僭越ですが、私が執筆した「PowerShell宣言!」が書籍の一番上に載っています。嬉しいですね。(^^)

Windows PowerShell宣言! (Windows Script Programming)

Windows PowerShell宣言! (Windows Script Programming)

Windows PowerShell 2.0 CTP(2)スクリプトコマンドレット

Script Cmdlets(スクリプトコマンドレット)

Windows PowerShell 2.0 CTP には「Script Cmdlets」という機能があります。
Ver.1.0でオリジナルのコマンドレットを作成するには、VBC#で開発し、スナップインとして登録する必要がありました。
#それなりに手間の必要な作業だったりします。(^^;


Ver.2.0では、PowerShellスクリプトでオリジナルコマンドレットを作成できるようになりました。
これがScript Cmdletsという機能です。


さて、Ver.2.0 CTPをインストールすると、以下のディレクトリにトピックと呼ばれるヘルプテキストが登録されますが、

%WinDir%\System32\WindowsPowerShell\v1.0\en-US

Script Cmdletsに関する記述は、以下のトピックに書かれています。

  • about_scriptcmdlets.help.txt
  • about_scriptcmdletattributes.help.txt
  • about_scriptcmdletmethods.help.txt
  • about_scriptcmdletparameters.help.txt
スクリプトコマンドレットのメリット

Ver.1.0から、関数(Function)ならばスクリプトで記述することができました。
VBC#でわざわざコマンドレットを実装しなくても、たいていのことは、関数で事足りました。


では、あえて、スクリプトでコマンドレットを作成するメリットは何でしょうか?


それは、関数では利用できない、コマンドレット独自の機能が利用できることです。


例えば「ShouldProcess」機能が挙げられます。
「ShouldProcess」は、オペレーションの実行前に処理の検証を行う仕組みです。
Stop-Processのように、実行に慎重を要するコマンドレットが「ShouldProcess」機能を備えています。
スクリプトコマンドレットでは、この「ShouldProcess」機能が利用可能です。

サンプル

以下は、メモ帳のプロセスを終了する「スクリプトコマンドレット」です。

Cmdlet Kill-Notepad -SupportsShouldProcess
{
    Param ()
    Begin{}
    Process{Get-Process Notepad | Stop-Process}
    End{}
}
実行結果1:オプション指定なし
PS C:\> Kill-Notepad

メモ帳は終了します。

実行結果2:Confirmオプションを付けて実行
PS C:\> Kill-Notepad -Confirm

Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (4332)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

Stop-Processに対してConfirmオプションが有効になり、メモ帳を終了するかをユーザに確認します。

実行結果3:WhatIfオプションを付けて実行
PS C:\> Kill-Notepad -WhatIf
What if: Performing operation "Stop-Process" on Target "notepad (5860)".

Stop-Processに対してWhatIfオプションが有効にし、疑似実行します。
実際にはメモ帳のプロセスは終了しません。

Windows PowerShell 2.0 CTP(1):インストール

Windows PowerShell 2.0 CTPリリース

すでに各所で話題になっていますが、PowerShell 2.0 CTPがリリースされました。

Ver.1.0からの変更点は、MSエバンジェリスト田辺さんのブログにまとまっています。
http://blogs.technet.com/stanabe/archive/2007/11/06/windows-powershell-2-0-ctp-released.aspx

インストール

Ver.1.0とVer.2.0 CTPは共存できないため、Ver.1.0をアンインストールした後、Ver.2.0 CTPをインストールする必要があります。


Windows Vista環境に早速インストールしてみましたが、インストール時、リモーティング機能が利用できないかも、という旨のメッセージが表示されました。
これは、リモーティング機能の動作には、WinRM(Windows Remote Management)が必要のようですね。


CTPだからか、インストールディレクトリはVer.1.0と同じようですね。

%WinDir%\System32\WindowsPowerShell\v1.0

Graphical PowerShell

PowerShell Ver.2.0 CTPには、Ver.1.0からお馴染みの「CUIコンソール」だけでなく、GUI版の「Graphical PowerShell」が用意されています。

プログラムメニューから「Windows PowerShell V2 (CTP)(Graphical)」を実行すると、以下のような画面が表示されます。

Graphical PowerShellからは、PowerShellスクリプトの編集、実行が可能です。
実行結果は、画面中央に表示されます。

シンタックスのカラーリング

一見、PowerShellシンタックスがカラーリングされるように見えますが、特定の単語を認識してカラーリングしているのではなく、トークン毎に色を変えているようです。

インテリセンス機能は・・・

また、インテリセンス機能があるわけではないので、使い勝手はあまりよくないですね。

一部のコマンドは動作しない?

moreなどコンソール操作が必要なコマンドは実行できないみたいですね。

TechEd2007

明日からTechEd2007

行ってきます。

業務の関係で最終日だけ参加できません・・・。
田辺さんのPowerShellのセッションが聞けないのが残念ですが、(-_-)
今年も、会場で多くの方に会えるのを楽しみにしています。

第 5 回 Admintech.jp 勉強会 終了

スタッフの皆様お疲れ様でした

第 5 回 Admintech.jp 勉強会 - Admintech.jp

Windowsサーバ管理者のためのWindows PowerShell

なんと、66名もの方に参加して頂けました。
初のセッションスピーカー担当でしたので、やや緊張していましたが、無事終了しました。
参加者の方々の反応もよく、何度か笑いも取れたので、個人的には非常に満足です。 (笑)
あとは、アンケートのフィードバックが楽しみですね。

参加者の最も反応が良かったのは・・・

PowerShellの便利ツールの1つとして紹介した、MOW氏作成のPowerTabが強く興味を持っていただけたようです。


このツールは、PowerShellのTab補完を強化するツールです。
インテリセンスのように、補完候補が画面上に表示され、選択できるので、非常に便利です。
興味のある方は以下のデモをご覧ください。きっと使いたくなるはずです。(^^)

http://thepowershellguy.com/blogs/posh/archive/2007/06/02/powertab-flash-exampes.aspx

ちなみに、PowerTabはコマンドレット名、パラメータ名だけでなく、WMIクラス名も補完可能ですよ。賢いです。

7/7(土)のAdmintech.jpのコミュニティ勉強会に登壇します

Windowsサーバ管理者のためのWindows PowerShell

この↑タイトルのセッションを担当します。

PowerShellは元々、サーバ管理業務を効率化するために設計・開発されたテクノロジなのですが、
Webを見ていると、サーバ管理者の方々は、まだ様子見の段階のように感じます。
#開発者の方々は、いち早く利用している方が多いようですね。


本セッションでは、サーバ管理者向けに以下の内容をお伝えしたいと思っています。


セッションを担当するのは初めてなので少し緊張しています。
参加者の皆様、よろしくお願いします。

むたぐちさんも登壇します

Windows PowerShell 〜新しいWindowsシェル&スクリプティング環境〜 」というタイトルで、
Scripting MVPのむたぐちさんがセッションを担当されます。


むたぐちさんと言えば、@ITで以下の記事を書かれている、スクリプティングの大御所です。
Windowsスクリプティング環境比較:PowerShell vs WSH(1/4) - @IT


私はむたぐちさんのセッションを拝見したことがないので、非常に楽しみです。

Microsoft MVPを再受賞しました

2年目となりました

この度、newpopsこと吉岡洋はMicrosoft MVPを再受賞させて頂けることになりました。
コンピテンシーは「Windows Server - Admin Frameworks」です。


最近は多忙につきブログの更新が鈍っていますが、引き続き頑張りますので、
みなさん、よろしくお願いします。