Проблема: Когда я использую скрипт для запуска другого скрипта удаленно, который полагается на модуль, модуль не импортируется.Импорт-модуль PowerShell через удаленное подключение
У меня есть 3 сценария, которые взаимодействуют друг с другом. A Controller
скрипт, Body
сценарий и Functions
модуль.
Controller
обрабатывает аутентификацию на удаленном компьютере и выполняет сценарий body
на удаленном компьютере с использованием Invoke-Command
.
body
опирается на модуль functions
.
Если я запускаю `body` сценарий непосредственно на удаленном компьютере, импортирует модуль правильно и скрипт завершает; однако, если я использую скрипт `controller` для запуска сценария` body` удаленно, модуль никогда не импортируется. Если я устанавливаю функции из модуля в сценарии body (это выглядит беспорядочно) и запускается удаленно, сценарий заканчивается, поэтому я знаю, что это проблема с импортом модуля. Я также попытался импортировать модуль в скрипт `controller`. Он импортирует правильно, но когда выполняется скрипт `body`, он все еще не может найти функции в модуле. (Я предполагаю, что он импортирует в локальную оболочку Powershell ... Я попытался запустить модуль импорта с тегом `-verbose`, чтобы увидеть, импортирован ли он, и он работает во всех случаях, кроме случаев, когда` controller` является используется для запуска `body` удаленно.
Edit: Я почти уверен, что это потому, что он пытается найти путь модуля на удаленном компьютере и путь ссылается местоположение на хост-компьютере. Помимо использования invoke-command
с удаленного компьютера обратно на хост для импорта модуля, я не уверен, как это сделать.
Вы пытались войти в ISE и отладить его, если вы выполните шаг и проверьте каждый сервер, если функции есть. – Luke
@ Luke у меня есть. Я понял, что проблема заключается в том, что команда import-module запускается на сервере, а указанный путь ссылается на путь на главной машине. Таким образом, сценарий не может найти модуль по указанному пути на сервере, потому что его там нет. На этом этапе я пытаюсь найти лучший способ включить модуль. – Speerian
, не видя своего сценария, я думаю, что вы сможете запустить 'PSsession' на удаленном компьютере и запустить его оттуда. – Luke