Запуск команды IIS на удаленном сервере с помощью Powershell

Я пытаюсь проверить, существует ли пул приложений IIS на удаленном сервере с помощью сценария PowerShell. Команда, которую я запускаю:

test-path "IIS:AppPoolsDefaultAppPool"

Если я запускаю этот сценарий непосредственно на сервере IIS в вопросе я получаю ответ обратно "True", так что это говорит мне, что у меня есть управление IIS правильно настроить в PowerShell. Однако, когда я запускаю следующий скрипт с удаленного сервера, я получаю ответ "False"

invoke-command -ComputerName IISSERVER -ScriptBlock { test-path "IIS:AppPoolsDefaultAppPool" }

Я знаю, что удаленное взаимодействие PowerShell правильно настроен, потому что я могу запустить следующую команду и получить список файлов

invoke-command -ComputerName IISSERVER -ScriptBlock { get-childitems "c:" }

Итак, почему я получаю неправильный ответ о существовании пула приложений?

19
задан Paul Hunt
18.01.2023 7:20 Количество просмотров материала 3596
Распечатать страницу

1 ответ

это происходит потому, что сеанс удаленного взаимодействия PowerShell не включает диск PowerShell " IIS:". (Попробуйте запустить" Get-PSDrive " локально, а затем с помощью Invoke-Command, чтобы увидеть разницу).

диск "IIS:" почти наверняка добавляется оснастки PS WebAdministration при локальном запуске Powershell на сервере IIS, либо потому, что запуск PowerShell из специального ярлыка IIS, или потому, что локальный сценарий профиля PowerShell выполняется и его загрузки.

You должны получить результаты, которые вы ищете, явно добавив WebAdministration оснастку удаленного сеанса (который создает диск" IIS:"), изменив Invoke-Command, чтобы выглядеть следующим образом:

invoke-command -ComputerName IISSERVER -ScriptBlock { Add-PSSnapin WebAdministration; test-path "IIS:\AppPools\DefaultAppPool" }
5
отвечен jbsmith 2023-01-19 15:08

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх