by kusakari
15. 3月 2010 23:05
PowerShellからアプリケーションプールの設定変更を行う例をいくつか挙げてみます。
環境は下記の通りになります。
以下、設定例です。 なお、ココでは「DefaultAppPool」に対して、設定を変更しています。
最初のGet-Itemで対象のアプリケーションプールを取得し、項目の設定を変更したら、Set-Itemにパイプを使って渡し設定の変更を反映させます。
■マネージパイプラインモードをクラシックに変更
$pool = Get-Item "IIS:\AppPools\DefaultAppPool"
$pool.managedPipelineMode = "Classic"
$pool | Set-Item
■マネージパイプラインモードを統合に変更
$pool = Get-Item "IIS:\AppPools\DefaultAppPool"
$pool.managedPipelineMode = "Integrated"
$pool | Set-Item
■32 ビット アプリケーションの有効化
$pool = Get-Item "IIS:\AppPools\DefaultAppPool"
$pool.enable32BitAppOnWin64 = $true
$pool | Set-Item
このプロパティ以外にも下記のコマンドなどから設定することが出来る項目を確認することが出来ます。
Get-Item "IIS:\AppPools\DefaultAppPool" | Get-Member
ちなみに、アプリケーションプールの作成や削除、開始、停止、リサイクルは基本的にWebAdministrationモジュールを追加することで、下記のようにコマンドレットがインポートされます。
| 作成: |
New-WebAppPool |
| 削除: |
Remove-WebAppPool |
| 開始: |
Start-WebAppPool |
| 停止: |
Stop-WebAppPool |
| リサイクル: |
Restart-WebAppPool |
| 状態: |
Get-WebAppPoolState |
aa32b7f1-c09b-4363-a5c2-13521e260371|0|.0
Category: IIS, PowerShell
Tags:
by kusakari
1. 3月 2010 21:33
IIS 7.5 の「既定のドキュメント」に対して、PowerShell からアクセスします。「既定のドキュメント」の設定を参照、変更するには、ヘルプで調べれば良いのですが、自分用のメモとしてまとめておきたかったので記録しておきます。
■環境
IIS 7.5
PowerShell 2.0
■モジュールの読み込み
Import-Module WebAdministration
詳しくは「PowerShell から IIS 7.5 を操作するための準備」をご覧下さい。
■参照
「Default Web Site」のサイトに対する、現在の「既定のドキュメント」の状態を確認する場合、下記のようなコマンドで確認することも出来ます。
$filter = "//defaultDocument/files/*"
$site = "IIS:\Sites\Default Web Site"
Get-WebConfiguration -Filter $filter -PSPath $site | select value
結果は下記の図のようになります。

■追加
「Default Web Site」のサイトに対して、「index.php」を優先順位を 「-AtIndex 0」パラメーターで一番上にして「既定のドキュメント」に追加する場合、下記のようなコマンドでも追加出来ます。
$filter = "//defaultDocument/files"
$site = "IIS:\Sites\Default Web Site"
$file = "index.php"
Add-WebConfiguration -Filter $filter -PSPath $site -AtIndex 0 -Value @{value=$file}
結果は下記の図のようになります。

■削除
「Default Web Site」のサイトに対して、「Default.htm」を「既定のドキュメント」から削除する場合、下記のようなコマンドでも削除出来ます。
$site = "IIS:\Sites\Default Web Site"
$file = "Default.htm"
Remove-WebConfigurationProperty //defaultDocument -Name files -PSPath $site -AtElement @{value=$file}
f67c5543-42af-4c76-91df-96d62cd2e07d|0|.0
Category: IIS, PowerShell
Tags:
by kusakari
16. 2月 2010 19:52
前回、PowerShell から IIS 7.5 のハンドラーマッピングを追加・変更・削除などを確認しました。
今回は、PHP の FastCGI の設定を、同じように PowerShell から設定してみます。
要するに、下図のような設定を PowerShell から実施するというだけです。

PHP FastCGIの設定は、下記のようなコマンドを実行します。
New-WebHandler -Name "FastCGI.PHP" -Path *.php -Verb * -Modules FastCgiModule -ScriptProcessor "c:\php\php-cgi.exe" -PSPath "iis:/sites/default web site"
※なお、ココでは「c:\php」フォルダに「php-cgi.exe」ファイルが存在する前提で、Default Web Site に対してFastCGIの設定を行っています。
■サンプル
下記のサンプルは、サイトの新規作成から、PHP FastCGI の設定、 phpinfo() での動作確認までを行います。
# サイトの作成
New-WebSite -Name LaboSite -Port 8080 -PhysicalPath "c:\Temp"
# PHP FastCGIの設定
New-WebHandler -Name "FastCGI.PHP" -Path *.php -Verb * -Modules FastCgiModule -ScriptProcessor "c:\php\php-cgi.exe" -PSPath "iis:/sites/labosite"
# info.phpという名前で、phpinfo()を出力
Out-File -FilePath c:\temp\info.php -InputObject "<?php phpinfo() ?>" -Encoding UTF8
# IEのCOMを作成して、info.phpファイルにアクセス
$ie = new-object -com InternetExplorer.Application
$ie.visible = $true
$ie.navigate("http://localhost:8080/info.php")
※「LaboSite」という名前の8080ポートをバインドしたサイトを新規に作成し、このサイトに対して、PHP FastCGI のモジュールマップの設定を行います。そして、「c:\php」フォルダに phpinfo() を表示するファイルを出力して、ブラウザからアクセスします。
なお、上記サンプルの例外処理や、PHPの基本的な初期設定については省略しております。
■結果

97b0531a-aaab-40e0-a772-f9629b7be233|0|.0
Category: IIS, PowerShell
Tags:
by kusakari
12. 2月 2010 21:12
PowerShell から IIS 7.5 のハンドラーマッピングの操作(作成・変更・削除)をしてみたいと思います。
環境は前回からの続きで、下記の環境です。
■参照
まずは、現在のハンドラマッピングの状況を確認してみたいと思います。
現在の、Default Web Site に対するマッピング状況を出力するには、下記のコマンドで一覧を出力できます。
Get-WebHandler -PSPath "iis:/sites/default web site"
もしくは、下記のような感じでも参照出来ます。
Get-WebConfiguration /system.webserver/handlers/* -PSPath "iis:/sites/default web site"
■作成
次に、下図のような感じのハンドラーマッピングを、PowerShellから Default Web Site に対して作成するには...。

次のような感じのコマンドを入力します。
New-WebHandler -Name "CGI" -Path *.cgi -Verb * -Modules IsapiModule -ScriptProcessor "c:\perl\bin\perlis.dll" -PSPath "iis:/sites/default web site"
■変更
次に、今作成したハンドラーマッピングの設定を編集してみたいと思います。
ハンドラーマッピングの名前を「CGI-2」に変更したい場合は、例えば下記のような感じで変更できます。
Set-WebConfiguration "/system.webserver/handlers/add[@name='CGI']/@name" -Value "CGI-2" -PSPath "IIS:/sites/Default Web Site"
また、実行可能ファイルのパスを「C:\Perl\bin\perlis.dll」から「C:\Perl\bin\perl.exe "%s" %s」に変更するには、下記のような感じにコマンドを入力します。
Set-WebConfiguration "/system.webserver/handlers/add[@name='CGI-2']/@scriptProcessor" -Value "C:\Perl\bin\perl.exe ""%s"" %s" -PSPath "IIS:/sites/Default Web Site"
変更した結果は下図のようになります。

■削除
上で設定した、Default Web Site にマップしている「CGI-2」のハンドラーマッピングの削除を行うには、下記のような感じで削除できます。
Remove-WebHandler -Name "CGI-2" -PSPath "iis:/sites/default web site"
a2a6fddc-b297-4810-b54d-5a1ee648ea86|0|.0
Category: IIS, PowerShell
Tags:
by kusakari
10. 2月 2010 22:32
前回、PowerShell から IIS 7.5 を操作するための準備に関して記録しました。
今回は、PowerShellからIIS上に新規にWebサイトを作成したり、編集したり、削除してみたりしてみたいと思います。
環境としては、前回からの続きになります。なお、PowerShellのセッションが終了している場合には、再度「import-module WebAdministration」を実行してください。
それではまずは、新規にサイトを作成してみます。
■サイトの作成
作成するのに使用するコマンドレットは、「New-Website」コマンドレットになります。
下記の例だと、「LaboSite」という名前で、ポート番号を8080にして、物理パスを「c:\inetpub\wwwroot\labo」に設定したサイトを作成します。
New-WebSite -Name LaboSite -Port 8080 -PhysicalPath "c:\inetpub\wwwroot\labo"
■サイトの編集
たんたかさんが投稿していたので、一部分を抜粋させて頂きます。詳しい内容に関しては、たんたかさんのサイトを御覧下さい。
PowerShell で IIS 7.5 の サイトの編集を行う
下記にサンプルを抜粋させて頂きます。
Set-ItemProperty "IIS:\Sites\Default Web Site" -name PhysicalPath -value "C:\inetpub\wwwroot2"
アプリケーションプールの変更
Set-ItemProperty "IIS:\Sites\Default Web Site" -name Applicationpool -value "Classic .NET AppPool"
サイト名の変更
Set-ItemProperty "IIS:\Sites\Default Web Site" -name name -value "New Web Site"
■サイトの削除
作成するのに使用するコマンドレットは、「Remove-Website」コマンドレットになります。
下記の例だと、上記で作成した「LaboSite」サイトを削除します。
Remove-Website LaboSite
なお、下記のコマンドを入力することで、IISなどを操作することが出来るコマンドレットの一覧が表示されます。
Get-Command -Module WebAdministration
3c43f8b7-9afc-49a8-9fb9-93e7b71f6b5b|0|.0
Category: IIS, PowerShell
Tags: