Назад | Перейти на главную страницу

Изящно сделать сервер недоступным с помощью Powershell в ARR

Мы используем ARR в качестве обратного прокси, и я хотел бы сделать сервер недоступным по разным причинам. Как это можно сделать с помощью Powershell?

Изменить 1:
я нашел это http://blogs.iis.net/anilr/archive/2009/11/09/using-arr-config-extensibility-to-gracefully-stop-server.aspx учебник по использованию JScript. Но я не могу перевести это на PowerShell.

Изменить 2:
Используя Set-WebConfigurationProperty в модуле WebAdministration, я могу изменять настройки сервера. Я нашел SetState в %windir%\system32\inetsrv\config\schema\arr_schema.xml но я не знаю, как вызвать этот метод.

Предполагая, что ваша ферма серверов называется 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 может быть полезна при создании сценариев PowerShell, чтобы помочь вам хотя бы частично.