Remoting $Using Variable Scope en PowerShell

Rohan Timalsina 16 febrero 2024
Remoting $Using Variable Scope en PowerShell

Cuando trabaje con comandos remotos en PowerShell, a veces puede querer usar variables locales en una sesión remota. Pero si usa una variable local en los comandos remotos, devolverá un error porque la variable no se crea en la sesión remota.

De forma predeterminada, PowerShell espera que las variables de los comandos remotos se definan en la sesión remota en la que se ejecuta el comando. Using es un modificador de alcance especial que le permite usar variables locales en comandos remotos.

El modificador de alcance Using identifica las variables definidas en la sesión local como una variable local en el comando remoto. Se introduce en PowerShell 3.0.

Este tutorial te enseñará a usar variables locales en comandos remotos con Usar en PowerShell.

Use el modificador de alcance Using en PowerShell

La sintaxis del modificador de alcance Using es:

$Using:VariableName

El modificador de alcance Using se admite en los comandos ejecutados de forma remota, comenzando con Invoke-Command utilizando los parámetros ComputerName, HostName, SSHConnection o Session.

El siguiente script muestra que la variable $test se define en la computadora local y se usa en la sesión remota.

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

El primer comando almacena la ruta del directorio C:\New\complex en la variable $test en la computadora local. El segundo comando ejecuta el comando Get-ChildItem con la variable local $test en la computadora remota.

Como resultado, imprime los elementos presentes en el directorio C:\New\complex en la computadora remota.

Producción :

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

También puede utilizar el modificador de ámbito Using en una PSSession.

En el siguiente ejemplo, se crean dos variables, $a y $b, en la sesión local y se utilizan en la sesión remota. La variable $result se define en la sesión remota, que almacena la multiplicación de valores en $a y $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
}

Producción :

The result is 30

Esperamos que este tutorial lo haya ayudado a comprender cómo usar el modificador de alcance Using para variables locales en comandos remotos. Para obtener más información, lea 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