PowerShell から IIS 7.5 の 既定のドキュメント の設定

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

結果は下記の図のようになります。
201031_194530_725

 

 

■追加
「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}


結果は下記の図のようになります。
201031_201527_727

 

 

 

■削除
「Default Web Site」のサイトに対して、「Default.htm」を「既定のドキュメント」から削除する場合、下記のようなコマンドでも削除出来ます。

$site = "IIS:\Sites\Default Web Site"
$file = "Default.htm"

Remove-WebConfigurationProperty //defaultDocument -Name files -PSPath $site -AtElement @{value=$file}

PowerShell から IIS 7.5 の PHP FastCGI を設定する

by kusakari 16. 2月 2010 19:52

前回、PowerShell から IIS 7.5 のハンドラーマッピングを追加・変更・削除などを確認しました。
今回は、PHP の FastCGI の設定を、同じように PowerShell から設定してみます。

 

要するに、下図のような設定を PowerShell から実施するというだけです。
2010216_181525_722

 

 

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の基本的な初期設定については省略しております。

 

 

■結果
2010216_192537_723

 

PowerShell で IIS 7.5 のハンドラーマッピングの作成・変更・削除

by kusakari 12. 2月 2010 21:12

PowerShell から IIS 7.5 のハンドラーマッピングの操作(作成・変更・削除)をしてみたいと思います。

環境は前回からの続きで、下記の環境です。

  • IIS 7.5
  • PowerShell 2.0

 

■参照
まずは、現在のハンドラマッピングの状況を確認してみたいと思います。
現在の、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 に対して作成するには...。
2010212_204822_720

 

次のような感じのコマンドを入力します。

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"

 

変更した結果は下図のようになります。
 2010212_21328_721

 

 

 

■削除
上で設定した、Default Web Site にマップしている「CGI-2」のハンドラーマッピングの削除を行うには、下記のような感じで削除できます。

Remove-WebHandler -Name "CGI-2" -PSPath "iis:/sites/default web site"

PowerShell から IIS 7.5 のサイトを作成・編集・削除する

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

PowerShell から IIS 7.5 を操作するための準備

by kusakari 8. 2月 2010 19:10

PowerShell から IIS7.5 上のサイトの一覧を取得してみたいと思います。が、PowerShell から IIS7.5 を、操作しようとした際にちょっと設定がありますので、その設定を自分用メモとして残しておきます。

 

■環境
・Windows Server 2008 R2
・PowerShell 2.0

 

Windows Server 2008 R2では、IISのPowerShellのスナップインが標準で搭載されています。
IIS7などで、IISのPowerShellスナップインを使用する際には、下記のURLからスナップインをダウンロードすることが出来ます。
http://technet.microsoft.com/ja-jp/iis/ee839523.aspx

 

 

 

まず、IISやPowerShellを標準的にインストールしただけでは、IISのPowerShellプロバイダにアクセスすることは出来ません。
結果的に「IIS:」という形で、IISをドライブ扱いに設定出来るのですが、ココでは試しに、下図のように「Get-PSDrive」コマンドレットを入力して、設定前の状態を確認してみます。 
 201028_183758_715  

 

 

 

では、次にプロバイダの設定を行ってみます。
なお、モジュールの導入に関しては、実行ポリシーによる制限などがありますので、下図のように「Get-ExecutionPolicy」コマンドで現在のポリシー状況を必要に応じて確認してください。
201028_182133_711

 

 

 

私の環境では実行ポリシーは「Restricted」となっており、デフォルトの設定なので、構成ファイルの読み込みだったりスクリプトの実行など出来ないので、下記のコマンドでポリシーを変更します。

Set-ExecutionPolicy RemoteSigned

201028_18245_712
※「RemoteSigned」より緩い実行ポリシーの場合は、上記コマンドレットの実行は必要ありません。

 

 

 

実行ポリシーの変更が終了したら、下記のコマンドレットを入力して、モジュールの導入を行います。

import-module WebAdministration

結果は素っ気なく帰ってきませんので、「Get-PSDrive」を入力して、「IIS」がドライブとして認識出来ていることを確認します。
201028_18265_714

 

 

 

で、最後にIIS7.5上のサイトの一覧を取得するには、下記のコマンドを実行するだけで、簡単に取得出来てしまいます。

cd IIS:\Sites
dir

 

■結果
201028_184954_719

 

Calendar

<<  3月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar

RecentComments

Comment RSS