Я работаю над автоматизацией исправлений для приложения поставщика. Я хотел использовать powershell для перебора списка серверов и использования удаленного взаимодействия для установки на каждом компьютере. Тем не менее, один аспект вызывает у меня большую головную боль. Я должен вызвать сценарий cmd, предоставленный поставщиком, для установки системных переменных перед выполнением сценария установки. Поэтому я вызываю скрипт в powershell так:
Invoke-Command -session $session {cmd /k ($args[0]+"\data\env.bat")} -Args $lesDestDir
Я вижу, как он выполняется, поскольку он повторяет свою работу в моем окне powershell, но последующие вызовы сценария установки, т.е.:
Invoke-Command -session $session {perl ".\rollout-2010.pl " $args[0] " NC"} -Args $rollout
немедленно выйти, говоря, что различные системные переменные, которые он использует, не были установлены. Может ли кто-нибудь объяснить мне область действия системных переменных? Они перестают существовать после завершения команды вызова? Нужно ли мне объединять два вызова сценария в одну команду вызова, чтобы второй сценарий мог получить доступ к системным переменным или что-то в этом роде?