Remoting $Using des Variablenbereichs in PowerShell
Wenn Sie mit Remotebefehlen in PowerShell arbeiten, möchten Sie möglicherweise manchmal lokale Variablen in einer Remotesitzung verwenden. Wenn Sie jedoch eine lokale Variable in Remote-Befehlen verwenden, wird ein Fehler zurückgegeben, da die Variable nicht in der Remote-Sitzung erstellt wird.
Standardmäßig erwartet PowerShell, dass die Variablen in Remotebefehlen in der Remotesitzung definiert werden, in der der Befehl ausgeführt wird. Using
ist ein spezieller Scope-Modifikator, der Ihnen erlaubt, lokale Variablen in Remote-Befehlen zu verwenden.
Der Scope-Modifizierer Using
identifiziert Variablen, die in der lokalen Sitzung definiert sind, als lokale Variable im Remote-Befehl. Es wird in PowerShell 3.0 eingeführt.
In diesem Tutorial lernen Sie, lokale Variablen in Remote-Befehlen mit Using
in PowerShell zu verwenden.
Verwendung von den Bereichsmodifikator Using
in PowerShell
Die Syntax für den Bereichsmodifikator Using
lautet:
$Using:VariableName
Der Bereichsmodifikator Using
wird in remote ausgeführten Befehlen unterstützt, beginnend mit Invoke-Command
mit den Parametern ComputerName
, HostName
, SSHConnection
oder Session
.
Das folgende Skript zeigt, dass die Variable $test
auf dem lokalen Computer definiert und in der Remotesitzung verwendet wird.
$test = "C:\New\complex"
Invoke-Command -ComputerName remotePC -ScriptBlock {
Get-ChildItem $Using:test
}
Der erste Befehl speichert den Pfad des Verzeichnisses C:\New\complex
in der Variablen $test
auf dem lokalen Rechner. Der zweite Befehl führt den Befehl Get-ChildItem
mit der lokalen Variable $test
auf dem Remote-Computer aus.
Als Ergebnis druckt es die Elemente, die im Verzeichnis C:\New\complex
auf dem Remote-Computer vorhanden sind.
Ausgabe:
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
Sie können den Bereichsmodifikator Using
auch in einer PSSession
verwenden.
Im folgenden Beispiel werden zwei Variablen, $a
und $b
, in der lokalen Sitzung erstellt und in der Remote-Sitzung verwendet. In der Remote-Session wird die Variable $result
definiert, die die Multiplikation der Werte in $a
und $b
speichert.
$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
}
Ausgabe:
The result is 30
Wir hoffen, dass dieses Tutorial Ihnen geholfen hat zu verstehen, wie Sie den Bereichsmodifikator Using
für lokale Variablen in Remote-Befehlen verwenden. Weitere Informationen finden Sie unter about_Remote_Variables
.