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)




Tabla de contenido