Nombre de proveedor

Environment

Unidades

Env:

Descripción breve

Proporciona acceso a las variables de entorno de Windows.

Descripción detallada

El proveedor de entorno de Windows PowerShell permite obtener, agregar, cambiar, borrar y eliminar variables de entorno de Windows en Windows PowerShell.

El proveedor Environment es un espacio de nombres sin formato que contiene únicamente objetos que representan las variables de entorno. Las variables no tienen elementos secundarios.

Cada variable de entorno es una instancia de la clase System.Collections.DictionaryEntry. El nombre de la variable es la clave de diccionario. El valor de la variable de entorno es el valor de diccionario.

El proveedor de entorno expone su almacén de datos en la unidad Env:. Para trabajar con variables de entorno, puede cambiar la ubicación a la unidad Env: ("set-location env:") o trabajar desde otra unidad de Windows PowerShell. Para hacer referencia a una variable de entorno desde otra ubicación, incluya el nombre de la unidad, Env:, en la ruta de acceso.

El proveedor de variables de entorno admite todos los cmdlets que contienen el sustantivo Item, excepto Invoke-Item. Además, admite los cmdlets Get-Content y Set-Content. Sin embargo, no admite los cmdlets que contienen el sustantivo ItemProperty, ni el parámetro Filter de ningún cmdlet.

Las variables de entorno deben ajustarse a las convenciones de nomenclatura habituales. Además, el nombre no puede incluir el signo igual (=).

Los cambios realizados en las variables de entorno afectan únicamente a la sesión actual. Para guardar los cambios, hay que agregarlos al perfil de Windows PowerShell o bien utilizar Export-Console para guardar la sesión actual.

Ejemplos

Tener acceso a la unidad Env:

-------------------------- EJEMPLO 1 --------------------------

Este comando cambia la ubicación actual a la unidad Env:

set-location env:

Puede usar este comando desde cualquier unidad de Windows PowerShell. Para volver a una unidad del sistema de archivos, escriba el nombre de la unidad. Por ejemplo, escriba: set-location c:

Obtener variables de entorno

-------------------------- EJEMPLO 1 --------------------------

Este comando muestra una lista de todas las variables de entorno de la sesión actual:

get-childitem -path env:

Puede usar este comando desde cualquier unidad de Windows PowerShell.

-------------------------- EJEMPLO 2 --------------------------

Este comando obtiene la variable de entorno WINDIR:

get-childitem -path env:windir

-------------------------- EJEMPLO 3 --------------------------

Este comando obtiene una lista de todas las variables de entorno de la sesión actual y, a continuación, las ordena por nombre:

get-childitem  | sort-object -property name

De forma predeterminada, Windows PowerShell muestra las variables de entorno en el orden en que las detecta. Este comando se envía en la unidad Env:. Si este comando se ejecuta desde otra unidad, es preciso agregar el parámetro Path con el valor Env:.

Crear una nueva variable de entorno

-------------------------- EJEMPLO 1 --------------------------

Este comando crea la variable de entorno USERMODE con el valor Non-Admin:

new-item -path . -name USERMODE -value Non-Admin

Dado que la ubicación actual se encuentra en la unidad Env:, el valor del parámetro Path es un punto (.). El punto representa la ubicación actual. Si no se encuentra en la unidad Env:, el valor del parámetro Path será Env:.

Mostrar las propiedades y los métodos de las variables de entorno

-------------------------- EJEMPLO 1 --------------------------

Este comando usa el cmdlet Get-ChildItem para obtener todas las variables de entorno:

get-childitem -path env: | get-member

El operador de canalización (|) envía los resultados a Get-Member, que muestra los métodos y las propiedades del objeto. Cuando se canaliza una colección de objetos a Get-Member, por ejemplo, la colección de variables de entorno de la unidad Env:, Get-Member evalúa cada objeto de la colección por separado; a continuación, Get-Member devuelve información acerca de cada uno de los tipos de objeto que encuentra. Si todos los objetos son del mismo tipo, devuelve información acerca del único tipo de objeto. En este caso, todas las variables de entorno son objetos DictionaryEntry. Para obtener información acerca de la colección de objetos DictionaryEntry, utilice el parámetro InputObject de Get-Member. Por ejemplo, escriba: get-member -inputobject (get-childitem env:) Si se usa el parámetro InputObject, Get-Member evalúa la colección, no los objetos que esta contiene.

-------------------------- EJEMPLO 2 --------------------------

Este comando muestra una lista de los valores de las propiedades de la variable de entorno WINDIR:

get-item env:windir | format-list -property *

Usa el cmdlet Get-Item para obtener un objeto que representa la variable de entorno WINDIR. El operador de canalización (|) envía los resultados al comando Format-List. Utiliza el parámetro Property con un carácter comodín (*) para dar formato y mostrar los valores de todas las propiedades de la variable de entorno WINDIR.

Cambiar las propiedades de una variable de entorno

-------------------------- EJEMPLO 1 --------------------------

Este comando usa el cmdlet Rename-Item para cambiar a USERROLE el nombre de la variable de entorno USERMODE que se ha creado.

rename-item -path env:USERMODE -newname USERROLE

Este cambio afecta a las propiedades Name, Key y PSPath del objeto DictionaryEntry. No cambie el nombre de una variable de entorno que use el sistema. Aunque estos cambios afectan únicamente a la sesión actual, pueden causar que el sistema o un programa no funcione correctamente.

-------------------------- EJEMPLO 2 --------------------------

Este comando usa el cmdlet Set-Item para cambiar el valor de la variable de entorno USERROLE a "Administrator".

set-item -path env:USERROLE -value Administrator

Copiar una variable de entorno

-------------------------- EJEMPLO 1 --------------------------

Este comando copia el valor de la variable de entorno USERROLE en la variable de entorno USERROLE2:

copy-item -path env:USERROLE -destination env:USERROLE2

Eliminar una variable de entorno

-------------------------- EJEMPLO 1 --------------------------

Este comando elimina la variable de entorno USERROLE2 de la sesión actual:

remove-item -path env:USERROLE2

Puede usar este comando en cualquier unidad de Windows PowerShell. Si se encuentra en la unidad Env:, puede omitir el nombre de la unidad en la ruta de acceso.

-------------------------- EJEMPLO 2 --------------------------

Este comando elimina la variable de entorno USERROLE.

clear-item -path env:USERROLE

Vea también




Tabla de contenido