Question

Je suis en train de travailler sur l'automatisation des taches pour un fournisseur d'application.Je voulais utiliser powershell pour itérer sur une liste de serveurs et utiliser l'accès distant à installer sur chaque boîte.Cependant, un aspect me donne un gros mal de tête.J'ai appeler une commande de script fourni par le vendeur pour définir les variables du système avant d'exécuter le script d'installation.J'ai donc appeler le script comme dans powershell:

Invoke-Command -session $session {cmd /k ($args[0]+"\data\env.bat")} -Args $lesDestDir

Je le vois exécuter comme il fait écho à ses travaux dans ma fenêtre powershell, mais à la suite des appels vers le script d'installation de ie:

Invoke-Command -session $session {perl ".\rollout-2010.pl " $args[0] " NC"} -Args $rollout

quittez immédiatement en disant les différentes variables du système qu'il utilise n'ont pas été définies.Quelqu'un peut m'expliquer la portée des variables système?Ils ne cessent d'exister après la commande invoke-command complète?Ai-je besoin pour enchaîner les deux appels de script en une seule commande invoke-command de sorte que le second script peut accéder aux variables du système ou quelque chose comme ça?

Était-ce utile?

La solution

Les modifications apportées à l'aide de la SET de commande sont PAS permanente, ils s'appliquent à l'actuel cmd processus et restent jusqu'à ce que le cmd processus est terminé.

Si possible, définir la variable d'environnement à l'aide de powershell syntaxe:

Invoke-Command -session $session {$env:myvar = 1}

Sinon, vous pouvez enchaîner les commandes à l'aide de la commande cmd séparateur & comme ceci:

Invoke-Command -session $session {cmd /k "set myvar = 1" `& "set"}

Autres conseils

Oui, vous devez les limiter ensemble.Les variables d'environnement sont définies dans la première session CMD qui quitte, puis une seconde est lancée sans eux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top