РАЗДЕЛ
	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реда (поставщик)