Question Variable dans un job

Plus d'informations
il y a 5 ans 5 mois #27710 par Laurent
Variable dans un job a été créé par Laurent
Bonjour à tous,


J'ai une question comment passer des variable dans un script powershell ?

Je m'explique mon base.ps1 contient des variable et exécute le script ip.ps1 via un start-job je souhaite récupérer les variable du script base.ps1 à l'intérieur de mon script ip.ps1

Avez vous des pistes ? Merci ci dessous le code :




Script 1 (base.ps1)

[code:1]$IP=10.18.18.18
$IP2=10.15.15.15
$NOM=MATH

function PSScriptRoot { Split-Path (Split-Path $PSScriptRoot -Parent) -Parent }

$job1 = Start-Job -Name configip -ScriptBlock ([ScriptBlock]::Create(\"$(PSScriptRoot)\script\ip.ps1'\"«»))[/code:1]




Script 2 (ip.ps1 lancé avec le start job dans le script1)

[code:1]Write-Host \"$IP\"
Write-Host \"$IP2\"
Write-Host \"$NOM\"[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27712 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Variable dans un job
Salut,
utilise soit le paramètre Argumentlist sur le job soit ,sur les variables du script appelées, la portée using: (à vérifier).
Mais dans ce dernier cas, si cela fonctionne, cela peut limiter la réutilisation dans Invoke-Command par exemple.
Du coup Argumentlist est préférable.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27718 par Laurent
Réponse de Laurent sur le sujet Re:Variable dans un job
Bonjour Laurent,

Dans mon cas précis avec le start job comment je dois procéder ?

Merci

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27719 par Philippe
Réponse de Philippe sur le sujet Re:Variable dans un job
salut

comme te disais Laurent, tu peut passer les variables via l'option ArgumentList de Start-Job, comme indiquer dans le tuto de Laurent à la page 18

tu doit modifier les deux scripts :

dans base.ps1 change cette ligne
[code:1]$job1 = Start-Job -Name configip -ScriptBlock ([ScriptBlock]::Create(\"$(PSScriptRoot)\script\ip.ps1'\"«»)) -ArgumentList @($IP, $IP2, $NOM)
[/code:1]

dans ip.ps1 rajoute cette ligne au début
[code:1]param($IP, $IP2, $NOM)
[/code:1]

voir aussi cette doc sur le using (la deuxième solution proposé par Laurent)
apres quelque test cette solution fonctionne bien avec Invoke-Command mais pas avec start-job

Message édité par: 6ratgus, à: 31/10/18 14:46<br><br>Message édité par: 6ratgus, à: 31/10/18 14:57

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27721 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Variable dans un job
6ratgus écrit:

(la deuxième solution proposé par Laurent)
apres quelque test cette solution fonctionne bien avec Invoke-Command mais pas avec start-job

Merci, je ne me souvenais plus si c'était l'un ou l'autre :) :-

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 5 ans 5 mois #27722 par Laurent
Réponse de Laurent sur le sujet Re:Variable dans un job
Merci à vous deux, je teste et je vous tiens au courant.

Bon week end à vous.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.072 secondes
Propulsé par Kunena