Как установить каталог PowerShell по умолчанию?
Есть ли способ изменить расположение PowerShell по умолчанию?
Как установить рабочий каталог PowerShell по умолчанию?
11 ответов
Вы можете указать каталог для открытия при запуске PowerShell:
Просто используйте его в своем ярлыке.
Или используйте профиль, чтобы задать начальный каталог.
Создайте профиль PowerShell следующим образом.
Запустите PowerShell от имени администратора и выполните следующую команду:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Это позволит PowerShell запускать локальные сценарии и сценарии, загруженные из Интернета, которые были подписаны. Дополнительные сведения об этой команде см. В документации .
В папке Documents найдите папку с именем WindowsPowerShell для классической оболочки PowerShell или PowerShell для более новой версии PowerShell Core. Если его не существует, ничего страшного; просто создай это.
Откройте profile.ps1 и добавьте следующую команду, чтобы установить рабочий каталог по умолчанию:
Откройте новое окно PowerShell . изменения должны были вступить в силу.
Это решение устанавливает текущую рабочую папку в то место, где находится скрипт. Обязательно поместите в начало вашего скрипта или, по крайней мере, перед тем, как вы попытаетесь использовать команду, полагающуюся на путь местоположения.
Более простой способ установить каталог по умолчанию:
-
Щелкните правой кнопкой мыши значок Windows PowerShell и закрепите его на начальном экране.
Щелкните правой кнопкой мыши значок Windows PowerShell в меню «Пуск» и снова щелкните правой кнопкой мыши Windows PowerShell и выберите «Свойства» (не Запуск от имени администратора , а не Windows PowerShell ISE ).
- На вкладке Ярлык -> поле «Начать в» перейдите в место, в котором должна запускаться PowerShell.
Сделайте это первой строкой в вашем Profile.ps1, и PowerShell Core (pwsh) откроется в каталоге, в котором вы сейчас работаете:
Установить-расположение (получить-расположение) .path
При этом, похоже, есть некоторая путаница в «рабочем каталоге» и «местоположении» PowerShell. Большинство людей здесь делают и говорят, что нужно изменить «местоположение» PowerShell. «Рабочий каталог» на самом деле другой. Вот статья это объясняет.
Для тех, кто не хочет читать статью: откройте PowerShell и используйте то, что говорят другие Set-Location «C:\some\directory» . Обратите внимание, что ваш «рабочий каталог» по-прежнему находится там, где был открыт PowerShell. Либо «
» , либо «%SYSTEMROOT%\system32» , в зависимости от того, работаете вы как администратор или нет. Чтобы проверить рабочий каталог, используйте [Environment]::CurrentDirectory .
Примечание: в статье автор предлагает проверить «рабочий каталог» с помощью этой команды:
Я не уверен, работает ли это со старыми версиями PowerShell, но с PowerShell 5 (и более поздними версиями) вы должны использовать [Environment]::CurrentDirectory .
How to change the directory to program files using Powershell?
Unlike command.com/cmd.exe, PowerShell follows much more consistent rules and in the failing case Program and Files\R..bin are parsed as two separate arguments, where the second is invalid in context (as cd only accepts a single non-named argument).
To fix this use quotes, eg.
With the quotes it is parsed as a string value which is supplied as a single argument (the string itself does not include the quotes, again unlike cmd.exe rules).
FWIW, cd is an alias for Set-Location. Run get-help cd for the details on how it can be used — include which optional (and named) parameters it does support.
Как изменить каталог установки программы powershell
My PowerShell prompt’s currently pointed to my C drive ( PS C:\> ). How do I change directory to a folder on my Q ( PS Q:\> ) drive?
The folder name on my Q drive is «My Test Folder».
![]()
8 Answers 8
Unlike the CMD.EXE CHDIR or CD command, the PowerShell Set-Location cmdlet will change drive and directory, both. Get-Help Set-Location -Full will get you more detailed information on Set-Location , but the basic usage would be
By default in PowerShell, CD and CHDIR are alias for Set-Location .
(Asad reminded me in the comments that if the path contains spaces, it must be enclosed in quotes.)
Как установить каталог PowerShell по умолчанию?
Есть ли способ изменить расположение PowerShell по умолчанию?
Как установить рабочий каталог PowerShell по умолчанию?
11 ответов
Вы можете указать каталог для открытия при запуске PowerShell:
Просто используйте его в своем ярлыке.
Или используйте профиль, чтобы задать начальный каталог.
Создайте профиль PowerShell следующим образом.
Запустите PowerShell от имени администратора и выполните следующую команду:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Это позволит PowerShell запускать локальные сценарии и сценарии, загруженные из Интернета, которые были подписаны. Дополнительные сведения об этой команде см. В документации .
В папке Documents найдите папку с именем WindowsPowerShell для классической оболочки PowerShell или PowerShell для более новой версии PowerShell Core. Если его не существует, ничего страшного; просто создай это.
Откройте profile.ps1 и добавьте следующую команду, чтобы установить рабочий каталог по умолчанию:
Откройте новое окно PowerShell . изменения должны были вступить в силу.
Это решение устанавливает текущую рабочую папку в то место, где находится скрипт. Обязательно поместите в начало вашего скрипта или, по крайней мере, перед тем, как вы попытаетесь использовать команду, полагающуюся на путь местоположения.
Более простой способ установить каталог по умолчанию:
-
Щелкните правой кнопкой мыши значок Windows PowerShell и закрепите его на начальном экране.
Щелкните правой кнопкой мыши значок Windows PowerShell в меню «Пуск» и снова щелкните правой кнопкой мыши Windows PowerShell и выберите «Свойства» (не Запуск от имени администратора , а не Windows PowerShell ISE ).
- На вкладке Ярлык -> поле «Начать в» перейдите в место, в котором должна запускаться PowerShell.
Сделайте это первой строкой в вашем Profile.ps1, и PowerShell Core (pwsh) откроется в каталоге, в котором вы сейчас работаете:
Установить-расположение (получить-расположение) .path
При этом, похоже, есть некоторая путаница в «рабочем каталоге» и «местоположении» PowerShell. Большинство людей здесь делают и говорят, что нужно изменить «местоположение» PowerShell. «Рабочий каталог» на самом деле другой. Вот статья это объясняет.
Для тех, кто не хочет читать статью: откройте PowerShell и используйте то, что говорят другие Set-Location «C:\some\directory» . Обратите внимание, что ваш «рабочий каталог» по-прежнему находится там, где был открыт PowerShell. Либо «
» , либо «%SYSTEMROOT%\system32» , в зависимости от того, работаете вы как администратор или нет. Чтобы проверить рабочий каталог, используйте [Environment]::CurrentDirectory .
Примечание: в статье автор предлагает проверить «рабочий каталог» с помощью этой команды:
Я не уверен, работает ли это со старыми версиями PowerShell, но с PowerShell 5 (и более поздними версиями) вы должны использовать [Environment]::CurrentDirectory .
Используя только командную строку, если файл уже существует, он будет добавлен к нему:
Установка приложений с помощью менеджера пакетов PowerShell
08.06.2022
itpro
PowerShell, Windows 10
комментариев 10
В состав Windows 10 разработчики включили новый PowerShell модуль с именем PackageManagement. Модуль PackageManagement (ранее назывался OneGet) позволяет из консоли PoSh устанавливать, управлять и удалять приложения и программы из некого внешнего (или локального) репозитория, а также управлять списком подключенных репозиториев. Проще говоря, в Windows 10/ Windows Server 2016 появилась возможность устанавливать программы из командной строки по аналогии с известной командой Linux apt-get install.
Модуль менеджера пакетов PackageManagement позволяет существенно упростить процедуру установки нового ПО. Вся установка по сути сводиться к выполнению одной команды PowerShell, и, самое главное, пользователю не нужно самостоятельно искать в интернете и выкачивать дистрибутивы софта, рискуя скачать устаревшую или зараженную версию. Установка проводится из доверенного источника программ. При обновлении программного обеспечения в репозитории, оно может быть автоматически обновлено на клиентах.
Модуль PackageManagement
Модуль PackageManagement уже встроен в Windows 10, а для его работы требуется PowerShell 5. Поэтому для работы менеджера пакетов в Windows 8.1 нужно сначала установить Windows Management Framework 5.0. Также Microsoft выпустила отдельный модуль для работы менеджера пакетов и на PowerShell версий 3 и 4.
Выведем список доступных командлетов PowerShell в модуле PackageManagement:
Get-Command -Module PackageManagement
В текущей версии модуля (v 1.0.0.1) имеются такие команды:
- Find-Package — поиск пакета (программы) в доступных репозиториях
- Get-Package — получить список установленных пакетов
- Get-PackageProvider — список провайдеров (поставщиков пакетов), доступных на компьютере
- Get-PackageSource — список доступных источников пакетов
- Install-Package — установить пакет (программу) на компьютере
- Register-PackageSource — добавить источник пакетов для провайдера

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

По умолчанию в системе имеются 2 установленных источника пакетов: nuget.org и PSGallery (официальная онлайн галерея скриптов PowerShell от MSFT). Но они предназначены в первую очередь для программистов и системных администраторов.
Чтобы получить доступ к каталогу прикладного ПО, подключим популярный репозитарий ПО – Chocolatey, содержащий на данный момент более 4500 различных программ.
Установим новый провайдер Chocolatey:
Подтвердим установку провайдера, нажав Y.

Сделаем Chocolatey доверенным источником пакетов, чтобы каждый раз при установке пакета не приходилось подтверждать установку.
Set-PackageSource -Name chocolatey -Trusted
Убедимся, что Chocolatey теперь присутствует среди доступных репозитариев приложений:

Name ProviderName IsTrusted Location
—- ———— ——— ———
PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2/
chocolatey Chocolatey True http://chocolatey.org/api/v2/
Установка приложений из репозитория Chocolatey
Рассмотрим теперь, как установить приложение (пакет) из репозитория Chocolatey.
Список доступных для установки приложения можно получить непосредственно на официальном веб сайте Chocolatey (https://chocolatey.org/packages)

Также можно найти и установить нужное приложение прямо из консоли PowerShell. Например, для просмотра pdf файлов нам понадобилось установить приложение Adobe Acrobat Reader. Т.к. мы не знаем полного названия приложения, для его установки нам нужно получить имя пакета в каталоге. Выполним поиск в репозитории по ключевому слову ‘adobe’:
Find-Package -Name *adobe* -Source Chocolatey
В консоли появится список всех пакетов по данному ключу. Нам нужен пакет adobereader (нужно использовать именно имя пакета из столбца Name).
Запускаем установку пакета Adobe Reader:
Install-Package -Name adobereader -ProviderName Chocolatey

Вверху окна PowerShell появится ползунок, свидетельствующий о начале загрузки пакета Adobe Reader. Сразу после окончания загрузки, приложение установится в системе.

Еще один пример. Допустим, нам понадобилось иметь на компьютере набор утилит SysInternals. Чтобы не качать его вручную, найдем пакет SysInternals в репозитарии Chocolatey и установим его.
Find-Package -Name Sysinternals | Install-Package
Т.к. пакет не требует установки, он сохраняется на компьютер и хранится в каталоге C:\Chocolatey\lib\. В нашем примере это каталог C:\Chocolatey\lib\sysinternals.2016.11.18\tools

Сразу несколько приложений можно установить всего одной командой:
Find-Package -Name firefox, winrar, notepadplusplus, putty, dropbox | Install-Package
Удаление пакета
Удаление приложения на компьютере выполняется также одной командой. К примеру, для удаления Adobe Reader, выполните команду:
Итак, мы рассмотрели новые возможности установки приложений в Windows из командной строки PowerShell. В ближайшем будущем, вероятно, появятся графические надстройки над модулем PackageManagement, позволяющие легко управлять установкой/удалением ПО и простым пользователям без навыков работы с CLI.
Примеры скриптов PowerShell для системного администрирования
Чтобы определить путь к текущему каталогу, введите команду Get-Location.
Командлет Get-Location аналогичен команде pwd в оболочке BASH. Командлет Set-Location аналогичен команде cd в Cmd.exe.
Настройка текущего расположения (Set-Location)
Команда Get-Location используется с командой Set-Location. Команда Set-Location позволяет вам указать расположение текущего каталога.
Обратите внимание, что после ввода команды вы не получите прямого отклика о действии команды. Большинство команд Windows PowerShell, выполняющих действия, практически не создают выходных данных, так как выходные данные не всегда полезны. Чтобы проверить успешность внесения изменения в каталог при вводе команды Set-Location, укажите параметр -PassThru при вводе команды Set-Location.
Параметр -PassThru можно использовать с некоторыми командами Set в Windows PowerShell для возврата сведений о результате, когда отсутствуют выходные данные по умолчанию.
Вы можете указать пути относительно текущего расположения так же, как и в большинстве командных оболочек UNIX и Windows. В стандартной нотации для относительных путей точка ( . ) представляет текущую папку, а две точки ( .. ) — родительский каталог текущего расположения.
Например, если вы находитесь в папке C:\Windows, точка ( . ) представляет C:\Windows, а две точки ( .. ) представляют C: . Текущее расположение можно изменить на корень диска C: путем ввода следующей команды:
Тот же метод работает для дисков Windows PowerShell, которые не являются дисками файловой системы, например HKLM: . В реестре в качестве расположения можно задать раздел HKLM\Software путем ввода следующего кода:
После этого можно изменить расположение каталога на родительский каталог, который является корнем диска Windows PowerShell HKLM: с помощью относительного пути:
Вы можете ввести Set-Location или использовать любой из встроенных псевдонимов Windows PowerShell для Set-Location (cd, chdir, sl). Пример:
Сохранение и отзыв последних расположений (Push-Location и Pop-Location)
При изменении расположения полезно отслеживать свое предыдущее расположение и иметь возможность вернуться к нему. Командлет Push-Location в Windows PowerShell создает упорядоченный журнал («стек») путей к каталогам, которые вы открывали, чтобы можно было вернуться по нему на шаг назад, используя дополнительный командлет Pop-Location.
Например, Windows PowerShell обычно запускается в корневом каталоге пользователя.
Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:
После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:
Чтобы убедиться, что каталоги изменены, введите команду Get-Location.
После этого можно перейти в последний открытый каталог, введя команду Pop-Location, и проверить изменение, введя команду Get-Location.
Как и в случае с командлетом Set-Location, можно включить параметр -PassThru при вводе командлета Pop-Location, чтобы открыть указанный каталог.
Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер FS01 с общей папкой Public, можно изменить расположение, введя
или диспетчер конфигурации служб
Чтобы изменить расположение на любой доступный диск, можно использовать команды Push-Location и Set-Location. Например, если у вас есть локальный дисковод компакт-дисков с буквой диска D, содержащий компакт-диск с данными, вы можете изменить расположение на него, введя команду Set-Location D: .
Если дисковод пуст, вы получите следующее сообщение об ошибке:
Работа с файлами и папками. Получение списка файлов и папок, содержащихся в папке.
Извлечь все элементы непосредственно из папки можно с помощью командлета Get-ChildItem . Для отображения скрытых и системных элементов добавьте необязательный параметр Force. Например, эта команда отображает непосредственное содержимое диска C Windows PowerShell (которое совпадает с содержимым физического диска C Windows):
Эта команда выводит только элементы, содержащиеся на диске непосредственно, так же как и команда DIR оболочки Cmd.exe или команда ls оболочки UNIX. Для показа вложенных элементов необходимо также указать параметр -Recurse . (Время выполнения этой операции будет очень велико.) Для вывода всего содержимого диска C введите:
Командлет Get-ChildItem позволяет отфильтровать элементы с помощью параметров Path, Filter, Include и Exclude, но обычно осуществляется лишь фильтрация по имени. Сложную фильтрацию на основе других свойств элементов можно выполнить с помощью Where-Object .
Следующая команда находит все исполняемые файлы в папке Program Files, которые были в последний раз изменены после 1 октября 2005 г. и размер которых не менее одного мегабайта и не более десяти мегабайт:
Копирование файлов и папок
Копирование выполняется с помощью командлета Copy-Item . Следующая команда создает резервную копию C:\boot.ini в C:\boot.bak:
Если целевой файл уже существует, то попытка копирования завершается неудачей. Чтобы перезаписать имеющийся целевой файл, используйте параметр Force.
Эта команда работает, даже если целевой объект доступен только для чтения.
Так же выполняется и копирование папок. Эта команда копирует папку C:\temp\test1 в новую папку C:\temp\DeleteMe рекурсивно.
Можно также скопировать избранные элементы. Следующая команда копирует все файлы TXT, содержащиеся в папке C:\data , в папку C:\temp\text :
Для копирования элементов файловой системы можно использовать и другие средства. В Windows PowerShell по-прежнему работают команды XCOPY, ROBOCOPY и такие COM-объекты, как Scripting.FileSystemObject. Например, можно воспользоваться COM-классом Scripting.FileSystem сервера сценариев Windows для создания резервной копии файла C:\boot.ini в файле C:\boot.bak :
Создание файлов и папок
Создание новых элементов осуществляется одинаковым образом всеми поставщиками Windows PowerShell. Если поставщик Windows PowerShell поддерживает более одного типа элементов (например, поставщик Windows PowerShell FileSystem различает каталоги и файлы), необходимо указать тип элемента.
Эта команда создает папку C:\temp\New Folder :
Эта команда создает пустой файл C:\temp\New Folder\file.txt .
При использовании параметра Force с командой New-Item для создания папки, которая уже существует, она не перезапишет и не заменит папку. Будет просто возвращен имеющийся объект папки. Однако, если использовать New-Item -Force в уже имеющимся файле, файл будет полностью перезаписан.
Удаление всех файлов и папок, содержащихся в папке
Удалить вложенные элементы можно с помощью командлета Remove-Item , однако он потребует подтверждения удаления, если элемент сам что-нибудь содержит. Например, при попытке удаления папки C:\temp\DeleteMe , которая содержит другие элементы, Windows PowerShell предварительно предложит подтвердить удаление этой папки:
Если подтверждение для каждого вложенного элемента нежелательно, задайте параметр Recurse:
Подключение локальной папки как диска
Отобразить локальную папку можно с помощью команды New-PSDrive . Следующая команда создает локальный диск P: , корневым каталогом которого является локальный каталог Program Files, отображающийся только в сеансе PowerShell:
Как и при использовании сетевых дисков, диски, отображенные в Windows PowerShell, немедленно становятся доступными оболочке Windows PowerShell. Чтобы создать подключенный диск, отображающийся в проводнике, нужен параметр -Persist . Но с этим параметром можно использовать только удаленные пути.
Чтение текстового файла в массив
Одним из наиболее общих форматов хранения текстовых данных является файл, отдельные строки которого рассматриваются как отдельные элементы. Командлет Get-Content используется для чтения всего файла за один шаг, как показано далее:
Командлет Get-Content сразу рассматривает данные, считанные из файла, как массив с одним элементом на строку содержимого файла. Убедиться в этом можно, проверив свойство Length полученного содержимого:
Эта команда наиболее полезна для непосредственного ввода в Windows PowerShell информационных списков. Например, можно хранить в файле C:\temp\domainMembers.txt список имен компьютеров или IP-адресов по одному имени на каждую строку файла. Вы можете использовать командлет Get-Content , чтобы извлечь содержимое файла и поместить его в переменную $Computers :
Теперь переменная $Computers представляет собой массив, содержащий в каждом элементе имя компьютера.
Работа с файлами, папками и разделами реестра
Перечисление файлов, папок и разделов реестра (Get-ChildItem)
Так как получение коллекции элементов из определенного расположения является обычной задачей, командлет Get-ChildItem разработан специально для возврата всех элементов, найденных в контейнере, например в папке.
Если необходимо вернуть все файлы и папки, которые находятся непосредственно в папке C:\Windows, введите:
Списки выглядят аналогично тем спискам, которые появляются при вводе команды dir в Cmd.exe или команды ls в командной оболочке UNIX.
С помощью параметров командлета Get-ChildItem можно создавать очень сложные списки. Далее рассмотрим несколько сценариев. Синтаксис командлета Get-ChildItem можно увидеть, введя:
Эти параметры можно скомбинировать и сопоставить для получения настраиваемых выходных данных.
Перечисление всех элементов в контейнере (-Recurse)
Чтобы увидеть оба элемента в папке Windows и все элементы во вложенных папках, используйте параметр Recurse для Get-ChildItem. В списке отображается все, что находится в папке Windows, а также элементы в ее вложенных папках. Пример:
Фильтрация элементов по имени (-Name)
Чтобы отобразить только имена элементов, используйте параметр Name для Get-Childitem:
Принудительное перечисление скрытых элементов (-Force)
В выходных данных команды Get-ChildItem не отображаются элементы, которые обычно невидимы в проводнике или Cmd.exe. Чтобы показать скрытые элементы, используйте параметр Force для Get-ChildItem. Пример:
Этот параметр называется Force, так как позволяет принудительно переопределить обычное поведение команды Get-ChildItem. Параметр Force широко используется для принудительного выполнения действия командлетом. Тем не менее, он не будет выполнять действия, компрометирующие систему безопасности.
Сопоставление имен элементов с подстановочными знаками
Команда Get-ChildItem допускает подстановочные знаки в пути к перечисляемым элементам.
Так как сопоставление с подстановочными знаками обрабатывается подсистемой Windows PowerShell, все командлеты, которые принимают подстановочные знаки, используют одну нотацию и имеют одно поведение сопоставления. В нотацию подстановочных знаков Windows PowerShell входит:
- Звездочка (*) — соответствует нулю или большему количеству вхождений любого символа.
- знак вопроса (?) — соответствует ровно одному символу;
- Открывающая квадратная скобка ([) и закрывающая квадратная скобка (]) — заключают в себя набор символов для сопоставления.
Далее приводится несколько примеров работы спецификации из подстановочных знаков.
Чтобы найти в каталоге Windows все файлы, имеющие суффикс .log и ровно пять символов в основном имени, введите следующую команду:
Чтобы найти в каталоге Windows все файлы с именами, начинающимися на букву x, введите:
Чтобы найти все файлы с именами, начинающимися на x или z, введите:
Исключение элементов (-Exclude)
Вы можете исключить определенные элементы с помощью параметра Exclude для Get-ChildItem. Это позволит вам выполнить сложную фильтрацию в одном операторе.
Например, предположим, что вы пытаетесь найти библиотеку службы времени Windows в папке System32 и все, что вам известно об имени библиотеки, — то, что оно начинается на W и содержит «32».
Выражение w*32*.dll найдет все библиотеки DLL, удовлетворяющие условию, но может также вернуть библиотеки Windows 95 и библиотеки, совместимые с 16-разрядной версией Windows, в именах которых содержится «95» или «16». Файлы с такими числами в именах можно пропустить, используя параметр Exclude с шаблоном *[9516]* :
Смешение параметров Get-ChildItem
В одной команде можно использовать несколько параметров Get-ChildItem. Перед тем как комбинировать параметры, убедитесь, что понимаете принципы сопоставления подстановочных знаков. Например, следующая команда не возвращает результатов:
Результаты отсутствуют, даже если существуют две библиотеки, которые начинаются на букву z в папке Windows.
Результаты не возвращены, так как подстановочный знак указан как часть пути. Хотя команда и была рекурсивной, командлет Get-ChildItem ограничил элементы до тех, которые находятся в папке Windows с именами, заканчивающимися на .dll.
Чтобы указать рекурсивный поиск для файлов, имена которых соответствуют специальному шаблону, используйте параметр -Include.
Работа с записями реестра. Создание списков записей реестра.
Существует несколько способов просмотра реестра. Самый простой — получить имена свойств, связанные с разделом. Например, чтобы просмотреть имена записей в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion , используйте Get-Item . Разделы реестра содержат свойство с универсальным именем Property, которое является списком записей реестра в разделе. Следующая команда выбирает свойство Property и расширяет элементы так, чтобы они отображались в списке:
Чтобы просмотреть записи реестра в более удобочитаемой форме, используйте Get-ItemProperty .
Все свойства Windows PowerShell раздела имеют префиксы PS, например PSPath, PSParentPath, PSChildName и PSProvider.
Для создания ссылки на текущее расположение можно использовать нотацию *.* . Set-Location можно использовать для изменения значения на контейнер реестра CurrentVersion.
Кроме того, можно использовать встроенный диск HKLM PSDrive с Set-Location .
Затем можно использовать нотацию *.* для текущего расположения, чтобы перечислить свойства без указания полного пути.
Расширение пути работает так же, как и в файловой системе, поэтому в этом расположении можно получить перечисление ItemProperty для HKLM:\SOFTWARE\Microsoft\Windows\Help с помощью Get-ItemProperty -Path ..\Help .
Получение одной записи реестра
Если необходимо получить конкретную запись в разделе реестра, можно использовать один из нескольких возможных подходов. Этот пример получает значение DevicePath в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion .
Вместе с Get-ItemProperty используйте параметр Path, чтобы указать имя раздела и параметр Name, а также имя записи DevicePath.
Эта команда возвращает стандартные свойства Windows PowerShell, а также свойство DevicePath.
Хотя Get-ItemProperty содержит параметры Filter, Include и Exclude, их нельзя использовать для фильтрации по имени свойства. Эти параметры относятся к разделам реестра (путям элементов), а не записям реестра. Записи реестра — это свойства элементов.
Другой вариант — использовать средство командной строки Reg.exe. Для получения справки по reg.exe введите reg.exe /? в командной строке. Чтобы найти запись DevicePath, используйте reg.exe, как показано в следующей команде:
Также можно использовать объект WshShell COM, чтобы найти некоторые записи реестра, хотя этот метод не работает с большими двоичными данными или именами записей реестра, содержащими такие символы, как \. Добавьте имя свойства с разделителем «\» в путь элемента:
Настройка одной записи реестра
Если необходимо изменить определенную запись в разделе реестра, можно использовать один из нескольких подходов. Этот пример изменяет запись Path в разделе HKEY_CURRENT_USER\Environment . Запись Path указывает расположение для поиска исполняемых файлов.
- Получите текущее значение записи Path с помощью Get-ItemProperty .
- Добавьте новое значение, отделив его с помощью ; .
- Используйте Set-ItemProperty с указанным разделом, именем записи и значением, чтобы изменить запись реестра.
Хотя Set-ItemProperty содержит параметры Filter, Include и Exclude, их нельзя использовать для фильтрации по имени свойства. Эти параметры относятся в разделам реестра (путям элементов), а не к записям реестра (свойствам элементов).
Другой вариант — использовать средство командной строки Reg.exe. Для получения справки по reg.exe введите reg.exe /? . в командной строке.
В следующем примере запись Path изменяется за счет удаления пути, добавленного в предыдущем примере. Get-ItemProperty по-прежнему используется для получения текущего значения, исключая анализ строки, возвращаемой reg query . Методы SubString и LastIndexOf используются для получения последнего добавленного пути в запись Path.
Создание новых записей реестра
Чтобы добавить новую запись реестра с именем PowerShellPath в раздел CurrentVersion, используйте New-ItemProperty с путем к разделу, именем записи и значением записи. В этом примере используется значение переменной Windows PowerShell $PSHome , в которой хранится путь к каталогу установки Windows PowerShell.
Вы можете добавить новую запись в раздел с помощью следующей команды, и команда также вернет сведения о новой записи:
Значение PropertyType должно быть именем элемента перечисления Microsoft.Win32.RegistryValueKind из следующей таблицы:
Запись реестра можно добавить в несколько расположений, указав массив значений для параметра Path:
Кроме того, можно перезаписать существующее значение записи реестра, добавив параметр Force в любую команду New-ItemProperty .
Переименование записей реестра
Чтобы переименовать запись PowerShellPath в PSHome, используйте Rename-ItemProperty .
Чтобы отобразить переименованное значение, добавьте параметр PassThru в команду.
Удаление записей реестра
Чтобы удалить записи реестра PSHome и PowerShellPath, используйте Remove-ItemProperty .
PowerShell change directory

PowerShell change directory is a terminology to navigate the file system through the cmdlets and they are very helpful in the script to work with the current files and folders or the relative path of the files and folders. Various cmdlets are useful for working with current locations, setting up the desired location, keeping the track of the previous location, and storing the locations in the stack and even location can be set for PSDrives like certificates, registry, etc.
Syntax
Hadoop, Data Science, Statistics & others
Below are the cmdlets used for the syntax to change the directory.
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
- Cd command to change the path.
cd -Path DirectoryPath -PassThru
- Set-Location command
Set-Location -Path DirectoryPath -PassThru
- Push-Location Command to push path into Stack.
Push-Location -Path DirectoryPath -PassThru
- Pop-Location command to pop the location from the stack.
Or to retrieve it from the particular stack,
Pop-Location -StackName stack1 -PassThru
How to change the directory in PowerShell?
To change the directory in a PowerShell, we use the various cmdlets. There are the absolute path and relative path in operating systems. Absolute path means the full path of the particular directory, file, or application. For example, C:\Windows\notepad.exe and the relative path means the direct path like Notepad.exe.
An absolute path can be accessed from any directory while the relative path can only accessible from the present directory unless any shortcut is created by the windows OS.
Set-Location command has aliases like (cd, sl, chdir) and we can use this command to change the location to the mentioned directory by using the absolute path or the relative path.
There is another way to change the location using the Push-Location command. When we specify the Push-Location command, PowerShell pushes the current location into the stack and then changes the location to the location specified by the path. Using the Pop-Location command uses the last location from the stack to change location.
By default, Push-Location uses the default stack to push locations but we can create a new stack and add new locations there.
Examples
Here are the following examples mention below
Example #1
Use the “cd” command to change location.
The above command will change the location to the C:\temp.

By default, the path parameter is included when you don’t specify anything. The above command is similar to,
cd -Path C:\Temp\ -PassThru
You can also use chdir or sl alias to set the above path for example.
chdir -Path C:\Temp\ -PassThru
sl -Path C:\Temp\ -PassThru
To change the directory to the previous location, you need to use “..” (double dot) syntax.
cd -Path .. -Passthru
Output:

Example #2
Using Set-Location command.
Although the above-mentioned examples are aliases of the Set-Location command, many scripts generally use the Set-Location command. We have already discussed the set path in the above example. In this example, we will discuss setting up the different PS locations like certificates, registry, etc, and using the stack to change the directory.
You can change the locations to the all below drives.
Output:

To set up the location for the certificate, use the below command.
PS C:\> Set-Location -Path Cert:\
Output:

You can check the current location using the Get-Location command.

You can return to the windows directory by changing the directory using any of the above commands.
Output:

Once you set the location to the certificate, you can browse the certificate paths and auto-completion also works with the TAB button. For example,
and to browse the content of the directory you can use the dir or Get-ChildItem command.
Similarly, to set the registry path for the Local Machine, we can use the below command.
Set-Location -Path HKLM:\SOFTWARE\
Example #3
Navigate location history through ‘+’ or ‘-‘.
PS C:\> Set-Location -Path HKLM:\HARDWARE\
PS HKLM:\HARDWARE\> Set-Location -Path $env:SystemRoot
PS C:\Windows> Set-Location -Path C:\
We have already set the locations as shown above. To navigate back through the history use the ‘-‘ (minus) sign using the Set-Location command.
PS C:\> Set-Location -Path —
PS C:\Windows> Set-Location -Path —
PS HKLM:\HARDWARE\>
To again move into the reverse direction, use the + (plus) syntax.
PS HKLM:\HARDWARE\> Set-Location -Path +
PS C:\Windows> Set-Location -Path +
PS C:\>
Example #4
Change directory using Push-Location command.
You can also change the directory using the Push-Location command. This command first pushes the current location into the stack and then navigates through the provided location. In PowerShell, you can consider the stack means Queue which works in LIFO order (Last In First Out). An example is shown below.
PS C:\> Push-Location C:\Temp\
PS C:\Temp>
In the above example, the Current location is C: and Push-Location saves that location to the default stack (as we haven’t provided stack name) and navigates to the C:\temp location. You can check the location stored in the stack using the below command.
Output:

When you navigate to another location using the Push-Location command,
Check the stack locations again,
Output:

When we use the Pop-Location command the locations will be retrieved in sequential order (LIFO).
To navigate the location using the Push Command with new stack name,
Push-Location C:\Temp\Data\ -StackName Newstack
Check location new stack.
Get-Location -StackName NewStack
Output:

Example #5
Pop-Location command to change directory.
Pop-Location retrieves the last inserted location from the stack. When the stack name is not provided, the default stack is used.
PS C:\Temp\Data> Get-Location -Stack
Output:

When we use the Pop-Location command, C:\temp will be retrieved first and then C:\ in the LIFO order.
PS C:\Temp\Data> Pop-Location
PS C:\Temp> Pop-Location
PS C:\>
To use the Pop-Location command for the different stack,
Pop-Location -StackName Newstack
Conclusion
There are various commands to navigate through the directory and we can directly use them in a console or we can use them in the script as well. They are useful in the script to navigate the path when the script executes.
Recommended Articles
This is a guide to the PowerShell change directory. Here we discuss How to change the directory in PowerShell along with the examples and outputs. You may also have a look at the following articles to learn more –