Remoting $Using Varieabilità di Scopo in PowerShell

Remoting $Using Varieabilità di Scopo in PowerShell

Quando si lavora con comandi remoti in PowerShell, a volte potresti voler usare variabili locali in una sessione remota. Ma se usi una variabile locale in comandi remoti, restituirà un errore perché la variabile non è creata nella sessione remota.

Per impostazione predefinita, PowerShell si aspetta che le variabili nei comandi remoti siano definite nella sessione remota in cui il comando viene eseguito. Using è un modificatore di scopo speciale che consente di utilizzare variabili locali in comandi remoti.

Il modificatore di scopo Using identifica le variabili definite nella sessione locale come una variabile locale nel comando remoto. È stato introdotto in PowerShell 3.0.

Questo tutorial ti insegnerà a usare variabili locali in comandi remoti con Using in PowerShell.

Usa il modificatore di scopo Using in PowerShell

La sintassi per il modificatore di scopo Using è:

$Using:VariableName

Il modificatore di scopo Using è supportato nei comandi eseguiti da remoto, a partire da Invoke-Command utilizzando i parametri ComputerName, HostName, SSHConnection o Session.

Lo script seguente mostra che la variabile $test è definita nel computer locale e utilizzata nella sessione remota.

$test = "C:\New\complex"
Invoke-Command -ComputerName remotePC -ScriptBlock {
    Get-ChildItem $Using:test
}

Il primo comando memorizza il percorso della directory C:\New\complex nella variabile $test nel computer locale. Il secondo comando esegue il comando Get-ChildItem con la variabile locale $test nel computer remoto.

Come risultato, stampa gli elementi presenti nella directory C:\New\complex nel computer remoto.

Output:

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

Puoi anche usare il modificatore di scopo Using in una PSSession.

Nell’esempio seguente, due variabili, $a e $b, sono create nella sessione locale e utilizzate nella sessione remota. La variabile $result è definita nella sessione remota, che memorizza il risultato della moltiplicazione dei valori in $a e $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
}

Output:

The result is 30

Speriamo che questo tutorial ti abbia aiutato a comprendere come utilizzare il modificatore di scopo Using per variabili locali in comandi remoti. Per ulteriori informazioni, leggi about_Remote_Variables.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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