Cómo establecer variables de entorno utilizando PowerShell

  1. ¿Qué son las Variables de Entorno?
  2. Establecer una Variable de Entorno Con Env: en PowerShell
  3. Establecer la Clase [System.Environment] .NET en PowerShell
  4. Actualizar Variables de Entorno en la Sesión Actual de PowerShell
  5. Conclusión
Cómo establecer variables de entorno utilizando PowerShell

Usar Windows PowerShell para establecer variables de entorno de Windows, leer variables de entorno y crear nuevas variables de entorno es fácil una vez que conocemos la ejecución adecuada de los comandos.

PowerShell proporciona muchos métodos diferentes para interactuar con las variables de entorno de Windows desde el PSDrive $env: y la clase .NET [System.Environment]. Este artículo discutirá cómo establecer variables de entorno y actualizarlas en nuestra sesión actual usando PowerShell.

¿Qué son las Variables de Entorno?

Como su nombre indica, las variables de entorno almacenan información sobre los entornos de Windows y de las aplicaciones.

Podemos acceder a las variables de entorno a través de una interfaz gráfica como el Explorador de Windows y editores de texto planos como Notepad, cmd.exe y PowerShell.

Usar variables de entorno nos ayuda a evitar codificar de forma rígida rutas de archivo, nombres de usuario o computadoras, y más en nuestros scripts o módulos de PowerShell.

Establecer una Variable de Entorno Con Env: en PowerShell

Podemos crear nuevas variables de entorno con PowerShell utilizando el cmdlet New-Item. Pero, primero, proporciona el nombre de la variable de entorno en el formato Env:\<EnvVarName> para el parámetro Value, como se muestra a continuación.

Código de Ejemplo:

New-Item -Path Env:\TEST -Value WIN10-DESKTOP

Usamos el cmdlet de PowerShell New-Item para crear o actualizar una variable de entorno llamada TEST dentro del espacio de nombres Env:\. Al especificar -Value WIN10-DESKTOP, asignamos el valor WIN10-DESKTOP a esta variable.

Esta acción afecta la sesión actual de PowerShell, haciendo que la variable de entorno TEST sea accesible para otros scripts y comandos dentro de la sesión.

Salida:

powershell actualizar variables de entorno - salida 1

Podemos usar el cmdlet Set-Item para establecer una variable de entorno o crear una nueva si no existe ya. Por ejemplo, podemos ver a continuación el uso del cmdlet Set-Item.

Podemos crear o modificar una variable de entorno.

Código de Ejemplo:

Set-Item -Path Env:TEST -Value "TestValue"

Usamos el cmdlet de PowerShell Set-Item para modificar el valor de una variable de entorno existente llamada TEST dentro del espacio de nombres Env:\. Al especificar -Value "TestValue", asignamos la cadena "TestValue" a la variable de entorno TEST.

Esta acción afecta directamente la sesión actual de PowerShell, actualizando el valor de TEST para su uso por otros scripts y comandos dentro de la sesión.

Salida:

powershell actualizar variables de entorno - salida 2

Establecer la Clase [System.Environment] .NET en PowerShell

La [System.Environment] usará algunos métodos de clase estática .NET diferentes. No necesitamos entender qué es una forma estática.

Solo necesitamos entender cómo usar cualquiera de las técnicas que estamos a punto de aprender, y primero necesitaremos hacer referencia a la clase ([System.Environment]) seguida de dos puntos (::) luego seguido por el método.

Para establecer la variable de entorno utilizando la clase .NET mencionada, usa la función SetEnvironmentVariable() para establecer el valor de una variable de entorno existente para el ámbito dado o crear una nueva variable de entorno si no existe ya.

Al establecer variables en el ámbito del proceso, encontraremos que el ámbito del proceso es volátil y existente en la sesión actual, mientras que los cambios en los ámbitos de usuario y máquina son permanentes.

Código de Ejemplo:

[System.Environment]::SetEnvironmentVariable('TestVariable', 'TestValue', 'User')

Usamos el método .NET [System.Environment]::SetEnvironmentVariable() para establecer una variable de entorno llamada TestVariable con el valor 'TestValue' en el entorno específico del usuario. Al especificar 'User' como el tercer parámetro, nos aseguramos de que esta variable se establezca dentro del contexto del entorno del usuario.

Esta acción impacta la configuración del entorno para el usuario actual, permitiendo que otros scripts y aplicaciones accedan a TestVariable con su valor asignado.

Actualizar Variables de Entorno en la Sesión Actual de PowerShell

Para usar nuestro nuevo conjunto de variables de entorno en nuestra sesión de PowerShell, obtén la variable de entorno del perfil de usuario y de la máquina a través de la clase .NET y asígnala a la variable de entorno de PowerShell.

Dado que las variables de entorno también se consideran variables de PowerShell, podemos asignarles valores directamente de manera más sencilla.

Código de Ejemplo:

$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")

Estamos actualizando la variable de entorno $env:PATH concatenando los valores de las variables de entorno Path del sistema y del usuario recuperados usando [System.Environment]::GetEnvironmentVariable(). Primero recuperamos la variable Path del sistema usando el parámetro "Machine" y luego anexamos la variable Path del usuario recuperada usando el parámetro "User".

Al combinar estos valores con un separador de punto y coma, nos aseguramos de que ambos conjuntos de rutas se incluyan en el $env:PATH actualizado.

Salida:

powershell actualizar variables de entorno - salida 3

Conclusión

En este artículo, exploramos varios métodos para gestionar variables de entorno en PowerShell, centrándonos en establecer y actualizar utilizando diferentes técnicas. Comenzamos demostrando cómo crear o modificar variables de entorno usando cmdlets de PowerShell como New-Item y Set-Item, proporcionando ejemplos claros y explicaciones para cada paso.

A continuación, nos adentramos en el uso de la clase .NET [System.Environment] para manipular variables de entorno. A través del método SetEnvironmentVariable(), aprendimos a establecer variables con ámbitos específicos, comprendiendo las implicaciones de cada ámbito en la persistencia de las variables.

Por último, cubrimos la importancia de actualizar las variables de entorno dentro de la sesión actual de PowerShell, enfatizando el uso de [System.Environment]::GetEnvironmentVariable() para actualizar variables dinámicamente.

¿Disfrutas de nuestros tutoriales? Suscríbete a DelftStack en YouTube para apoyarnos en la creación de más guías en vídeo de alta calidad. Suscríbete
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artículo relacionado - PowerShell Environment Variables