Remoting $Using de la portée des variables dans PowerShell
Lorsque vous travaillez avec des commandes distantes dans PowerShell, vous souhaiterez parfois utiliser des variables locales dans une session distante. Mais si vous utilisez une variable locale dans des commandes distantes, une erreur sera renvoyée car la variable n’est pas créée dans la session distante.
Par défaut, PowerShell s’attend à ce que les variables des commandes distantes soient définies dans la session distante dans laquelle la commande s’exécute. Using
est un modificateur de portée spécial qui vous permet d’utiliser des variables locales dans des commandes distantes.
Le modificateur de portée Using
identifie les variables définies dans la session locale comme une variable locale dans la commande distante. Il est introduit dans PowerShell 3.0.
Ce tutoriel va vous apprendre à utiliser des variables locales dans les commandes distantes avec Using
dans PowerShell.
Utiliser le modificateur de portée Using
dans PowerShell
La syntaxe du modificateur de portée Using
est :
$Using:VariableName
Le modificateur de portée Using
est pris en charge dans les commandes exécutées à distance, en commençant par Invoke-Command
en utilisant les paramètres ComputerName
, HostName
, SSHConnection
ou Session
.
Le script suivant montre que la variable $test
est définie dans l’ordinateur local et utilisée dans la session distante.
$test = "C:\New\complex"
Invoke-Command -ComputerName remotePC -ScriptBlock {
Get-ChildItem $Using:test
}
La première commande stocke le chemin du répertoire C:\New\complex
dans la variable $test
de l’ordinateur local. La deuxième commande exécute la commande Get-ChildItem
avec la variable locale $test
dans l’ordinateur distant.
De ce fait, il imprime les éléments présents dans le répertoire C:\New\complex
du poste distant.
Production:
Directory: C:\New\complex
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 20-12-2021 19:31 112125 architecture of aqps.png
-a---- 20-12-2021 21:32 33148 formula.png
-a---- 20-12-2021 21:30 55621 modules.png
-a---- 20-12-2021 16:35 190485 output paper.png
Vous pouvez également utiliser le modificateur de portée Using
dans une PSSession
.
Dans l’exemple suivant, deux variables, $a
et $b
, sont créées dans la session locale et utilisées dans la session distante. La variable $result
est définie dans la session distante, qui stocke la multiplication des valeurs dans $a
et $b
.
$ps = New-PSSession -ComputerName remotePC
$a=5
$b=6
Invoke-Command -Session $ps -ScriptBlock {
$result = $Using:a*$Using:b
Write-Host The result is $result
}
Production:
The result is 30
Nous espérons que ce tutoriel vous a aidé à comprendre comment utiliser le modificateur de portée Using
pour les variables locales dans les commandes distantes. Pour plus d’informations, lisez about_Remote_Variables
.