Имя поставщика
Environment
Диски
Env:
Краткое описание
Предоставляет доступ к переменным среды Windows.
Подробное описание
Поставщик Windows PowerShell Environment позволяет извлекать, добавлять, изменять, очищать и удалять переменные среды Windows в Windows PowerShell.
Поставщик Environment представляет собой плоское пространство имен, содержащее только объекты, представляющие переменные среды. У данных переменных нет дочерних элементов.
Каждая переменная среды является экземпляром класса System.Collections.DictionaryEntry. Имя переменной является ключом словаря. Значение переменной среды является значением словаря.
Поставщик Environment отображает свое хранилище данных как диск Env:. Для работы с переменными среды перейдите на диск Env: ("set-location env:") или работайте с другого диска Windows PowerShell. Для ссылки на переменную среды из другого положения следует использовать в пути имя диска "Env:".
Поставщик переменных среды поддерживает все командлеты, содержащие существительное Item, кроме Invoke-Item. Кроме того, он поддерживает командлеты Get-Content и Set-Content. Однако он не поддерживает командлеты, содержащие существительное ItemProperty, и не поддерживает параметр Filter в любом командлете.
Переменные среды должны именоваться в соответствии с обычными стандартами. Кроме того, имя не может содержать знак равенства (=).
Все изменения в переменных среды затрагивают только текущий сеанс. Чтобы сохранить изменения, добавьте их в профиль Windows PowerShell или воспользуйтесь командлетом Export-Console для сохранения текущего сеанса.
Примеры
Обращение к диску Env:
-------------------------- ПРИМЕР 1 --------------------------
Эта команда меняет текущее положение на диск Env:.
set-location env:
Эту команду можно использовать с любого диска в оболочке Windows PowerShell. Чтобы вернуться к диску файловой системы, введите имя диска. Например, введите следующую команду: set-location c:
Извлечение переменных среды
-------------------------- ПРИМЕР 1 --------------------------
Эта команда возвращает список всех переменных среды в текущем сеансе:
get-childitem -path env:
Эту команду можно использовать с любого диска Windows PowerShell.
-------------------------- ПРИМЕР 2 --------------------------
Это команда возвращает переменную среды WINDIR:
get-childitem -path env:windir
-------------------------- ПРИМЕР 3 --------------------------
Эта команда возвращает список всех переменных среды в текущем сеансе и сортирует их по имени:
get-childitem | sort-object -property name
По умолчанию переменные среды появляются в порядке их обнаружения в оболочке Windows PowerShell. Эта команда выполняется на диске Env:. При запуске этой команды с другого диска добавьте параметр Path со значением Env:.
Создание новой переменной среды
-------------------------- ПРИМЕР 1 --------------------------
Эта команда создает переменную среды USERMODE со значением Non-Admin:
new-item -path . -name USERMODE -value Non-Admin
Так как текущим местоположением является диск Env:, значение параметра Path — точка (.). Точка обозначает текущее местоположение. Если текущем местоположением не является диск Env:, значением параметра Path должно быть Env:.
Отображение свойств и методов переменных среды
-------------------------- ПРИМЕР 1 --------------------------
Эта команда использует командлет Get-ChildItem для получения всех переменных среды:
get-childitem -path env: | get-member
Результаты с помощью оператора конвейера (|) передаются командлету Get-Member, который отображает методы и свойства объекта. При передаче командлету Get-Member по конвейеру коллекции объектов, например коллекции переменных среды на диске Env:, командлет Get-Member обрабатывает каждый объект коллекции отдельно. Затем командлет Get-Member возвращает информацию о каждом найденном типе объекта. Если все объекты принадлежат к одному типу, выводятся сведения о единственном типе объекта. В данном случае все переменные среды являются объектами DictionaryEntry. Для получения сведений о коллекции объектов DictionaryEntry используйте параметр InputObject командлета Get-Member. Например, введите следующую команду: get-member -inputobject (get-childitem env:) При использовании параметра InputObject командлет Get-Member выполняет оценку всей коллекции, а не отдельных объектов из нее.
-------------------------- ПРИМЕР 2 --------------------------
Эта команда перечисляет значения свойств переменной среды WINDIR:
get-item env:windir | format-list -property *
Она использует командлет Get-Item для получения объекта, представляющего переменную среды WINDIR. Оператор конвейера (|) передает результаты команде Format-List. Команда использует параметр Property с подстановочным знаком (*) для форматирования и отображения значений всех свойств переменной среды WINDIR.
Изменение свойств переменной среды
-------------------------- ПРИМЕР 1 --------------------------
Эта команда использует командлет Rename-Item для изменения имени созданной переменной среды USERMODE на USERROLE:
rename-item -path env:USERMODE -newname USERROLE
Это изменение затрагивает свойства Name, Key и PSPath объекта DictionaryEntry. Не изменяйте имена переменных среды, используемых системой. Хотя эти изменения затрагивают только текущий сеанс, они могут привести к некорректному поведению системы или программы.
-------------------------- ПРИМЕР 2 --------------------------
Эта команда использует командлет Set-Item для присвоения переменной среды USERROLE значения Administrator:
set-item -path env:USERROLE -value Administrator
Копирование переменной среды
-------------------------- ПРИМЕР 1 --------------------------
Эта команда копирует значение переменной среды USERROLE в переменную среды USERROLE2:
copy-item -path env:USERROLE -destination env:USERROLE2
Удаление переменной среды
-------------------------- ПРИМЕР 1 --------------------------
Эта команда удаляет переменную среды USERROLE2 из текущего сеанса:
remove-item -path env:USERROLE2
Эту команду можно использовать на любом диске Windows PowerShell. Если диск Env: уже открыт, имя диска в пути можно не указывать.
-------------------------- ПРИМЕР 2 --------------------------
Эта команда удаляет переменную среды USERROLE.
clear-item -path env:USERROLE