HOWTO · PowerShell
Remoting $Using des Variablenbereichs in PowerShell
In diesem Tutorial lernen Sie, lokale Variablen in Remotebefehlen in PowerShell zu verwenden.
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.