This post is a translation of the article specified below. 本投稿は IIS.NET の記事をブログオーナーが独自に翻訳したものです。参考情報としてご利用ください。
ウォークスルーの一覧は [独自翻訳] IIS 7.0 PowerShell プロバイダ を使ってみよう! をご覧ください。
/*原文*/
Introduction to IIS 7.0 PowerShell Provider Namespace http://learn.iis.net/page.aspx/430/navigating-the-iis-provider-namespace
/*翻訳*/
ほぼどなたもファイルシステムというものはどう構成されていて、動作するかご存じだと思います。ファイルシステムは階層型ネームスペースで、ファイルや他のディレクトリを含むディレクトリで構成されています。PowerShell プロバイダはファイルシステムによく似た構成で他のデータストアを階層型ネームスペースとして公開します。Cドライブのルートは通常 C:\ ですが、 IIS構成システムのルートは IIS:\ になるということです。
ルート IIS:\ ドライブの配下には Sites と Application Pools 省略して AppPools が存在します。 <補足> Get-ChildItem、dir、ls のいずれかで確認できますのでお試しください。
以下がIIS 7.0 PowerShell プロバイダ ネームスペースの構造です。これらのコンテナは削除も移動もできません。
メモ:ワーカープロセスが開始されている場合には Worker Process コレクションに PowerShell Process オブジェクトを見つけることができます。この Process コレクションは Request と AppDomain オブジェクト を含みます。これらによりワーカープロセス内の現在実行しているリクエストや実行されているアプリケーションドメインをクエリすることができます。
さあ 試してみましょう。
スタートメニューから すべてのプログラム - IIS7.0 Extensions - IIS PowerShell Management Console から実行できます。ここで起動される新規のPowerShell コマンドウィンドウ は IIS:\ にセットされています。これは IIS プロバイダ ネームスペースのルートを指しています。
dir とタイプしてルート以下にあるディレクトリは Sites と AppPools の二つだけなのがわかります。
PS IIS:\> dir
Name ---- Sites AppPools
次に、Sites ディレクトリにに移動します。これは下記のように実行できます。
PS IIS:\> cd Sites
PS IIS:\Sites> dir
Name ID State Physical Path Bindings---- -- ----- ------------- --------Default Web Site 1 Started f:\inetpub\wwwroot http *:80:
もしあなたが冒険好きだったら Si + タブキーで PowerShell が自動的にコマンドを完成してくれるのを発見できたでしょう。
さあ今度はこれをトライしてみましょう。
PS IIS:\Sites> Get-Item 'Default Web Site' | Select-Object *
PSPath : IIsProviderSnapIn\WebAdministration::\\THDLAP\Sites\Default Web SitePSParentPath : IIsProviderSnapIn\WebAdministration::\\THDLAP\SitesPSChildName : Default Web SitePSDrive : IISPSProvider : IIsProviderSnapIn\WebAdministrationPSIsContainer : TrueState : Startedname : Default Web Siteid : 1serverAutoStart : Truebindings : {binding, binding}limits : Microsoft.Web.Administration.ConfigurationElementlogFile : Microsoft.Web.Administration.ConfigurationElementtraceFailedRequestsLogging : Microsoft.Web.Administration.ConfigurationElementapplicationDefaults : Microsoft.Web.Administration.ConfigurationElementvirtualDirectoryDefaults : Microsoft.Web.Administration.ConfigurationElementapplicationPool : DefaultAppPoolenabledProtocols : httpuserName :password :physicalPath : f:\inetpub\wwwrootAttributes : {name, id, serverAutoStart, state}ChildElements : {bindings, limits, logFile, traceFailedRequestsLogging...}ElementTagName : siteIsLocallyStored : TrueMethods : {Start, Stop}RawAttributes : {name, id, serverAutoStart, state}Schema : Microsoft.Web.Administration.ConfigurationElementSchema
今回は 古き良き CD とか DIR などの DOSコマンドを使わずに PowerShell コマンドレットを使いました。もし効果的に IIS7.0 PowerShell プロバイダ を使いたいのであればこれらのコマンドに慣れておくとよいでしょう。
Get-Item を例にとると、特定の場所にあるアイテムの詳細を取得するためのコマンドです。このケースでは「Default Web Site」の詳細を得ました。タイピングを少し省略したければ get-item D と打ったところで タブキーを押すと PowerShell が候補を自動的に表示してくれます。Get-Item の出力をパイプして Select-Object コマンドレットに渡すと「Default Web Site」のすべての構成設定を表示します。
本ウォークスルーでは IIS プロバイダ ネームスペースがどのように構成されているかを手短にご紹介しました。さらにネームスペースを操作するための基本的なコマンドをいくつか学ぶことができました。
/* 翻訳 終わり*/
奥主様
この記事はわたくしに光明を与えてくれたようです。私は本物のビギナーで今年からASP.NETの学習をStepByStepのMS Press教科書で学び始めた69歳の盛年で、はじめてIIS7の構成をMSのビデオに準じて行いました。 しかし最終段階の構成の確認でhttp://localhost/でIISのスタート画面が出ませんでした。 ネットを徘徊して1週間解決に至りませんでした。 しかたなくMSのサポートを受けようとしたら、このサービスは有料で数万円必要との由。 昨夜たまたま貴殿のブログに巡り合え、早速PowershellをインストールしてIIS>Directoryを見てみました。私のシステムでは
AppPool
Name State Application
Classic .NET AppPool Started
DefaultAppPool started Default Web Site
/ASPNETStepByStep/Chapter03/WebSite
/MSMQ
wmsrv started
Sites
エラーmessage赤色文字で
Get-ChildItem:指定されたモジュールが見つかりません(HRESULTからの例外: 0x8007007E)
発生場所: 行:1 文字:3
dir<<<<
SslBindings
項目なし
何処の、どのファイルに異常があるのか解りません、御教唆いただければ大変幸せです。
Looking forward to the pleasure of hearing from you soo. I also intend to look for advisable information through NET. Thank you with best regards.
Masami Kitada
追伸:奥主様
原因が絞らてきたようです。指示のあったサイトでPowerShell Snap-in Using the Task-based Cmdlets the IIS PowerShell Snap-in ページの例題を試みた結果を報告します。
1.新しいサイト"MyNewWebSite"はできました。
2.ノートパッドを開くこともできました。
3."Hello World" test.htm は指定場所にSave できませんでした。
4.従って、止む負えずExplorerで手動で移動しました。
5.IIS7ではファイルを認識していませんでした。
6.従って、手動でインストールしました。
7.「参照」したところ、500.24のエラーがでましたので、対処方法にしたがってクライアントの偽装を無効にしたところ、無事に"Hello Workd"が表示されました。
問題は「Sites」Directoryにあるように思われます。
PowerShell でset, add, new, get, remove 等のコマンドの使用方法が知りたいです。 コマンドラインから例文をそのまま入力するとエラーになります。
「Sites」Directoryを再構築する方法を知りたいです。
よろしく。
奥主です。状況をお聞きしたいと思いますのでメールをいただけますか?メールアドレスは左の上の方に書いてございます。
また、先日実施した TF セミナー Web インフラ基本編では実はアプリケーションプール、サイト、アプリケーション、仮想ディレクトリの関係なども解説しました。その資料は間もなく公開予定ですし、今回はトライアルでライブ中継のビデオも公開予定ですので準備出来次第、このブログで告知させていただきます。