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

私の環境では実行ポリシーは「Restricted」となっており、デフォルトの設定なので、構成ファイルの読み込みだったりスクリプトの実行など出来ないので、下記のコマンドでポリシーを変更します。
Set-ExecutionPolicy RemoteSigned
※「RemoteSigned」より緩い実行ポリシーの場合は、上記コマンドレットの実行は必要ありません。
実行ポリシーの変更が終了したら、下記のコマンドレットを入力して、モジュールの導入を行います。
import-module WebAdministration
結果は素っ気なく帰ってきませんので、「Get-PSDrive」を入力して、「IIS」がドライブとして認識出来ていることを確認します。

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

05e6c311-4e80-4ede-8645-096d579d60c6|0|.0
Category: IIS, PowerShell
Tags:
by kusakari
6. 2月 2010 21:07
前回、PowerShellからS.M.A.R.T.情報を取得しました。
今回は、取得した項目ごとの値をメモとして残します。
項目ごとの値を確認するのに参考になるのは、下記URLのWikipediaが参考になるかと思います。
http://ja.wikipedia.org/wiki/Self-Monitoring,_Analysis_and_Reporting_Technology
また、以下の内容に関しては、下記URLから情報を抜粋させて頂いています。
http://wiki.livedoor.jp/slt33333/d/SMART%a4%ce%b9%bd%c2%a4
今回は、温度とシークエラーを見てみたいので、必要となるIDは下記の通りです。
| 項目名 |
ID |
内容 |
| Seek Error Rate |
07 |
磁気ヘッドが目的のデータの在るトラックへ移動しようとして失敗した割合。数値が低い場合、ディスクの表面やディスクの機械的なシステムに問題がある可能性がある。 |
| Temperature |
194 |
ハードディスクの現在の温度 |
また下記の内容は、S.M.A.R.T.値のそれぞれの値に関するものです。
| 項目ID |
ステータスフラグ |
現在値 |
過去最小値 |
生の値x6 |
リザーブ |
| 1 |
11 0 |
100 |
100 |
0 0 0 0 0 0 |
0 |
さらに、温度に関しては次のようになっているみたいです。
| 項目ID |
ステータスフラグ |
現在値 |
過去最小値 |
摂氏 |
|
動作下限値 |
|
動作上限値 |
|
リザーブ |
| 194 |
34 0 |
100 |
100 |
42 |
0 |
17 |
0 |
53 |
0 |
0 |
ということで、前回のPowerShellのサンプルを少し変更して、HDDの温度を示すS.M.A.R.T.値だけ表示するようにしたのが下記の内容です。
$id = 194
$ret = ""
$smart = gwmi -Namespace root\WMI -Class MSStorageDriver_FailurePredictData
for($i = 2; $i -lt $smart.VendorSpecific.Length; $i += 12) `
{
if( $smart.VendorSpecific[$i] -eq $id ) `
{
for($j = $i; $j -le $i + 11; $j++) `
{
$ret += $smart.VendorSpecific[$j].ToString() + " "
}
}
}
write $ret
なお、例外処理は省略しています。
05c05eb6-6336-4318-8820-3cf07fa77025|0|.0
Category: PowerShell
Tags: