You are on page 1of 5

TEMA

about_Environment_Variables

DESCRIPCIÓN BREVE
Describe cómo se tiene acceso a las variables de entorno de
Windows en Windows PowerShell.

DESCRIPCIÓN DETALLADA
Las variables de entorno almacenan información acerca del entorno
del sistema operativo. Esta información incluye detalles como la
ruta de acceso al sistema operativo, el número de procesadores
que usa el sistema operativo y la ubicación de las carpetas
temporales.

Las variables de entorno almacenan datos que el sistema operativo


y otros programas usan. Por ejemplo, la variable de entorno
WINDIR contiene la ubicación del directorio de instalación de
Windows. Los programas pueden consultar el valor de esta variable
para determinar la ubicación de los archivos del sistema
operativo Windows.

Windows PowerShell permite ver y cambiar las variables de entorno


de Windows, inclusive las que se establecen en el Registro y las
que se establecen para una sesión determinada. El proveedor de
entorno de Windows PowerShell simplifica este proceso facilitando
la presentación y modificación de las variables de entorno.

Al contrario que otros tipos diferentes de variables de Windows


PowerShell, las sesiones secundarias, tales como los trabajos de
segundo plano locales o las sesiones en las que se ejecutan los
miembros de módulo, heredan las variables de entorno y sus
valores. Por este motivo, las variables de entorno son adecuadas
para almacenar valores que se necesitan en las sesiones primarias
y secundarias.

Proveedor de entorno de Windows PowerShell


El proveedor de entorno de Windows PowerShell permite tener
acceso a las variables de entorno de Windows en Windows
PowerShell en una unidad de Windows PowerShell (la unidad
Env:). Se trata de una unidad muy parecida a una unidad de
disco del sistema de archivos. Para ir a la unidad Env:, escriba:

set-location env:

A continuación, para mostrar el contenido de la unidad Env:,


escriba:

get-childitem

Puede ver las variables de entorno que contiene la unidad Env:


desde cualquier otra unidad de Windows PowerShell, así como
tener acceso a la unidad Env: para ver y cambiar las variables
de entorno.
Objetos de variables de entorno
En Windows PowerShell, cada variable de entorno está
representada por un objeto que es una instancia de la clase
System.Collections.DictionaryEntry.

En cada objeto DictionaryEntry, el nombre de la variable de


entorno es la clave de diccionario. El valor de la variable es
el valor del diccionario.

Para mostrar una variable de entorno en Windows PowerShell, es


preciso obtener un objeto que represente la variable y, a
continuación, mostrar los valores de las propiedades del
objeto. Al modificar una variable de entorno en Windows
PowerShell, deben usarse los métodos que están asociados al
objeto DictionaryEntry.

Para mostrar las propiedades y los métodos del objeto que


representa una variable de entorno en Windows PowerShell, se
utiliza el cmdlet Get-Member.
Por ejemplo, para mostrar las propiedades y métodos de todos
los objetos que contiene la unidad Env:, escriba:

get-item -path env:* | get-member

Mostrar variables de entorno


Los cmdlets que contienen el nombre Item (cmdlets Item) se
pueden utilizar para mostrar y cambiar los valores de las
variables de entorno. Dado que las variables de entorno no
tienen elementos secundarios, el resultado de Get-Item y
Get-ChildItem es el mismo.

Al hacer referencia a una variable de entorno, debe escribirse


el nombre de la unidad Env: seguido del nombre de la variable.
Por ejemplo, para mostrar el valor de la variable de entorno
COMPUTERNAME, escriba:

get-childitem env:computername

Para mostrar los valores de todas las variables de entorno, escriba:

get-childitem env:

De forma predeterminada, Windows PowerShell muestra las


variables de entorno en el orden en que se recuperan. Para
ordenar la lista de variables de entorno por el nombre de la
variable, se debe canalizar el resultado del comando
Get-ChildItem al cmdlet Sort-Object. Por ejemplo, desde
cualquier unidad de Windows PowerShell, escriba:

get-childitem env: | sort name

También es posible entrar en la unidad Env: utilizando el


cmdlet Set-Location:

set-location env:

Si se encuentra en la unidad Env:, puede omitir el nombre de la


unidad en la ruta de acceso. Por ejemplo, para mostrar todas
las variables de entorno, escriba:

get-childitem

Para mostrar el valor de la variable COMPUTERNAME desde la


unidad Env:, escriba:

get-childitem computername

También es posible mostrar y cambiar los valores de las


variables de entorno sin usar un cmdlet, sino el analizador de
expresiones de Windows PowerShell. Para mostrar el valor de una
variable de entorno, se utiliza la siguiente sintaxis:

$env:<nombreVariable>

Por ejemplo, para mostrar el valor de la variable de entorno


WINDIR, escriba el comando siguiente en el símbolo del sistema
de Windows PowerShell:

$env:windir

En esta sintaxis, el signo de dólar ($) indica una variable y


el nombre de la unidad indica una variable de entorno.

Cambiar variables de entorno


Para realizar un cambio persistente en una variable de entorno,
es preciso abrir Sistema en el Panel de control (pestaña
Opciones avanzadas o elemento Configuración avanzada del
sistema) para almacenar el cambio en el Registro.

Cuando se cambian variables de entorno en Windows PowerShell,


el cambio afecta solamente a la sesión actual. Este
comportamiento se parece al comportamiento del comando Set en
los entornos basados en Windows y del comando Setenv en los
entornos basados en UNIX.

También debe tener permiso para cambiar los valores de las


variables. Si intenta cambiar un valor sin tener los permisos
suficientes, se producirá un error al ejecutar el comando y
Windows PowerShell mostrará un error.

Puede cambiar los valores de variables sin usar un cmdlet, con


la siguiente sintaxis:

$env:<nombreVariable> = "<nuevoValor>"

Por ejemplo, para anexar ";c:\temp" al valor de la variable de


entorno Path, use la siguiente sintaxis:

$env:path = $env:path + ";c:\temp"

También es posible usar los cmdlets Item, tales como Set-Item,


Remove-Item y Copy-Item, para cambiar los valores de las
variables de entorno. Por ejemplo, si desea usar el cmdlet
Set-Item para anexar ";c:\temp" al valor de la variable de
entorno Path, use la siguiente sintaxis:

set-item -path env:path -value ($env:path + ";c:\temp")

En este comando, el valor se especifica entre paréntesis para


que se interprete como una unidad.

Guardar los cambios en las variables de entorno


Para crear o cambiar el valor de una variable de entorno en
cada sesión de Windows PowerShell, debe agregarse el cambio al
perfil de Windows PowerShell.

Por ejemplo, para agregar el directorio C:\Temp a la variable


de entorno Path en cada sesión de Windows PowerShell, agregue
el comando siguiente a su perfil de Windows PowerShell.

$env:path = $env:path + ";c:\temp"

Para agregar el comando a un perfil existente, como


CurrentUser,AllHosts, escriba lo siguiente:

add-content -path $profile.CurrentUserAllHosts -value '$env:path =


$env:path + ";c:\temp"'

Variables de entorno que almacenan preferencias


Las características de Windows PowerShell pueden utilizar
variables de entorno para almacenar las preferencias del
usuario. Estas variables funcionan como las variables de
preferencia, pero las heredan las sesiones secundarias de las
sesiones en las que se crean. Para obtener más información
sobre las variables de preferencias, vea about_preference_variables.
Las variables de entorno que almacenan preferencias incluyen:

PSModulePath
Almacena las rutas de acceso a los directorios de módulos
predeterminados. Si no se especifica una ruta de acceso
completa a un módulo, Windows PowerShell busca los
módulos en los directorios especificados.

El valor predeterminado de $env:PSModulePath es:

$home\Documents\WindowsPowerShell\Modules;
$pshome\Modules
Windows PowerShell establece el valor de "$pshome\Modules"
en el Registro.
Establece el valor de "$home\Documents\WindowsPowerShell\M
odules" cada vez que se inicia Windows PowerShell.

Además, los programas de instalación que instalan módulos


en otros directorios, como el directorio Archivos de
programa, anexan sus ubicaciones al valor de PSModulePath.

Para cambiar los directorios de módulos predeterminados,


hay que cambiar el valor de la variable de entorno
PSModulePath.

Por ejemplo, para agregar el directorio "C:\ps-test\Module


s" al valor de la variable de entorno PSModulePath, escriba:

$env:PSModulePath = $env:PSModulePath +
";c:\ps-test\Modules"

El signo de punto y coma (;) en el comando separa la


nueva ruta de acceso de la ruta de acceso anterior en la
lista.

Los cambios que se realizan afectan solamente a la sesión


actual, a menos que se agregue un comando que modifique
el valor en el perfil o que se utilice el cuadro de
diálogo Sistema del Panel de control para cambiar el
valor de la variable de entorno PSModulePath en el Registro.

Para obtener más información, vea about_Modules.

VEA TAMBIÉN
Entorno (proveedor)

You might also like