IT エンジニア コミュニティ支援団体である NPO 法人 INETA Japan (アイネタ ジャパン) が開催するイベントです。これに デベロッパーエバンジェリストの松崎と私も一つのセッションの講師を共同で担当します。
セッション 1-3
開発者にとっての Windows Server 2008・最新プラットフォームと開発テクノロジーの Better together
すごく漠然としたタイトルになっていますが、IT Pro道場 アプリケーションプラットフォーム編 で蓄積した新インフラと新開発技術のマリアージュによって何が起きるのかというポイントを色々とお話させていただくことになっています。通常のイベントよりも柔らかいんだけど話している内容はかなり濃い、そんなセッションになりそうです。
ネタばれになっちゃうので実施後にどんな話をしたのかをまた書きます。明日の登録をお済みの方、他のセッションもかなり面白そうな内容が揃っているので楽しみですね! まだ飛び込みもできるのかも。。。登録は必須ですので下記をトライしてみてください。
INETA Day 2008
http://www.microsoft.com/japan/powerpro/community/inetaday/2008/default.mspx
ダウンロードのリンクはこちら。
下記はコピペです。
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
追加でサポートされるゲスト オペレーティング システム:
Service Pack 1 (SP1) を適用済みの Windows Vista® Ultimate Edition
Service Pack 1 (SP1) を適用済みの Windows Vista® Business Edition
Service Pack 1 (SP1) を適用済みの Windows Vista® Enterprise Edition
Windows Server® 2008 Standard
Service Pack 3 を適用済みの Windows XP Professional
追加でサポートされるホスト オペレーティング システム:
Service Pack 1 (SP1) を適用済みの Windows Vista® Ultimate Edition
Service Pack 1 (SP1) を適用済みの Windows Vista® Business Edition
Service Pack 1 (SP1) を適用済みの Windows Vista® Enterprise Edition
Service Pack 3 を適用済みの Windows XP Professional
=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*
Virtual PC 自身のビルド番号 6.0.192.0
付属の VM Addition のビルド番号 13.820
ですね。Vista や 2008 をお使いで Virtual PC をお使いの方はご検討ください。(●^o^●)
まだあまりコミュニケーションが出ていないですが、着実に準備を進めています。今年も企画メンバーの一部を担っているので状況はよくわかってますが、時期が昨年よりも遅いのでちょっと心配している人がいるんじゃないかと思って少し書いておきましょう。Update は下記のサイトでチェックくださいますようお願い申し上げます。
Microsoft Tech・Ed Yokohama 公式ページ
http://www.microsoft.com/japan/teched/2008/default.mspx
今のところ開催概要にもあるように日本では米国やヨーロッパのようにITプロ、開発者で別イベントにすることはしません。その点については例年通りと思っていただいていいと思います。今年のテーマは決まっていまして、「Be a part of the experience」でこのテーマは世界で行われるTech・Edでは例外もあるようですが、同じテーマで実施する慣例になってます。
日本ではイベント、しかも数千人規模の部屋があって、その他に講演を行う部屋を複数確保することは実はすごい大変です。各国に比べるとその費用も相当高いのが現状です。そんな中、やはり技術者の方にもっとマイクロソフト テクノロジーを知って欲しい、Ready になって欲しいということで色々な物価高騰の折ではありますが、Tech・Ed は今年も実施する運びになったことは喜ばしいです。皆さんにいい”体験”をしていただけるように今年もスタッフがこれからフル稼働することになろうかと思います。
私の私見でセッション割合がそうなるか確約しているわけではないですが、すばり SQL Server と 仮想化 が大きな見どころでしょうね。まあ皆さんもそう思っていると思いますが (●^o^●) SQL Server の製品マーケチームは気合い入ってますよー いやぁ 楽しみです。
= English =
[TechEd] TechEd 2008 Yokohama is coming! Be prepared…
The public communication hasn’t been done so much yet, but we have started preparation for the big event. It seems that I am part of the prep member again, and I know exactly what’s going on. Well I know that the timing is a little late compared to last year so I thought I’d write a little. Please stay tuned to the following web site, which is the official page for the event.
Microsoft Tech・Ed Yokohama Official Page
http://www.microsoft.com/japan/teched/2008/default.mspx
So far, as written in the Event Overview page here, we are not doing two different events for IT Professionals and Developer in Japan, where places like US and Europe has divided it in two. I believe you can think of it as the same with last year. The theme for this year is already fixed and it’s “Be a part of the experience.” This theme is used throughout the world for every Tech・Ed except for some places – it’s like a tradition.
In Japan, doing events this size – around 3,000 people – the venue is very expensive and pretty difficult to be honest. We also need a place with several conference rooms that has the capacity of several hundred people each. The expense for this event is really high compared to other countries. Still, we’re doing it again this year, when prices are rising for almost everything. I think it’s a sign that Microsoft really wants to help engineers and want you to know more about our technology and get ready for the new ones. I’m pretty happy that we were able to make this decision to do it. Hoping that every attendee will have a good “Experience” at the event, the staffs are going to work really hard to achieve this huge event again.
IMHO which means I’m not promising anything, I’d say SQL Server and Virtualization are the big topics that will be covered. I know you are forecasting exactly the same. The SQL Server product marketing team is I’d say DEFCON 1 and they’re really highly motivated to tell you what we’re gonna have. I’m really excited in this area. :-)
IIS7をお試しの皆さん、お疲れ様です。本日つけで4つ新しいラボが公開されました。とりあえずあと2つは上がります。それから後は皆さんからのフィードバックを元に検討していきます。
本ラボの内容は以前の投稿でご案内しました11/3~11/4に実施した
【IIS7】 無償ハンズオントレーニング for ホスティング in 新宿
で実施していた環境をバーチャルラボ用に改造したものになっています。
========================================================
IISのラボはTechNetとMSDN両方に入口があるので便利な方からお越しください。
http://www.microsoft.com/japan/technet/traincert/virtuallab/iis.mspx
http://www.microsoft.com/japan/msdn/virtuallabs/iis.mspx
========================================================
Internet Information Services 7.0: APPCMD の使用
このバーチャル ラボでは、IIS 6.0 で使用していたスクリプトの互換性を確認するところから始めて、IIS 7.0 から新登場したコマンドライン管理ツールである Appcmd.exe の基礎的な操作を体験できます。(所要時間: 約 60 分)
Internet Information Services 7.0: IIS7 の新しい構成システムにおける管理の委任とリモート管理
このバーチャル ラボでは、まずこれまでの IIS ではメタベースに格納されていたシステム構成情報がどのように新しくなり、階層構造をどのようにうまく利用するかを確認します。IIS 7.0 で登場する管理の委任機能、リモート管理の演習も入っており、最後にカスタムな管理の委任シナリオをお試しいただきます。(所要時間: 約 60 分)
Internet Information Services 7.0: ASP、ASP.NET、および PHP / CGI アプリケーションの移行
このバーチャル ラボでは、IIS 7.0 で静的な HTML ページ、従来の ASP ページ、PHP アプリケーション、ASP.NET に関してそれぞれどのように環境設定をすべきかを実践します。また、ASP.NET については IIS 6.0 で動作するアプリケーションを IIS 7.0 の二つのモードへどのように対応するかの例を体験できます。(所要時間: 約 60 分)
Internet Information Services 7.0: 共有ホスティング ガイドライン (ドラフト版) および共有構成の実装
このバーチャル ラボでは、IIS 7.0 での共有ホスティングにおけるディレクトリクォータの設定などのサーバー構成を体験できます。さらに IIS7.0 からの新機能である Web ファームの集中化されたシステム構成 (共有構成) を構築します。(所要時間: 約 60 分)
========================================================
それでは本バーチャルラボ、そしてマニュアルをうまくご活用ください!
久し振りの 【ITPro道場】 ネタです。マイクロソフト生活は常にアクセル全開なので2月に全国行脚が終了してもう3か月経ったとまったく体が理解できていません。
アプリケーション プラットフォーム編 を結構皆様がお忙しい年末や期末に向かっていく時期に実施していたこともあって、しかもタイトルからよくわからなかったという意見も多かったのでちゃんとオンラインコンテンツ化してさらに肉もつけちゃえということで制作しているコンテンツ、題して 「ITPro 道場 自主トレシリーズ」を公開しました。
IT Pro道場 自主トレシリーズ トップページ
これから順次 ほぼ毎週ペースで公開していきます。(ぶっちゃけ必死に作ってます、今現在も。。。)
やっぱり 5 時間は受講する人にとっては長くてもお伝えしたいことは多く、きっとこのオンラインシリーズのビデオを編集なしで見るとすごいことになりそうな気がしてます。まあできるだけ Web ページに想いを書くことに松崎と二人で握ったので多分 Web ページも長~いかもしれませんが、パーツでも結構ですので是非 ご活用ください。(●^o^●)
参加できた人も、参加できなかった人も これからは 自主トレシリーズ でございます。( ..)φメモメモ
フィードバック、お待ちしてます。
あれやこれやと言っているうちに【Tech・Ed】が登場してきそうですな。。。このブログ。。。
= English =
[IT Pro Dojo] Try it out online this time!
It’s been a while since I wrote something about Dojo. The life at Microsoft is always full speed and I can’t believe it’s been 3 months since we finished the tour around the country.
The Application Platform version of Dojo was held in really busy times for many people like around New Year and at the end of the fiscal year for most of the people in Japan. Also people said we couldn’t understand what will be explained from the title. We decided to do something new online. We’ll also put some new content we didn’t have time to talk about too. This new one is called “IT Pro Dojo – the Self Learning Series” and it’s published on the web from today – as you’ve seen in TechNet Flash that went out few minutes ago.
IT Pro Dojo – the Self Learning Series (All Japanese)
We’re gonna publish content one by one roughly each week. I'm so rushed that I’m making one even now…
5 hour seminar is very long for the audience but there is so much to tell!! It might be a long trip if you actually gather all the videos that will come with this series. Try even if it’s just a part of it and please give feedback. We’ll make it even better.
People who were able to come to the seminar and also who COULDN’T come to the seminar, try this one out!
We’re waiting for alot of feedback, please keep in touch.
Well as time goes by, I’ll probably be writing something [TechEd] soon too, I believe…
最近 PHP ネタをふれていなかったのですが、Windows Server 製品のマーケチームが色々と動いていまして、以下のようなサイトが公開されています。

http://www.microsoft.com/japan/php/
あるいは
http://www.microsoft.com/japan/opensource/php/default.mspx
面白いデータや専用セミナーの開催案内も載っていますので PHP を取り扱っている方には必見だと思います。
PHP on IIS スペシャルセミナー
http://www.microsoft.com/japan/opensource/php/seminar/default.mspx
聞いている話ではここに色々な技術情報が追加されていく予定になっているので是非ブックマークに加えてください。
サイトオープンキャンペーンでは私が監修した本のプレゼントも入ってます。
Webサイトオープン記念キャンペーン
http://www.microsoft.com/japan/opensource/php/campaign/default.mspx
これからMS外のWebサイトでのバナーもよく見かけることになると思いますよ。(●^o^●)
= English =
[IIS7] Japanese “PHP on IIS” site and campaign goes public
Recently I haven’t written so much about PHP related topics but the Windows Server product marketing team was preparing many things and a new web site opened as following.
http://www.microsoft.com/japan/php/
or
http://www.microsoft.com/japan/opensource/php/default.mspx
Very interesting data and a special seminar is introduced there so I think it would be interesting for anyone who is doing PHP.
PHP on IIS Special Seminar - Japanese
http://www.microsoft.com/japan/opensource/php/seminar/default.mspx
What I heard is that there will be more additional technical information coming for this site so please include this site to your bookmark.
There’s also a site opening campaign going on that includes a giveaway – the book I introduced here and more.
Web Site Opening Campaign - Japanese
http://www.microsoft.com/japan/opensource/php/campaign/default.mspx
I believe you will see lots of AD banners at sites outside the Microsoft Web site for a while. :-)
思ってたよりずっと薄~~い!! 日経BPソフトプレスの皆さん、本当にありがとうございます。
結構 ネタが重いので本は軽いのがベストと思っていましたからとってもナイスな読み本になると信じています。
何冊かゲットして Bill Staples に送らなきゃ。。。日本じゃこの薄さが大事ということも (●^o^●)
詳しくはこちら
Chris Adams、Conrad Agramont Jr.、Gene Whitley 著
B5変 248ページ
価格:2,940円(税込み)
ISBN:978-4-89100-570-2
発行元:日経BPソフトプレス
発行日:2008/05/19
です。ぜひご一読ください。
= English =
[IIS7] A sample of the IIS7 book came
Wow how thin the book is !! Way to go people at Nikkei BP Press, thank you!
What's written in this book is not simple so I thought it would be best that the book is thinner as possible. I believe it is worth while reading this one...

Gotta get some to send to Bill !
Author : Chris Adams、Conrad Agramont Jr.、Gene Whitley 著
B5 size 248 pages
2,940 Japanese Yen (Tax included)
ISBN:978-4-89100-570-2
Publisher : Nikkei BP Soft Press
Publish Date : May 19 2008
以前に書いた投稿が結構好評だったので 2008年 G/W 明け第一弾としてまったやってみましょうかね。
前はこんな感じで書きました。当時 33 件。
【IIS7】 そろそろいいことばかりでなく、現実的なことも重要か
今日同じ検索をしたところ、103 件に増えてます。全部はできないなこりゃ。。。
ということで、綺麗なリストを機械的に作るところからやりますかね。
手順1:まず、サポート技術情報ページで ”Internet Information Services 7.0" で検索します。
http://support.microsoft.com/ へ行く。
私は 英語 のリストが欲しいので、右で英語をドロップダウンする。
基本検索 ボタンをクリックする。
すべてを表示する をクリックする。(1ページに表示した方が Excel に持っていきやすい)
手順2:Excel の準備をします。
Excel 2007 を開き、適当な名前をつけて Excel マクロ有効ブックとして保存する。
・・・私は IIS7_KB.xlsm としました。(●^o^●)
Sheet1 の名前を Data に変えます。
あと、マクロを使うので「開発」タブを表示しておく。
・・・これは左上の Office ボタン、Excelのオプション の順にクリックするとチェックボックスがある。
手順3:リストを作ります。
まず、手順1の検索結果ページで全KBのリストをコピーして、手順2で作った Data のシートに貼ります。
このままじゃ縦に並んでて使いにくいなぁ 行と列を入れ替えてどんどん手で別のシートにコピーしてもいいけど、芸がないですわね。。。
手順4:マクロ作っちゃえ。
開発タブから Visual Basic をクリックする。
ツリーから ThisWorkBook をダブルクリックする。
適当な関数名をつける。面倒だったら Sub Main とでもする。Enter すると勝手に End Sub が入る。
さて、ここで通常マクロと格闘するところだが、、、今日はプレゼントしませう。
下記を貼り付けます。
Sub Main()
Dim nsheet As Worksheet
Dim osheet As Worksheet
Application.DisplayAlerts = False
For Each sh In ThisWorkbook.Sheets
If sh.Name = "kblist" Then
sh.Delete
Exit For
End If
Next
Application.DisplayAlerts = True
Set nsheet = ThisWorkbook.Sheets.Add
nsheet.Name = "kblist"
y2 = 1
nsheet.Cells(y2, 1).Value = "タイトル"
nsheet.Cells(y2, 2).Value = "詳細"
nsheet.Cells(y2, 3).Value = "URL"
nsheet.Cells(y2, 4).Value = "№"
y2 = y2 + 1
Set osheet = ThisWorkbook.Sheets("Data")
y1 = 1
Do While osheet.Cells(y1, 1).Value <> ""
nsheet.Cells(y2, 1).Value = osheet.Cells(y1, 1).Value
nsheet.Cells(y2, 2).Value = osheet.Cells(y1 + 1, 1).Value
nsheet.Cells(y2, 3).Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=osheet.Cells(y1 + 2, 1).Value, TextToDisplay:=osheet.Cells(y1 + 2, 1).Value
nsheet.Cells(y2, 4).Value = Mid(osheet.Cells(y1 + 2, 1).Value, Len(osheet.Cells(y1 + 2, 1).Value) - 11, 6)
y2 = y2 + 1
y1 = y1 + 3
Loop
ActiveSheet.ListObjects.Add(xlSrcRange, Range(nsheet.Cells(1, 1), ActiveCell.SpecialCells(xlLastCell)), , xlYes).Name = "テーブル1"
ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleMedium15"
Columns("A:C").WrapText = True
Columns("A:A").ColumnWidth = 52.5
Columns("B:B").ColumnWidth = 75.5
Columns("C:C").ColumnWidth = 42.75
Cells.Select
Cells.EntireRow.AutoFit
ActiveWorkbook.Worksheets("kblist").ListObjects("テーブル1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("kblist").ListObjects("テーブル1").Sort.SortFields.Add _
Key:=Range("テーブル1[№]"), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("kblist").ListObjects("テーブル1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
MsgBox "Done!"
End Sub
これで完了なので、ファイルを上書き保存する。
手順5:マクロを実行します。
Visual Basic 画面を閉じて、開発タブ、リボンから マクロ をクリックする。
表示されたダイアログで ThisWorkbook.Main が選択されていることを確認して 実行 をクリックする。
・・・名前を別のものにしたら当然それを選択してくださいね。kblist というシートができますので。。。
最後にメッセージボックスを表示するようにしているので Done! と表示されたら終わり。OKをクリックする。
という感じで IIS7.0 の英語サポート技術情報の綺麗なリストができましたとさ。(*^^)v
書式とか並び順は少しいじれば直せますよね。マクロの記録で変えたいのを手操作で実施して記録すればどの変数にすればいいかわかりますので。マクロの記録を既定で実行した場合には Visual Basic 内の標準モジュールとして記録されるので新しくできた Module1 とかをダブルクリックしてください。そこに記録されたコードがあります。
例えば、緑のテーブル書式にしたい場合にはこんなのが記録されるでしょう。
Range("B2").Select
ActiveSheet.ListObjects("テーブル1").TableStyle = "TableStyleDark4"
元のマクロでは TableStyleMedium15 にするようになっているのでそこの値を TableStyleDark4 で置き換えます。
こういうのって意外とどこにも書いてないので自称 エクセラーとしては書いてみようと思ったのでありました。。。
ではでは。(@^^)/~~~
これを日本語に翻訳するのは時間があったらやりますぅ。
This post is a translation of the article specified below.
本投稿は IIS.NET の記事をブログオーナーが独自に翻訳したものです。参考情報としてご利用ください。
ウォークスルーの一覧は [独自翻訳] IIS 7.0 PowerShell プロバイダ を使ってみよう! をご覧ください。
/*原文*/
Advanced Configuration Tasks
http://learn.iis.net/page.aspx/437/powershell-provider-advanced-configuration-tasks
/*翻訳*/
本ウォークスルーでは XPath クエリーやワイルドカードを使い方で今までよりももっと複雑な構成タスクを実行する方法を学びます。
はじめに
前のウォークスルーでは *-WebConfiguration や *-WebConfigurationProperty コマンドレットを使いました。一見するよりも実はこれらのコマンドレットは奥が深いです。-filter パラメータは特定の構成セクションを指定するだけのパラメータではありません。実はこれは XPath クエリーでこのウォークスルーではどのようにこれを生かせるかを探検してみます。 さらに *-WebConfiguration* コマンドを実行する際にワイルドカードを使う良い方法もみてみます。
本ウォークスルーは前に作成したサイト、アプリケーション、仮想ディレクトリを使用します。
XPath クエリーを使用する
下記は Get-WebConfigurationProperty コマンドレットで ワイルドカードを使用する例です。
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter //defaultDocument/files -name Collection[value="index*"] | select value
さらにもう一つ。下記を実行すると ASPNET_ISAPI.DLL によって使用されるハンドラーマッピングが一覧できます。
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter //handlers -name Collection[scr
iptProcessor="*aspnet_isapi.dll"] | select name,path
name path
---- ----
svc-ISAPI-2.0-64 *.svc
svc-ISAPI-2.0 *.svc
AXD-ISAPI-2.0 *.axd
PageHandlerFactory-ISAPI-2.0 *.mspx
SimpleHandlerFactory-ISAPI-2.0 *.ashx
WebServiceHandlerFactory-ISAPI-2.0 *.asmx
HttpRemotingHandlerFactory-rem-ISAPI-2.0 *.rem
HttpRemotingHandlerFactory-soap-ISAPI-2.0 *.soap
AXD-ISAPI-2.0-64 *.axd
PageHandlerFactory-ISAPI-2.0-64 *.mspx
SimpleHandlerFactory-ISAPI-2.0-64 *.ashx
WebServiceHandlerFactory-ISAPI-2.0-64 *.asmx
HttpRemotingHandlerFactory-rem-ISAPI-2.0-64 *.rem
HttpRemotingHandlerFactory-soap-ISAPI-2.0-64 *.soap
例えば、ASP.NET 用のファイル拡張子 .aspx をあなたがあまり気にいっていないとして、すべての IIS ハンドラーマッピングを *.aspx から *.mspx にしたいとします。こんなに簡単にできます。
PS IIS:\Sites\DemoSite\DemoApp> set-webconfiguration "/system.webServer/handlers/add[@path='*.aspx']/@path" -value "*.mspx"
変更がきちんと反映されたか、見てみましょう。
(get-webconfiguration //handlers).collection | select name,path
構成ファイルそのものを見てみましょうか。前にやった get-item コマンドレットでできます。
PS IIS:\Sites\DemoSite\DemoApp> get-content (((get-item .).physicalPath).ToString() + "\web.config")
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="PageHandlerFactory-ISAPI-2.0-64" />
<remove name="PageHandlerFactory-ISAPI-2.0" />
<remove name="PageHandlerFactory-Integrated" />
<add name="PageHandlerFactory-Integrated" path="*.mspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" />
<add name="PageHandlerFactory-ISAPI-2.0" path="*.mspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.mspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
</handlers>
</system.webServer>
</configuration>
構成システムが古いハンドラーを除去して、新しいハンドラーで置き換えていて、*.mspx にマップされていることが確認できます。
IIS の構成から発見する
どこを構成すればいいか知っていれば最高ですが、もし知らなかったらどうすればいいんでしょう? ちょっとヒントです。
存在している IIS 構成セクションの一覧を取得する
get-webconfiguration //* | where {$_.psbase.SectionPath -like "*" -and $_.psbase.SectionPath.length -gt 0} | select SectionPath
特定のセクションで構成できるプロパティの一覧を取得する
get-webconfiguration system.webServer/caching | select -exp Attributes | select Name
二つを組み合わせて、すべてのセクションとその構成可能なプロパティの一覧を取得する
get-webconfiguration //* | where {$_.psbase.SectionPath -like "*" -and $_.psbase.SectionPath.length -gt 0} | foreach {$_.SectionPath.ToUpper();get-webconfiguration $_.SectionPath | select -exp Attributes | select Name;"`n"} | more
多分これらのコマンドをパックして以降の Tech Preview 版では関数にしようと思っていますが、今はできることはこんな感じです。:-)
まとめ
本ウォークスルーでは複雑な IIS 構成タスクをワイルドカードを使ったり、XPath クエリーを使って実施する方法を学びました。次のウォークスルーは状態と実行時情報へのアクセス方法を取り上げます。
/* 翻訳 終わり*/
This post is a translation of the article specified below.
本投稿は IIS.NET の記事をブログオーナーが独自に翻訳したものです。参考情報としてご利用ください。
ウォークスルーの一覧は [独自翻訳] IIS 7.0 PowerShell プロバイダ を使ってみよう! をご覧ください。
/*原文*/
Querying and Changing Run-time Data (Web-Site State, Application Pool State, Currently Executing Requests)
http://learn.iis.net/page.aspx/439/powershell-provider-run-time-data
/*翻訳*/
前のウォークスルーでは IIS の構成設定をクエリーあるいは変更する方法を学びました。さて、まだ未開のエリアがあります。実行時情報です。
はじめに
一般的に物事・状態は時とともに変化します。IIS も同様です。サイトは起動・停止しますし、アプリケーションプールはリサイクル・タイムアウトします。また、リクエストが来てレスポンスが送られ、AppDomain も作成され、シャットダウンされます。IIS7 では RSCA (run-time state and control API) というインタフェースを内部で何が起きているかをモニターするために実装しました。
補足:IIS7の大きな特徴の一つがブラックボックス化の改善ともいえる RSCA と呼ばれるこの新 API です。これが何をするかというと実行しているその時点のスナップショットを公開する機能を持ったAPIで、今まで「IIS は中で何が起きているのか本当にわからない」というご意見・印象に対して一石を投じるものになります。つまり、ある時点で各実行プロセス(ワーカープロセス)内で何が起きているのか、ワークプロセスが今 どの状態にあるのかをプログラム的にアクセス可能なのです。標準で付属のツールでもこの API を生かした機能がついています。IIS マネージャ、appcmd.exe、WMI、MWA(.NETおクラス)それぞれで実行時情報をアクセスできるようになっています。ここでは Windows PowerShell で同様にこの API を生かそうということです。
IIS 7.0 PowerShell プロバイダはこのインタフェースを使い、IIS ネームスペースを通じてその部分的なデータを公開します。サイトやアプリケーションプールの状態は Get-WebItemState、Start-WebItem、Stop-WebItem そして Restart-WebItem コマンドレットを通じて設定できます。現在実行されているワーカープロセス、現在う実行されているリクエスト そして ロードされた AppDomain のような実行時情報が IIS ネームスペースを通じて公開されます。
本ウォークスルーは前のウォークスルーで作成されたサイト、アプリケーション、仮想ディレクトリを利用します。
サイトとアプリケーションプールの状態
まずは Web サイトの状態をクエリーするところから始めましょう。
サイト状態
PS IIS:\> cd Sites
PS IIS:\Sites> Get-WebItemState IIS:\Sites\DemoSite
Started
DemoSite を停止するには Stop-WebItem コマンドレットを使います。
PS IIS:\Sites> Stop-WebItem DemoSite
PS IIS:\Sites> Get-WebItemState IIS:\Sites\DemoSite
Stopped
開始も同様に行います。
PS IIS:\Sites> Start-WebItem DemoSite
PS IIS:\Sites> Get-WebItemState IIS:\sites\DemoSite
Started
アプリケーションプール状態
アプリケーションプールでも同じことをしてみましょう。
PS IIS:\> cd AppPools
PS IIS:\AppPools> Get-WebItemState DemoAppPool
Started
PS IIS:\AppPools> Stop-WebItem DemoAppPool
PS IIS:\AppPools> Get-WebItemState DemoAppPool
Stopped
AppPools ノードには state というプロパティがあります。ではちょっと楽しんで以下の例をやってみましょう。スピーカー(あるいはヘッドホン)をオンにして以下のコマンドを実行してみましょう。
dir 'iis:\AppPools' | foreach {[void](new-object -com Sapi.SPVoice).Speak("Application Pool State:");}{$poolState = "Application Pool " + $_.Name +" is " + $_.State;$poolState;[void](new-object -com Sapi.SPVoice).Speak($poolState);}
補足:私の日本語環境でもなかなかいい英語の発音で読み上げしてくれました。(●^o^●)
さあ それでは DemoAppPool をまた開始しましょう。
PS IIS:\AppPools> Start-WebItem DemoAppPool
アプリケーションプールをリサイクルする
アプリケーションプールが他(サイトなど)と違うのはリサイクルさせることができることです。アプリケーションプールをリサイクルするためのコマンドレットは Restart-WebItem で Recycle-WebItem ではありません。PowerShell はかなり厳密なネーミング原則があって、Restart-WebItem という名称にせざるを得ませんでした。さあ今までの例を下記のようにもう少し拡張してみましょう。
- 'Default Web Site' のデフォルトページをリクエストする
- このリクエストを処理しているワーカープロセスの PID(プロセスID)をクエリーする
- アプリケーションプールをリサイクルする
- もう一度 PID をクエリーして プロセスが再起動されたことを確認する
1. デフォルトページをリクエストする
Net.WebClient クラスを使って http://localhost/ をリクエストします。HTML出力を完全に画面に表示するのではなく、レスポンスの長さだけ表示します。
PS IIS:\AppPools> $response = (new-object Net.WebClient).DownloadString("http://localhost/")
PS IIS:\AppPools> $response.Length
689
2. ワーカープロセスの PID をクエリーする
あなたのマシンでほかにアクティブな Web サイトやアプリケーションが無い前提を置くと、以下のコマンドは一つのPIDを返すはずです。
PS IIS:\AppPools> get-process w3wp | select processname,id
ProcessName Id
----------- --
w3wp 3684
実はワーカープロセスに到達するにはもっといい方法が本ウォークスルーの後の方で出てきます。
3. アプリケーションプールをリサイクルする
Restart-WebItem コマンドレットを使ってアプリケーションプールをリサイクルします。
PS IIS:\AppPools> Restart-WebItem DefaultAppPool
4. 再度 ワーカープロセスの PID をクエリーする
アプリケーションプールのリサイクルが成功するとプロセスの ID は変わっているはずです。
PS IIS:\AppPools> get-process w3wp | select processname,id
ProcessName Id
----------- --
w3wp 5860
ワーカープロセスとリクエスト
get-process コマンドレットではどのアプリケーションプールがどのプロセスで実行されているかを判断するのに使うことはできません。ただ、これは下記の要領で簡単に実行できます。
PS IIS:\AppPools> dir DefaultAppPool\WorkerProcesses
Process State Handles Start Time
Id
-------- ----- ------- ----------
6612 Running 326 3/28/2008 12:20:27 PM
補足:日付などはマシンの設定に従った書式で表示されます。
現在実行しているリクエスト
あなたのマシンが運用環境にあるマシンでないなら現在実行しているリクエストを探すのは結構大変です。Internet Explorer でリクエストを実行して PowerShell コンソールに戻ってくるころには終わってしまっているからです。下記を実施することで少しお手伝いできます。長い時間実行されるリクエストを生成します。
Set-Content "$env:systemdrive\inetpub\wwwroot\long.aspx" "<%@ Page language=`"C#`"%><%System.Threading.Thread.Sleep(30000);Response.Write(`"slept for 30 seconds`");%>"
現在実行しているリクエストを確認するには下記のコマンドを入力してください。(メモ: get-item に使うプロセスの ID はあなたのマシンでは異なりますので dir で得た PID を使いましょう。)
PS IIS:\AppPools\DefaultAppPool\WorkerProcesses> dir
Process State Handles Start Time
Id
-------- ----- ------- ----------
6612 Running 737 3/31/2008 8:18:15 AM
PS IIS:\AppPools\DefaultAppPool\WorkerProcesses> (get-item 6612).GetRequests(0)
requestId : d8000001800000f5
connectionId : d8000001600000f3
verb : GET
url : /long.aspx
siteId : 1
あるいはスタートしてからどれだけの時間が経過したかを見たいのであれば、下記を実行します。
PS IIS:\AppPools\DefaultAppPool\WorkerProcesses> (get-item 6612).GetRequests(0) | select url,timeElapsed
url timeElapsed
--- -----------
/long.aspx 2637
まとめ
完了です。本ウォークスルーでは IIS アプリケーションプールやサイトの状態をクエリーし、開始 あるいは 停止する方法も学びました。また現在実行しているワーカープロセスやリクエストを参照する方法も学びました。
/* 翻訳 終わり*/
This post is a translation of the article specified below.
本投稿は IIS.NET の記事をブログオーナーが独自に翻訳したものです。参考情報としてご利用ください。
ウォークスルーの一覧は [独自翻訳] IIS 7.0 PowerShell プロバイダ を使ってみよう! をご覧ください。
/*原文*/
Changing Simple Settings in Configuration Sections
http://learn.iis.net/page.aspx/436/changing-simple-configuration-settings-in-configuration-sections
/*翻訳*/
前のウォークスルーではサイト、アプリケーションプール、アプリケーションおよび仮想ディレクトリなどの IIS ネームスペースコンテナを管理する方法を学びました。
本ウォークスルーでは IIS ネームスペースで公開されていない構成設定を管理していきます。
はじめに
IIS のネームスペース経由で構成できないいくるかの設定を構成させてくれるいくつかのコマンドレットがあります。つまり、ビルトインのコマンドレットを使って変更できない設定があるということです。 この場合には IIS専用コマンドレットを利用する必要があります。どんなコマンドレットが提供されているかまず眺めてみましょう。これには get-command コマンドレットを使います。
PS IIS:\AppPools> get-command -pssnapin IIsProviderSnapIn | ft
CommandType Name Definition
----------- ---- ----------
Cmdlet Add-WebConfiguration Add-WebConfiguration [-Filter] <String...
Cmdlet Add-WebConfigurationProperty Add-WebConfigurationProperty [-Filter]...
Cmdlet Begin-Transaction Begin-Transaction [[-PSPath] <String[]...
Cmdlet Clear-WebConfiguration Clear-WebConfiguration [-Filter] <Stri...
Cmdlet End-Transaction End-Transaction [[-PSPath] <String[]>]...
Cmdlet Get-section Get-section [-Section] <String> [-PSPa...
Cmdlet Get-URL Get-URL [-Url <String>] [-PSPath <Stri...
Cmdlet Get-WebConfiguration Get-WebConfiguration [-Filter] <String...
Cmdlet Get-WebConfigurationProperty Get-WebConfigurationProperty [-Filter]...
Cmdlet Get-WebItemState Get-WebItemState [[-PSPath] <String[]>...
Cmdlet Remove-WebConfigurationProperty Remove-WebConfigurationProperty [-Filt...
Cmdlet Restart-WebItem Restart-WebItem [[-PSPath] <String[]>]...
Cmdlet Set-WebConfiguration Set-WebConfiguration [-Filter] <String...
Cmdlet Set-WebConfigurationProperty Set-WebConfigurationProperty [-Filter]...
Cmdlet Start-WebItem Start-WebItem [[-PSPath] <String[]>] [...
Cmdlet Stop-WebItem Stop-WebItem [[-PSPath] <String[]>] [-...
本ウォークスルーは *-WebConfiguration* コマンドレットに焦点をあてます。また、本ウォークスルーは以前のウォークスルーで作成したサイト、アプリケーション、仮想ディレクトリに依存しています。
Get-WebConfiguration と Get-WebConfigurationProperty
Get-WebConfiguration と Get-WebConfigurationProperty は IIS の構成ファイル内のセクションを取得するのに利用できます。Get-Item と Get-ItemProperty によく似ていることがわかります。Get-Item* はネームスペースのコンテナ(サイト、アプリケーション、アプリケーションプール、仮想ディレクトリ)のみに有効なのに対して Get-WebConfiguration* はどの IIS 構成セクションにも使えます。
補足:基礎知識が無いと厳しいかもしれませんね。IIS7.0 では以前メタベースと呼ばれていたシステム構成のメカニズムが applicationHost.config あるいはそれを継承する web.config という XML ファイルで保持するように変更になっています。そしてこれは ASP.NET の構成メカニズムを取り込んだものです。各設定をグルーピングしたものがセクションです。
構成設定をクエリーする
前に作成した DemoApp アプリケーションに対して directoryBrowse セクション内の有効になっている設定を見てみましょう。まずは DemoApp フォルダへ移動して、その上でこのフォルダに対するを認証設定を確認してみましょう。以下のようにしてみます。
PS IIS:\> cd IIS:\Sites\DemoSite\DemoApp
PS IIS:\Sites\DemoSite\DemoApp> dir
Directory: IIsProviderSnapIn\WebAdministration::\\THDLAP\Sites\DemoSite\DemoApp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 3/26/2008 12:40 PM 31 Default.htm
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter /system.webServer/directoryBrowse -name enabled
False
ここでは -filter パラメータを使ってセクションを指定しています。そして -name パラメータを使ってどのプロパティを見たいかを指定しています。もし現在のパスではない構成設定を見たい場合には -PSPath プロパティを使用して行うことができます。Default Web Site のディレクトリ参照設定をクエリーする例です。
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter /system.webServer/directoryBrowse -name enabled -PSPath 'IIS:\Sites\Default Web Site'
False
Set-WebConfigurationProperty を使用する
設定の変更は下記のようにとても簡単です。
PS IIS:\Sites\DemoSite\DemoApp> Set-WebConfigurationProperty -filter /system.webServer/directoryBrowse -name enabled -value true
ロックされたセクションを取り扱う
さあひとつ問題があります。認証関係のセクションは通常ロックされています。つまり、これらは web.config ファイルの個別設定はできず、applicationhost.config ファイルに書き込まないといけないということです。下記のコマンドを使ってWindows 認証を有効にしようとするとするとロック違反でエラーになります。
Set-WebConfigurationProperty : この構成セクションをこのパスで使用できません。こ
の問題は、親レベルでセクションがロックされているときに発生します。ロック状態は
既定で設定されているか (overrideModeDefault="Deny")、または overrideMode="Deny"
もしくは従来の allowOverride="false" を含んだ場所タグによって明示的に設定され
ます。
発生場所 行:1 文字:29
+ Set-WebConfigurationProperty <<<< -filter /system.webServer/security/authent
ication/windowsAuthentication -name enabled -value true
ここで何をすべきかというと -PSPath と -location パラメータを使います。下記のコマンドはアプリケーション DemoApp の Windows 認証を有効にします。この構成は applicationhost.config に書かれますが、<location>タグつきで書かれることになります。ロッキングや location タグについては ここ を参照ください。
PS IIS:\Sites\DemoSite\DemoApp> Set-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled -value true -PSPath IIS:\ -location DemoSite/DemoApp
構成をクエリーするだけであれば location を指定する必要はありません。Get-WebConfigurationProperty コマンドで設定が有効になっているのを確認できます。
PS IIS:\Sites\DemoSite\DemoApp> Get-WebConfigurationProperty -filter /system.webServer/security/authentication/windowsAuthentication -name enabled
True
Get-WebConfiguration 対 Get-WebConfigurationProperty
これは Get-Item 対 Get-ItemProperty と同じ違いです。Get-WebConfiguration はプロパティ一つではなくて、セクション全体を取得します。変数にセクションの設定を格納し、セクション内の色々な設定変更を行って、セクション全体を Set-WebConfiguration で保存することができます。さらにコマンド完成機能のメリットもあります。
一例です。コピー&ペーストはやめましょう。windowsAuthentication セクションのプロパティを探検しましょう。$winAuth. とだけ入力し、<TAB> キーを繰り返し入力することで、存在するプロパティや関数を順番に見ることができます。
PS IIS:\Sites\DemoSite\DemoApp> $winAuth = Get-WebConfiguration -filter /system.webServer/security/authentication/windowsAuthentication
PS IIS:\Sites\DemoSite\DemoApp> $winAuth.enabled = $false
PS IIS:\Sites\DemoSite\DemoApp> $winAuth | set-Webconfiguration -filter /system.webServer/security/authentication/windowsAuthentication -PSPath IIS:\ -location "DemoSite/DemoApp"
Add-WebConfiguration
IISの構成コレクションに何かを追加したい場合に使うコマンドレットは Add-WebConfiguration です。ハンドラー、モジュール、既定のドキュメント などがコレクションで複数の値を格納する場合の例です。
下記は DemoApp 既定のドキュメントコレクションに新しい値を追加する場合の例です。
PS IIS:\Sites\DemoSite\DemoApp>Add-WebConfiguration /system.webServer/defaultDocument/files "IIS:\sites\Default Web Site" -at 0 -value
@{value="new-index.html"}
この例では追加のパラメーター -at を使用しています。これにより、新しい値をコレクションのどの位置に追加するかを指定しています。0 は はじめに、-1 は最後に追加することを意味します。
まとめ
本ウォークスルーでは Web 構成を扱う IIS 専用コマンドレットについて学びました。構成設定をクエリーする方法、location タグを使って設定をする方法、コマンドライン完成機能を生かす方法、そしてコレクションに値を追加する方法 それぞれについて学びました。
次のウォークスルーではもっと複雑な構成タスクを globbing や XPath を使って実施する方法を学びます。
/* 翻訳 終わり*/
たまにはライトな話題をお届けしようと思いまして、ちょっといつもとは違った方向性のテーマで書いてみようと思います。皆さん、Windows Vista お使いいただいていますか? 私は使ってます <- そりゃ社員だし当たり前だろー というツッコミをありがたく頂戴するとして、最近ちょっと凝っているものをご紹介しておきます。
LogonStudio Vista
http://www.stardock.com/products/logonstudio/downloads.asp
これを使うとログオン画面の背景を変えることができます。ネットにアクセスすると色々なパターンのものがあり、自分で撮影した写真なんかも使えます。Windows Media Player の Skin みたいな感覚ですね。既定の背景もグリーン系でいい感じなんですが、もっとダークな背景にするとログオン画面が浮き立ってもっといい感じになります。ユーザー毎の画像も変更しているとなお素敵です。
それと Ultimate 環境で昨日 今日 楽しんでいるのは、以下だったりします。
Windows サウンド設定 – Ultimate Extras グラス と Ultimate Extras パール
結構 音好きなんで、ちょっとうれしいクリアな感じの音です。新着メールの通知音なんかナイスです。
Microsoft Onとかで出張先ではよくお見せしていましたが、、、
Windows DreamScene コンテンツ パック #3
なんか 滴 系なんですよね、見てておっとっと と思ってしまったりします。下記の上段3つ目から5つ目までが新しいですよね。。。ずっと滴ってます。。。
たまにはこんな話題も黄金色な一週間にどうかと思いまして。。。(●^o^●)
最近 私の周りでは一眼レフ ブームです。というか量販店でもそういう特設コーナーが多くなってきてすごい売れているのが肌で感じられます。私たちエバンジェリストの中でのカメラの先生と言えば 高橋(忍)さんです。彼も Windows Vista における色々な一眼レフ好きな人向けの投稿もしてくれています。一読の価値 ありまくりです。
RAW Codec for Vista
デジ1ならVistaを
さて、本題ですが、エバンジェリストも種類が増えすぎて皆さんわかりにくいですよね。それは今度ちゃんと解説をするとして、その中でも ビジネス寄りではなくコンシューマ寄りな活動をしているエバンジェリストが実はいます。彼・彼女らの頑張りで 写真やビデオ撮りが好きな方に最適なイベントが開催されますのでお知らせしておきます。私も行きたい。。。
Microsoft Digital Users Day です。
キヤノンマーケティングジャパン株式会社 様 協賛、コーレル株式会社 様 にもご協力いただいて実施するイベントです。
こちらの元々の案内ブログがありますのでご覧ください。
http://on10netjp.spaces.live.com/blog/cns!F538A865C36EB76D!926.entry
参加登録はこちら。無料セミナーです。
http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032374964&Culture=ja-JP
東京だけのイベントの紹介で恐縮ですが、仕事としてのITだけでなく、日常でのITも重要ですから。(●^