Question
argument au paramètre « Path », car il a la valeur
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 5 mois #22509
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:argument au paramètre « Path », car il a la valeur
Un comportement à connaitre :
[code:1]
$destPath = \"\\\" + 'localhost' + \"\c$\temp\"
Invoke-Command -ArgumentList $destPath -scriptblock { Write-output \"New-Item -Path $destPath\"}
#New-Item -Path \\localhost\c$\temp
# $desPath n'est pas déclaré
Invoke-Command -ComputerName localhost -ArgumentList $destPath -scriptblock { Write-output \"New-Item -Path $destPath\"}
#New-Item -Path
#Sans clause Param, on adresse les valeurs de -Argumentlist via la variable automatique $Args
Invoke-Command -ComputerName localhost -ArgumentList $destPath -scriptblock { Write-output \"New-Item -Path $($args[0])\"}
#New-Item -Path \\localhost\c$\temp
#Avec une clause Param, on adresse la variable déclarée
Invoke-Command -ComputerName localhost -ArgumentList $destPath -scriptblock { param($Destpath) Write-output \"New-Item -Path $args[0]\"}
#New-Item -Path \\localhost\c$\temp
#indicateur de portée Using: PS fait la liaison automatiquement
#( il injecte la variable dans le scriptblock sur le distant )
Invoke-Command -ComputerName localhost -scriptblock { Write-output \"New-Item -Path $using:destPath\"}
#New-Item -Path \\localhost\c$\temp
[/code:1]
[code:1]
$destPath = \"\\\" + 'localhost' + \"\c$\temp\"
Invoke-Command -ArgumentList $destPath -scriptblock { Write-output \"New-Item -Path $destPath\"}
#New-Item -Path \\localhost\c$\temp
# $desPath n'est pas déclaré
Invoke-Command -ComputerName localhost -ArgumentList $destPath -scriptblock { Write-output \"New-Item -Path $destPath\"}
#New-Item -Path
#Sans clause Param, on adresse les valeurs de -Argumentlist via la variable automatique $Args
Invoke-Command -ComputerName localhost -ArgumentList $destPath -scriptblock { Write-output \"New-Item -Path $($args[0])\"}
#New-Item -Path \\localhost\c$\temp
#Avec une clause Param, on adresse la variable déclarée
Invoke-Command -ComputerName localhost -ArgumentList $destPath -scriptblock { param($Destpath) Write-output \"New-Item -Path $args[0]\"}
#New-Item -Path \\localhost\c$\temp
#indicateur de portée Using: PS fait la liaison automatiquement
#( il injecte la variable dans le scriptblock sur le distant )
Invoke-Command -ComputerName localhost -scriptblock { Write-output \"New-Item -Path $using:destPath\"}
#New-Item -Path \\localhost\c$\temp
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Anthony
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 9 ans 5 mois #22510
par Anthony
Réponse de Anthony sur le sujet Re:argument au paramètre « Path », car il a la valeur
Salut Laurent,
Merci pour ton aide, je prends note de ton aide mémoire, j'ai semble t-il résolu mon problème avec $using:destpath :
[code:1]Invoke-Command -ComputerName $computer.computer -Credential $cred -scriptblock {New-Item -Path $Using:destPath -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}[/code:1]
Vous en dites quoi ?
Merci pour ton aide, je prends note de ton aide mémoire, j'ai semble t-il résolu mon problème avec $using:destpath :
[code:1]Invoke-Command -ComputerName $computer.computer -Credential $cred -scriptblock {New-Item -Path $Using:destPath -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}[/code:1]
Vous en dites quoi ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 9 ans 5 mois #22511
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:argument au paramètre « Path », car il a la valeur
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22513
par Philippe
Réponse de Philippe sur le sujet argument au paramètre « Path », car il a la valeur
perso je préfère une de ces deux écritures :
[code:1]Invoke-Command -ComputerName $computer.computer -Credential $cred -ArgumentList $destPath -scriptblock {New-Item -Path $($args[0]) -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}
Invoke-Command -ComputerName $computer.computer -Credential $cred -ArgumentList $destPath -scriptblock {param($Destpath) New-Item -Path $Destpath -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}
[/code:1]
[code:1]Invoke-Command -ComputerName $computer.computer -Credential $cred -ArgumentList $destPath -scriptblock {New-Item -Path $($args[0]) -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}
Invoke-Command -ComputerName $computer.computer -Credential $cred -ArgumentList $destPath -scriptblock {param($Destpath) New-Item -Path $Destpath -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Anthony
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 9
- Remerciements reçus 0
il y a 9 ans 5 mois #22514
par Anthony
Réponse de Anthony sur le sujet Re:argument au paramètre « Path », car il a la valeur
Je sais que je suis un débutant
, j'ai cherché sur le net et comme cela à fonctionné...et comme j'ai pas encore de connaissances approfondis sur le sujet...lol
En testant les lignes que tu viens de me donner, cela fonctionne aussi, juste que j'ai pour l'instant un peu de mal à saisir comment cela fonctionne mais je vais chercher...
En tout cas, bien merci messieurs pour votre aide, je risque de revenir à votre grand désespoir pour d'autres problèmes, mais j'espère aussi revenir pour aider les autres une fois que j'aurais des connaissances solides
En testant les lignes que tu viens de me donner, cela fonctionne aussi, juste que j'ai pour l'instant un peu de mal à saisir comment cela fonctionne mais je vais chercher...
En tout cas, bien merci messieurs pour votre aide, je risque de revenir à votre grand désespoir pour d'autres problèmes, mais j'espère aussi revenir pour aider les autres une fois que j'aurais des connaissances solides
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 5 mois #22516
par Philippe
Réponse de Philippe sur le sujet argument au paramètre « Path », car il a la valeur
j'avais déjà répondu sur un sujet identique
ici
en gros d'abord tu passe la ou les variables par le parametre -ArgumentList
dans ton cas :
[code:1]Invoke-Command -ArgumentList $destPath [/code:1]
et apres dans le scriptblock tu lis la ou les ariables :
soit dans l'ordre ou tu les a donné dans ArgumentList
soit tu fais un passage de paramètre comme pour un script ou une fonction \"param (.....)\" que tu peut utilisé dans le scriptblock
dans ton cas :
[code:1]param($path_de_dest)[/code:1]
que tu peut réutilise ici :
[code:1]New-Item -Path $path_de_dest [/code:1]
au final c'est peut être plus visuel comme ça :
[code:1]Invoke-Command -ComputerName $computer.computer -Credential $cred -ArgumentList $destPath -scriptblock {
param($path_de_dest)
New-Item -Path $path_de_dest -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force
}
[/code:1]<br><br>Message édité par: 6ratgus, à: 20/10/16 18:13
en gros d'abord tu passe la ou les variables par le parametre -ArgumentList
dans ton cas :
[code:1]Invoke-Command -ArgumentList $destPath [/code:1]
et apres dans le scriptblock tu lis la ou les ariables :
soit dans l'ordre ou tu les a donné dans ArgumentList
soit tu fais un passage de paramètre comme pour un script ou une fonction \"param (.....)\" que tu peut utilisé dans le scriptblock
dans ton cas :
[code:1]param($path_de_dest)[/code:1]
que tu peut réutilise ici :
[code:1]New-Item -Path $path_de_dest [/code:1]
au final c'est peut être plus visuel comme ça :
[code:1]Invoke-Command -ComputerName $computer.computer -Credential $cred -ArgumentList $destPath -scriptblock {
param($path_de_dest)
New-Item -Path $path_de_dest -ItemType file -value \"This is a test for testing scom service account.\" -name test-access.txt -force
}
[/code:1]<br><br>Message édité par: 6ratgus, à: 20/10/16 18:13
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- argument au paramètre « Path », car il a la valeur