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.
