РАЗДЕЛ
    about_Environment_Variables

КРАТКОЕ ОПИСАНИЕ
    Описывает, как обращаться к переменным среды Windows из Windows 
    PowerShell. 
    

ПОЛНОЕ ОПИСАНИЕ
    Переменные среды хранят сведения о среде операционной системы. 
    Эти сведения включают в себя такие данные, как путь операционной 
    системы, количество процессоров, используемых операционной 
    системой, а также местонахождение временных папок. 

    В переменных среды хранятся данные, используемые операционной 
    системой и другими программами. Например, переменная среды WINDIR 
    содержит местоположение каталога установки Windows. Программы 
    могут запрашивать значение этой переменной, чтобы определить, 
    где находятся файлы операционной системы Windows.

    Windows PowerShell позволяет просматривать и изменять значения 
    переменных среды Windows, в том числе переменных, заданных в 
    реестре и заданных для конкретного сеанса. Поставщик среды 
    Windows PowerShell упрощает процесс просмотра и изменения 
    переменных среды.
    
    В отличие от переменных других типов в Windows PowerShell, 
    переменные среды и их значения наследуются в дочерних сеансах, 
    например в локальных фоновых заданиях и сеансах, в которых 
    выполняются модули. Поэтому переменные среды хорошо подходят для 
    хранения значений, которые требуются как в родительских, так и в 
    дочерних сеансах.
   

  Поставщик среды Windows PowerShell
      Поставщик среды Windows PowerShell позволяет обращаться к 
      переменным среды Windows из Windows PowerShell на диске Windows 
      PowerShell (диск Env:). Этот диск очень похож на диски файловой 
      системы. Чтобы перейти к диску Env:, введите:


	  set-location env:


      Затем, чтобы отобразить содержимое диска Env:, введите:


	  get-childitem


      Переменные среды на диске Env: можно просматривать с любого 
      другого диска Windows PowerShell; кроме того, можно войти на 
      диск Env:, чтобы просматривать и изменять переменные среды.


  Объекты переменных среды  
      В Windows PowerShell каждая переменная среды представляется 
      объектом, который является экземпляром класса System.Collections. 
      DictionaryEntry.

	
      В каждом объекте DictionaryEntry имя переменной среды является 
      ключом словаря. Значение переменной является значением словаря.


      Для отображения переменной среды в Windows PowerShell 
      необходимо получить объект, представляющий переменную, а затем 
      отобразить значения свойств объекта. При изменении переменной 
      среды в Windows PowerShell следует использовать методы, 
      связанные с объектом DictionaryEntry.


      Для отображения свойств и методов объекта, представляющего 
      переменную среды в Windows PowerShell, следует использовать 
      командлет Get-Member. Например, для отображения методов и 
      свойств всех объектов на диске Env: введите:


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


  Отображение переменных среды
      Для отображения и изменения значений переменных среды, можно 
      использовать командлеты, содержащие слово Item (командлеты 
      Item). Поскольку у переменных среды нет дочерних элементов, 
      выходные данные командлетов Get-Item и Get-ChildItem одинаковы.


      При обращении к переменной среды введите имя диска Env: и имя 
      переменной. Например, для отображения значения переменной среды 
      COMPUTERNAME введите:


	  get-childitem env:computername


      Для отображения значений всех переменных среды введите:


	  get-childitem env:


      По умолчанию в Windows PowerShell перемененные отображаются в 
      том порядке, в котором они извлекаются. Чтобы отсортировать 
      список переменных среды по имени переменной, необходимо 
      передать выходные данные команды Get-ChildItem по конвейеру 
      командлету Sort-Object. Например, из любого диска Windows 
      PowerShell введите:


	  get-childitem env: | sort name


      Кроме того, к диску Env: можно перейти с помощью командлета 
      Set-Location:


	  set-location env:


      Если диск Env: уже открыт, имя диска Env: в пути можно не 
      указывать. Например, для отображения всех переменных среды введите:


	  get-childitem


      Чтобы отобразить значение переменной COMPUTERNAME, находясь на 
      диске Env:, введите:


	  get-childitem computername


      Отображать и изменять значения переменных среды можно также без 
      использования командлета при помощи синтаксического анализатора 
      выражений в Windows PowerShell. Для отображения значения 
      переменной среды используется следующий синтаксис:


	  $env:<имя_переменной>


      Например, чтобы отобразить значение переменной среды WINDIR, 
      введите в командную строку Windows PowerShell следующую команду:


	  $env:windir


      В этом выражении знак доллара ($) обозначает переменную, а имя 
      диска указывает, что используется переменная среды.


  Изменение переменных среды
      Чтобы сохранить изменение переменной среды, необходимо 
      воспользоваться компонентом "Система" в "Панели управления" (вкладка 
      "Дополнительно" или пункт "Дополнительные параметры системы") и 
      сохранить изменение в реестре.

      При изменении переменных среды в Windows PowerShell эти 
      изменения распространяются только на текущий сеанс. Это похоже 
      на применение команды Set в средах на базе Windows и команды 
      Setenv в средах на базе UNIX. 

      Необходимо также иметь разрешение на изменение значений 
      переменных. При попытке изменения значения без необходимого 
      разрешения команду выполнить не удается, и в Windows PowerShell 
      появляется сообщение об ошибке.

      Значения переменных можно изменять без применения командлета, 
      используя следующий синтаксис:


          $env:<имя_переменной> = "<новое_значение>"


      Например, чтобы добавить к переменной среды Path фрагмент 
      ";c:\temp", следует воспользоваться следующим выражением:


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

      Для изменения значений переменных среды могут использоваться 
      также командлеты Item, такие как Set-Item, Remove-Item и 
      Copy-Item. Например, чтобы добавить к переменной среды Path 
      фрагмент ";c:\temp" с помощью командлета Set-Item, следует 
      воспользоваться следующим выражением:


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

	
      В этой команде значение, заключенное в круглые скобки, 
      интерпретируется как единое выражение.


  Сохранение изменений переменных среды
      Чтобы создать или изменить значение переменной среды во всех 
      сеансах Windows PowerShell, необходимо добавить изменение в 
      профиль Windows PowerShell.

      Например, чтобы добавить каталог C:\Temp в переменную среды 
      Path во всех сеансах Windows PowerShell, необходимо добавить в 
      профиль Windows PowerShell следующую команду.

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

      Чтобы добавить команду в существующий профиль, например в профиль 
      CurrentUser,AllHosts, введите:

	  add-content -path $profile.CurrentUserAllHosts -value '$env:path = $env:path + ";c:\temp"' 

  Переменные среды, в которых хранятся параметры
      Компоненты Windows PowerShell могут использовать переменные 
      среды для хранения пользовательских параметров. Эти переменные 
      ведут себя как привилегированные переменные, но наследуются 
      дочерними сеансами тех сеансов, в которых они были созданы. 
      Дополнительные сведения о привилегированных переменных см. 
      в разделе about_preference_variables.

      Переменные среды, в которых хранятся параметры, включают:

        PSModulePath
            Хранит пути к каталогам модулей по умолчанию. Если полный 
            путь к модулю не задан, среда Windows PowerShell ищет 
            модули в указанных каталогах.

            По умолчанию переменная $env:PSModulePath имеет следующее 
            значение:

                $home\Documents\WindowsPowerShell\Modules; $pshome\Modules 

            Среда Windows PowerShell устанавливает значение 
            "$pshome\Modules" в реестре. Значение 
            "$home\Documents\WindowsPowerShell\Modules" 
            устанавливается при каждом запуске Windows PowerShell. 

            Кроме того, программы установки, которые устанавливают 
            модули в другие каталоги, например в каталог Program 
            Files, добавляют соответствующие местоположения в 
            значение переменной PSModulePath. 

            Чтобы изменить каталоги модулей по умолчанию, измените 
            значение переменной среды PSModulePath.

            Например, чтобы добавить в значение переменной среды 
            PSModulePath каталог "C:\ps-test\Modules", введите:

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

            Точка с запятой (;) в этой команде отделяет новый путь от 
            предыдущего пути в списке.

            Изменения распространяются только на текущий сеанс, если 
            только не добавляется команда, которая изменяет значение 
            в профиле, или не используется элемент "Система" в 
            "Панели управления", с помощью которого значение 
            переменной среды PSModulePath изменяется в реестре.
            
            Дополнительные сведения см. в разделе about_Modules.


СМ. ТАКЖЕ
    Cреда (поставщик)




Содержание