Перезапустите IIS на удаленной машине - PullRequest
24 голосов
/ 01 апреля 2009

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

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

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

Ответы [ 6 ]

35 голосов
/ 26 мая 2012

Самый простой будет iisreset <servername>

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

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

7 голосов
/ 18 сентября 2015

Я попробовал метод на основе 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:

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}

... и больше.

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

5 голосов
/ 01 апреля 2009

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

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

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

psexec \\RemoteServer iisreset
3 голосов
/ 01 апреля 2009

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

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

Используйте

sc help

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

Также взгляните на статью Microsoft KB по вашей теме .

0 голосов
/ 12 июля 2015

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

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

foreach($line in $a)
{

    Start-Job -ScriptBlock {
        iisreset $line
    }
}
0 голосов
/ 01 апреля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...