Мы используем 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, чтобы помочь вам хотя бы частично.