Я занимаюсь созданием задачи для удаленного перезапуска некоторых пулов приложений сервера. Я использую Invoke-Command следующим образом:Запрос командной строки Powershell
Invoke-Command -ComputerName $server {Restart-WebItem "IIS:\AppPools\DefaultAppPool"}
и это работает нормально; Однако, если я параметризировать приложение бассейн следующим
$appPool = "IIS:\AppPools\DefaultAppPool"
Invoke-Command -ComputerName $server {Restart-WebItem $appPool}
он терпит неудачу с
Unexpected object type.
Parameter name: pspath
Я предполагаю, что это только вопрос синтаксиса, но я не могу работать, что.
превосходна $ с помощью синтаксиса работал. Странно, что у меня создалось впечатление, что локальная переменная была разрешена до того, как команда будет удаленно выполнена. Я получал то же сообщение об ошибке, используя -ArgumentList. –
@KevinRoche nope, поэтому '-argumentlist' создан для:« Поставляет значения локальных переменных в команду. Переменные в команде заменяются этими значениями до того, как команда запускается на удаленном компьютере ». –
Просто попробовал несколько тестов с -ArgumentList, но я что-то упустил. Параметр -PSPath для этой функции представляет собой строковый массив, поэтому я попробовал {Restart-WebItem} -ArgumentList (, $ appPool), а также {Restart-WebItem} -ArgumentList $ appPool - ту же ошибку, что и оригинал. Какой правильный синтаксис? –