Question [Résolu] Accès à une variable dans un workflow

Plus d'informations
il y a 5 ans 11 mois #25261 par DALLAVALLE Rémy
Merci beaucoup pour ces informations, ça m'a été très utile.

J'aimerai te poser une dernière question.

Après la copie, je dois executé un script (cmd), ainsi copié donc. seulement, dans l'activité workflow, impossible de le faire fonctionner :

[code:1]
inlinescript {

$session = New-PSSession -ComputerName $computer
Invoke-Command -Session $using:«»session -ScriptBlock { set-location $location }
Enter-PSSession -Session $using:«»session

Invoke-Command -Session $using:«»session -ScriptBlock { cmd /c \"$location\commandpkg.cmd\" }
Exit-PSSession

}
[/code:1]

Cela fonctionne bien en dehors du Workflow, mais pour l'inclure j'ai quelques difficultés.

Merci d'avance pour ton aide.

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

Plus d'informations
il y a 5 ans 11 mois #25263 par Laurent Dardenne
Quel erreur as-tu ?
Et je suis tenté de simplifier ainsi (je n'ai pas testé) :
[code:1]inlinescript {

Invoke-Command -ComputerName $computer -ScriptBlock{
set-location $location
cmd /c \"$location\commandpkg.cmd\"
}
}[/code:1]
Sous réserve que le nb d'exécution simultanée de la boucle corresponde à celui des jobs distants.

Et à priori c'est ton fichier batch qui devrait se charger de modifier le path courant.

Tutoriels PowerShell

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

Plus d'informations
il y a 5 ans 11 mois #25287 par DALLAVALLE Rémy
Salut.

Désolé pour ma réponse tardive (pris par le boulot).

J'ai finalement trouvé une solution :

[code:1]
InlineScript {

Copy-Item -path $using:location -Destination (New-item -type directory -force (\"\\$using:computer\c$\_sources\\"«»)) -Force -Recurse -ErrorAction Stop

$pkg = Split-Path $using:location -leaf
$s = New-PSSession -ComputerName $using:computer
Invoke-Command -Session $s -ScriptBlock {
param($pkg)
set-location \"c:\$pkg\\" } -ArgumentList $pkg
Enter-PSSession -Session $s -ErrorAction SilentlyContinue

Invoke-Command -session $s -ScriptBlock {
param($pkg)
cmd /c \"c:\$pkg\command.cmd\" } -ArgumentList $pkg
Exit-PSSession -ErrorAction SilentlyContinue

} -ErrorAction Stop
[/code:1]

Alors il y a peut-être effectivement plus simple, mais ça fait exactement ce dont j'ai besoin :)

Pour info, la version simplifiée que tu m'a communiqué n'a pas fonctionné, certainement dû à l'infrastructure dans laquelle j'étais.

J'ai été obligé de séparé le set-location et le cmd dans 2 invoke-command distinct. J'avais déjà fait des tests en ce sens au préalables, sans succès.

En tout les cas, merci beaucoup pour tes conseils.

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

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