C# および PowerShell のスクリプト サンプル

公開日: 2008 年 1 月 25 日 (作業者: walterov (英語))

更新日: 2008 年 4 月 15 日 (作業者: walterov (英語))

はじめに

この記事では、ホスティング ガイドで取り上げられている PowerShell と C# のサンプル スクリプトの概要を説明します。これらのスクリプトは、展開、構成、移行、プロビジョニングのタスク実行に使用できます。

展開のスクリプト - 共有ホスティング

1. Web サーバー (英語)

Web サーバーを展開および構成するにあたって、以下の PowerShell スクリプトを利用できます。スクリプトは、PS 2.0 を使用して記述およびテストを行っています。

runPKGMGT_IIS.PS1: "pkgmgt.exe" コマンド ツールを実行して、IIS 7 および共有ホスティング向けの推奨モジュールをインストールします。「Web サーバーの役割のインストール」を参照してください。

  • このスクリプトでは、入力構成データとして "unattended.xml" ファイルを使用します。このファイルでインストール対象の IIS モジュールを指定します。
  • 必須: Unattend.xml では、バージョン番号として現在の Windows の製品バージョンを設定します (例、version="6.0.6000.16386")。Windows の製品バージョンを確認するには、C:\Windows\RegEdit.exe を右クリックして、詳細タブをクリックしてください。必要なコンポーネントをすべて正しくインストールするには、このパラメーターを設定する必要があります。

Install_IISSharedHosting.PS1: 共有ホスティングのガイドラインに従って、すべての構成スクリプトを実行します。「IIS 7 共有ホスティング構成」を参照してください。

  • このスクリプトでは、入力構成データとして IISSettings.xml ファイルを使用します。このファイルには、動的圧縮とアイドルしきい値の設定が格納されています。
  • サーバーの既定ファイルの設定は、Default_File_Config.xml で制御します。このファイルには、追加または削除されるすべての既定ファイルの一覧が格納されます。エントリは、必要な数だけ作成できます。追加する場合は activity='ADD' を、削除する場合は activity='REMOVE' を設定してください。

Enable32bitModeWorkerProcess.PS1: 64 ビット マシンの 32 ビット モードのワーカー プロセスを有効にします。

AppPoolIdentAsAnonymousUser.PS1: 匿名ユーザーのアプリケーション プール ID を設定します。

AddRemoveDefaultDoc.PS1: Default_Files_Config.XML 入力ファイルの指定に従って、既定のドキュメントを追加または削除します。

ConfigureDynamicIdleThreshold.PS1: dynamicIdleThreshold 構成プロパティを設定します。

ConfigureDynamicCompression.PS1: 動的圧縮プロパティを設定します。

HTTPResponseCache.PS1: HTTP 応答キャッシュを表示します。

近日リリース: ASP.NET の信頼レベル "中" の設定。

2. ファイル サーバー (英語)

これらの PowerShell スクリプトは、ファイル サーバーを展開および構成するのに役立ちます。スクリプトの記述およびテストは PS 2.0 を使用しています。

InstallFileServer.PS1: FileServer の役割をインストールおよび構成するスクリプトをすべて実行します。

  • ファイル: FolderPermissions.xml、SharePermissions.xml、および DirectoryQuotas_Settings.xml には、あらかじめサンプル設定が格納されています。これらの設定は展開ごとに異なるため、展開を実行する前に各ファイルを構成し直す必要があります。
  • DirectoryQuotas_Settings.xml: 必要な数だけ、フォルダーのクォータを定義できます。
  • FolderPermissions.xml: 必要な数だけ、フォルダーを定義できます。各フォルダーには、0、1、または複数のアクセス許可を設定できます。
  • SharePermissions.xml: 必要な数だけ、共有を定義できます (既存のフォルダーに対応していない新しい共有はエラーを発生させます)。各共有には、0、1、または複数のアクセス許可を設定できます。

runPKGMGR_FileServer: "pkgmgt.exe" コマンド ツールを実行して、ファイル サーバーの役割をインストールします。このスクリプトでは、入力パラメーターとして "unattended.xml" ファイルが使用されます。インストールされるモジュールは、このファイルによって指定されます。

DirectoryQuota.PS1: ディレクトリ クォータを設定します。「ディレクトリ クォータ」を参照してください。

Folder_Shares_Permissions.PS1: "SharePermissions.XML" 入力ファイルの指定に基づいて、フォルダーへのアクセス許可を設定します。「共有および NTFS のアクセス許可」を参照してください。

プロビジョニングと管理

  1. C# のプロビジョニング サンプル (英語) は、一般的なプロビジョニング タスクを実行する C# サンプルのセットです。詳細については、「C# のプロビジョニング サンプル」の記事を参照してください。
  2. ホスティング サービスのサンプル (英語) は、サイト、ユーザー アカウント、SQL データベースなどのプロビジョニングに使用できる包括的な C# コード サンプルです。詳細については、「ホスティング サービスのコード サンプル」の記事を参照してください。
  3. コード サンプルとスクリプト」では、IIS 7 サイトの作成や構成タスクの実行に使用できるサンプル コード スニペットを入手できます。
  4. IIS サイトのプロビジョニング PowerShell スクリプト (英語)。提供されている 6 つの PowerShell スクリプトを使用することにより、アプリケーション プール、サイト、アプリケーション、仮想ディレクトリ、バインドのプロビジョニングを自動化できます。これらのスクリプトは、Microsoft.Web.Administration マネージ コードの名前空間インターフェイスを利用して、オブジェクトのプロビジョニングを行います。各オブジェクト用のスクリプトの例を以下に紹介します。

4.1. 構成データ ファイルに基づいて任意の数のアプリケーション プール、サイト、アプリケーション、仮想ディレクトリ、バインドを作成するには、Sample_AppPool_Site_AppCreation を使用します。このスクリプトはその他の必要なスクリプトをすべて呼び出し、ProvisioningConfig.xml XML ファイルの構成データに従って各オブジェクトを作成します。

例:

Sample_AppPool_Site_AppCreation

ProvisioningConfig.xml XML ファイルの例:

<Script>
<ApplicationPool>
<Site Name="DAP1Site2" PhysicalPath="C:\Content\DAP1Site2">

<Application PhysicalPath="C:\Content\DAP1Site2\App1" RelativePath="/App1">
<VirtualDirectory PhysicalPath="C:\Content\Logs" RelativePath="/App1/VDir"/>
</Application>

<Application PhysicalPath="C:\Content\DAP1Site2\App2" RelativePath="/App2">
</Application>

<Binding Port="80" BindingInfo="www.DAP1Site2.com" Protocol="http"/>

<Folder name="C:\Content\DAP1Site2" quota="50mb"> 
<Permission>
<User>Administrators</User>
<Capability>F</Capability>
</Permission>
</Folder>

</Site>
</ApplicationPool>
</Script> 

4.2. アプリケーション プールを作成するには、CreateIISAppPool PoolName username password を使用します。username と password を指定しない場合は、現在のユーザーの名前とパスワードが使用されます。

例:

CreateIISAppPool "DemoAppPool1" "" ""

4.3. サイトを作成するには、CreateIISSite SiteName PhysicalPath PoolName ID を使用します。

例:

CreateIISSite "DAP1Site1" "C:\Content\DAP1Site1" "DemoAppPool1" 1702121

4.4. サイトでアプリケーションを作成するには、CreateIISApplicationOntoSite PhysicalPath RelativePath SiteName PoolName を使用します。

例:

CreateIISApplicationOntoSite "C:\Content\DAP1Site1\App1" "/App1" "DAP1Site1" "DemoAppPool1"

4.5. アプリケーションの仮想ディレクトリを作成するには、CreateIISVDirOntoApplication ApplicationPhysicalPath PhysicalPath SiteName RelativePath を使用します。

例:

CreateIISVDirOntoApplication "C:\Content\Logs" "/App1/VDir" "DAP1Site1" "/App1"

4.6. サイトのバインドを作成するには、CreateIISBindingOntoSite SiteName Port BindingInfo Protocol を使用します。

例:

CreateIISBindingOntoSite "DAP1Site1" 80 "www.DAP1Site2.com" "http"