Подтвердить что ты не робот

Перезапустить IIS на удаленной машине

Как перезапустить IIS на удаленной машине?

Я знаю IP-адрес и имя пользователя и пароль администратора.

Я использую C# и ASP.NET 2.0.

4b9b3361

Ответ 1

Простейшим будет iisreset <servername>

Запустите командную строку как администратор и выполните команду.

Пример. Если именем сервера является SRVAPP, тогда команда будет iisreset SRVAPP

Ответ 2

Я пробовал метод PowerShell, но получал следующую ошибку:

Connecting to remote server <TARGET-HOST> failed with the following error message: The WinRM client cannot process the request.

В конце концов я обнаружил, что мне нужно добавить целевой узел в качестве TrustedHosts в исходном узле и наоборот. Если вы столкнулись с той же проблемой, вы можете исправить ее, открыв командную строку с повышенными привилегиями и введя следующие команды:

С ПК вы будете использовать для выдачи команд:

powershell
winrm set winrm/config/client '@{TrustedHosts="TARGET-HOST"}'

С компьютера назначения (тот, с IIS):

powershell
winrm set winrm/config/client '@{TrustedHosts="SOURCE-HOST"}'

(заменив TARGET-HOST и SOURCE-HOST на имена хостов или IP-адреса ваших серверов). Как только вы это сделаете, вы можете выполнить любую удаленную команду PowerShell, например:

IIS Stop:

powershell invoke-command -computername "TARGET-HOST" -scriptblock {iisreset /STOP}

IIS Start:

powershell invoke-command -computername "TARGET-HOST" -scriptblock {iisreset /START}

Перезапуск IIS:

powershell invoke-command -computername "TARGET-HOST" -scriptblock {iisreset /RESTART}

... и больше.

Для обширного обзора этой проблемы вы также можете прочитать этот пост в моем блоге.

Ответ 3

Вы можете использовать sc, как предложил Томас Франке:

sc \\RemoteServer stop iisadmin
sc \\RemoteServer start w3svc

или SysInternals psexec. пакет PsTools полезен для этих сценариев.

psexec \\RemoteServer iisreset

Ответ 4

Вы можете использовать команду "sc" для управления iis-службой на удаленном компьютере.

sc \\RemoteServer stop [iis-service-name]

Использование

sc help

чтобы получить список возможных аргументов.

Также посмотрите статью microsoft kb на ваш вопрос.

Ответ 5

Следующий POSH script позволит вам асинхронно reset набор машин удаленно (очень удобно при работе с большим набором):

$a = Get-Content "c:\OneMachineNamePerLine.txt"

foreach($line in $a)
{

    Start-Job -ScriptBlock {
        iisreset $line
    }
}

Ответ 6

Как удаленный пульт удален? Вы можете просто выполнить Shutdown.exe из вашего кода С#? Если это невозможно (брандмауэры и т.д.), То следующим лучшим, вероятно, будет установка службы там, которую вы могли бы назвать удаленно (и надежно!), Которая отключает машину.