Búsqueda de sitios web

PowerShell: jugar con variables de entorno


Las variables de entorno hacen la vida más fácil. En este artículo describo cómo utilizar variables de entorno en el trabajo diario. Y voy a mostrar algunos ejemplos útiles.

Encontrar variables de entorno

En cmd, todas las variables se pueden mostrar usando el conjunto de comandos.

Sorprendentemente, eso no funciona en PowerShell:

En PowerShell, conjunto se refiere a Conjunto-Variable. Entonces tenemos que tomar otro camino.

En PowerShell, todas las variables de entorno se almacenan en el entorno de PowerShell Drive.

Para enumerarlos todos, ejecute


Get-ChildItem -Path env:

o


cd env:
dir

¿Por qué variables de entorno?

Imagine que tiene que copiar una carpeta de un sistema a otro. La carpeta debe almacenarse en el directorio raíz de Windows. Con las variables de entorno no es necesario preocuparse por la ubicación del directorio de Windows. La instalación de Windows en C:\Windows no es obligatoria. Simplemente use la variable windir y debería usar la carpeta correcta.


Copy-Item -Path C:\Temp\computers.txt -Destination $env:windir

Cosas interesantes. Las variables de entorno también pueden ayudarle a cambiar a un directorio de forma más rápida.

Ejemplos

Averiguar el nombre de la computadora


$env:computername

Ok, tengo que admitirlo: es más fácil usar el comando nombre de host. ?

Descubriendo el Logonserver


$env:logonserver

Configurar una tarea programada

Por ejemplo, si desea iniciar PowerShell en cada inicio de sesión, ejecute este código y preste atención a la línea 4. Allí verá la variable de entorno de nombre de usuario en acción.


$Action=New-ScheduledTaskAction -Execute "powershell.exe"
$Trigger=New-ScheduledTaskTrigger -AtLogOn
$Set=New-ScheduledTaskSettingsSet
$Principal=New-ScheduledTaskPrincipal -UserID "$env:username" -LogonType Interactive -RunLevel Highest
$Task=New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Set -Principal $Principal
Register-ScheduledTask -TaskName PowerShellAtLogon -InputObject $Task

Artículos relacionados