[独自翻訳] IIS7.0 PowerShell プロバイダ ネームスペースへの招待

This post is a translation of the article specified below.
本投稿は IIS.NET の記事をブログオーナーが独自に翻訳したものです。参考情報としてご利用ください。

ウォークスルーの一覧は [独自翻訳] IIS 7.0 PowerShell プロバイダ を使ってみよう!  をご覧ください。

/* 原文*/

Introduction to IIS 7.0 PowerShell Provider Namespace
https://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 プロバイダ ネームスペース

以下がIIS 7.0 PowerShell プロバイダ ネームスペースの構造です。これらのコンテナは削除も移動もできません。

  • IIS:\
    • Sites
      • Site Collection
        • Applications and Virtual Directories
    • AppPools
      • WorkerProcesses

メモ:ワーカープロセスが開始されている場合には Worker Process コレクションに PowerShell Process オブジェクトを見つけることができます。この Process コレクションは Request と AppDomain オブジェクト を含みます。これらによりワーカープロセス内の現在実行しているリクエストや実行されているアプリケーションドメインをクエリすることができます。

さあ 試してみましょう。

タスク 1 - IIS プロバイダ ネームスペース に慣れる

1.1. IIS PowerShell Management Console を実行する

スタートメニューから すべてのプログラム - IIS7.0 Extensions - IIS PowerShell Management Console から実行できます。ここで起動される新規のPowerShell コマンドウィンドウ は IIS:\ にセットされています。これは IIS プロバイダ ネームスペースのルートを指しています。

1.2. ネームスペースにアクセスしてみます

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 が自動的にコマンドを完成してくれるのを発見できたでしょう。

さあ今度はこれをトライしてみましょう。

1.2 もっとナビゲーションしてみる

PS IIS:\Sites> Get-Item 'Default Web Site' | Select-Object *

PSPath : IIsProviderSnapIn\WebAdministration::\\THDLAP\Sites\Default Web Site
PSParentPath : IIsProviderSnapIn\WebAdministration::\\THDLAP\Sites
PSChildName : Default Web Site
PSDrive : IIS
PSProvider : IIsProviderSnapIn\WebAdministration
PSIsContainer : True
State : Started
name : Default Web Site
id : 1
serverAutoStart : True
bindings : {binding, binding}
limits : Microsoft.Web.Administration.ConfigurationElement
logFile : Microsoft.Web.Administration.ConfigurationElement
traceFailedRequestsLogging : Microsoft.Web.Administration.ConfigurationElement
applicationDefaults : Microsoft.Web.Administration.ConfigurationElement
virtualDirectoryDefaults : Microsoft.Web.Administration.ConfigurationElement
applicationPool : DefaultAppPool
enabledProtocols : http
userName :
password :
physicalPath : f:\inetpub\wwwroot
Attributes : {name, id, serverAutoStart, state}
ChildElements : {bindings, limits, logFile, traceFailedRequestsLogging...}
ElementTagName : site
IsLocallyStored : True
Methods : {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 プロバイダ ネームスペースがどのように構成されているかを手短にご紹介しました。さらにネームスペースを操作するための基本的なコマンドをいくつか学ぶことができました。

/* 翻訳 終わり*/

Comments

  • Anonymous
    January 01, 2003
    This post is a translation of the article specified below. 本投稿は IIS.NET の記事をブログオーナーが独自に翻訳したものです。参考情報としてご利用ください。

  • Anonymous
    January 01, 2003
    奥主です。状況をお聞きしたいと思いますのでメールをいただけますか?メールアドレスは左の上の方に書いてございます。 また、先日実施した TF セミナー Web インフラ基本編では実はアプリケーションプール、サイト、アプリケーション、仮想ディレクトリの関係なども解説しました。その資料は間もなく公開予定ですし、今回はトライアルでライブ中継のビデオも公開予定ですので準備出来次第、このブログで告知させていただきます。

  • Anonymous
    January 01, 2003
    追伸:奥主様 原因が絞らてきたようです。指示のあったサイトで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を再構築する方法を知りたいです。 よろしく。

  • Anonymous
    March 26, 2009
    The comment has been removed