Question [Résolu] Accès à une variable dans un workflow
- DALLAVALLE Rémy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 5 ans 5 mois #25261
par DALLAVALLE Rémy
Réponse de DALLAVALLE Rémy sur le sujet Re:Accès à une variable dans un workflow.
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.
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6298
- Remerciements reçus 68
il y a 5 ans 5 mois #25263
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Accès à une variable dans un workflow.
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.
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.
- DALLAVALLE Rémy
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 5 ans 5 mois #25287
par DALLAVALLE Rémy
Réponse de DALLAVALLE Rémy sur le sujet Re:Accès à une variable dans un workflow.
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.
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.047 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- [Résolu] Accès à une variable dans un workflow