ARRをリバースプロキシとして使用していますが、さまざまな理由でサーバーを使用できなくしたいと思います。 Powershellを使用してこれを行うにはどうすればよいですか?
編集1:
これを見つけました http://blogs.iis.net/anilr/archive/2009/11/09/using-arr-config-extensibility-to-gracefully-stop-server.aspx JScriptを使用するためのチュートリアル。しかし、私はそれをPowerShellに変換することができません。
編集2:
WebAdministrationモジュールのSet-WebConfigurationPropertyを使用して、サーバーの設定を変更できます。 %windir%\system32\inetsrv\config\schema\arr_schema.xml
でSetStateを見つけましたが、そのメソッドを呼び出す方法がわかりません。
サーバーファームの名前がmyWebFarmで、ドレインするように設定しようとしているサーバーがmyNode1であるとすると、次のPowerShellコードでうまくいきます。
Import-Module WebAdministration
$arr = Get-WebConfiguration -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "webFarms/webFarm[@name='myWebFarm']/server[@address='myNode1']/applicationRequestRouting"
$setState = $arr.Methods['SetState'].CreateInstance()
$setState.Input.Attributes['newState'].Value = 1
$setState.Execute()
CurrentRequestsカウンターの値をチェックして、いつドレインが終了したか(0になるか)を確認したい場合は、次を使用できます。
(Get-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter "webFarms/webFarm[@name='myWebFarm']/server[@address='myNode1']/applicationRequestRouting/counters" -Name "currentRequests").Value
一般に、IIS Manager GUIの構成エディターのスクリプトの生成機能は、PowerShellスクリプトを生成して、少なくとも途中まで実行するのに役立ちます。