Мы используем ARR в качестве обратного прокси, и я хотел бы сделать сервер недоступным по различным причинам. Как это может быть сделано с помощью Powershell?
Редактирование 1:
Я нашел это учебное руководство http://blogs.iis.net/anilr/archive/2009/11/09/using-arr-config-extensibility-to-gracefully-stop-server.aspx для использования JScript. Но я не могу перевести его в powershell.
Редактирование 2:
Используя Набор-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
В общем, функция Generate Script редактора конфигурации в графическом интерфейсе IIS Manager может быть полезна при создании сценариев PowerShell, чтобы помочь вам хотя бы частично там.