Работя върху автоматизирането на корекции за приложение на доставчик. Исках да използвам 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
незабавно излезте, казвайки, че различните системни променливи, които използва, не са зададени. Може ли някой да ми обясни обхвата на системните променливи? Престават ли да съществуват след завършване на командата invoke? Трябва ли да съчетая двете извиквания на скрипта в една команда за извикване, така че вторият скрипт да има достъп до системните променливи или нещо подобно?