Можно ли перезапустить пул приложений IIS7 из командной строки на другом компьютере?
Я нашел APPCMD ( appcmd recycle apppool my-app-pool
), но он работает только на хосте, на котором он запущен, AFAICT.
Я слышал слух, что есть способ сделать это с Powershell, но я ничего не знаю об этом, и я, очевидно, не очень хорош в поиске.
Я использую Vista / Server 2008, если это имеет значение.
РЕДАКТИРОВАТЬ: Я нашел что-то под названием WinRM, что кто-то утверждает, что может запустить сам APPCMD, но я пока не уверен, как именно.
Psexec \\computer c:\windows\system32\inetsrv\appcmd.exe" recycle apppool AppPoolName
Чтобы сделать это удаленно из PowerShell, вам нужно либо использовать удаленное взаимодействие PowerShell, либо использовать WMI.
На самом деле это очень просто с помощью командлета Invoke-WMIMethod PowerShell, но вы должны указать
-Authentication PacketPrivacy
... и если вам нужно указать другие учетные данные, вы можете сделать это с помощью параметра-Credential (Get-Credential)
... вот пример:Я написал хорошую функцию, чтобы обернуть все это: http://poshcode.org/2466
источник
Если командная строка - ваш выбор, PsExec кажется решением, но для критически важных задач я бы не рекомендовал это. Причина в следующем: PsExec имеет проблемы с несколькими запусками.
Я предпочитаю использовать API для таких целей.
источник
Аналогично ответу @ Jeff, с Powershell remoting это будет:
Enter-PSSession -ComputerName <your server> -Credential <username, or (Get-Credential)>
Затем в интерактивном сеансе, затем:
appcmd recycle apppool my-app-pool
перезапустить пул приложений.
источник
Перезапустите AppPool в PowerShell
В этом примере: MSExchangeSyncAppPool
источник