Remoting $Using des Variablenbereichs in PowerShell

Rohan Timalsina 7 Juni 2022
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.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website