Change directory in 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
Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. Ранее я вас научил производить установку Windows 11, показал где брать установочный образ. В данной новой ОС есть много новых командлетов PowerShell и еще больше дополнительных модулей, расширяющих функционал. Сегодня я вам покажу, как устанавливать и управлять модулями PowerShell, как их сохранять и переносить на другой компьютер. Думаю, что многие из вас найдут для себя много полезной информации.
Что такое модуль PowerShell?
Модуль PowerShell — это совокупность функций PowerShell или сгруппированного кода, сосредоточенного вокруг общей основной темы. Все командлеты и поставщики PowerShell добавляются модулем или оснасткой.
Получатели этих модулей могут добавлять команды, содержащиеся в модуле, в свои сеансы PowerShell, чтобы использовать их как встроенные команды. Чтобы успешно сориентировать все функции в модуле вокруг одной и той же концепции, необходимо следовать некоторым рекомендациям, таким как отношения подсказок имен. напр. модуль Active Directory содержит функции, которые так или иначе взаимодействуют с Active Directory. Кроме того, все существительные в именах функций начинаются с AD, поэтому определенные функции легче обнаружить с организованной структурой имени.
Различные типы модулей PowerShell
Существует 4 различных типа модулей PowerShell:
- Скриптовые модули — Самый распространенный тип модуля, не требующий знания C#, в основном любые файлы PSM1, содержащие в основном функции и код, используемые разработчиками скриптов и администраторами.
- Бинарные модули — Содержат скомпилированный код на основе сборки .NET Framework (DLL), используемый разработчиками командлетов для создания модулей, содержащих командлеты, поставщиков и т. д.
- Модули манифеста — Скриптовые модули, содержащие манифест, например, с информацией об авторе и т. д.
- Динамические модули — Специальный тип модуля, который никогда не записывается на диск и существует только в памяти. Элементы динамического модуля (функции/переменные) сразу же доступны в сеансе PowerShell, пока сеанс не будет закрыт.
Где хранятся модули PowerShell
Для того, чтобы найти у себя в системе место хранения модулей PowerShell, вам нужно воспользоваться командой:
- C:\Windows\System32\WindowsPowerShell\v1.0\Modules
- C:\Program Files\WindowsPowerShell\Modules (По умолчанию все установленные модули для всех пользователей помещаются в папку модуля)
- C:\Program Files (x86)\VMware\Infrastructure\PowerCLI\Modules
- C:\Users\Имя пользователя\Documents\WindowsPowerShell\modules (Например в случае с PSTerminalServices)
Установка модулей PowerShell
Установка модулей очень простой процесс. Чтобы найти установленные, но еще не запущенные модули, запустите теперь известную команду Get-Module -ListAvailable.
Чтобы получить список только импортированных модулей в текущем сеансе, просто запустите Get-Module.
Далее при наличии на компьютере интернета произведем поиск нужного модуля, например VMware . PowerCLI. Для этого есть командлет Find-Module. Выполним команду:
Можно найти модули с похожими именами. например все, что связано с Vmware.
Можно найти модуль по минимальной версии или по конкретной версии.
Find-Module -Name VMware . PowerCLI -RequiredVersion 12.5.0.19195797
Дополнительные ключи смотрите по ссылке — https://docs.microsoft.com/en-us/powershell/module/powershellget/find-module?view=powershell-7.2 .
Далее найдя нужный модуль, установим его, выполните команду.
Еще можно объединять команды:
Дополнительные ключи смотрите по ссылке — https://docs.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershell-7.2
Как сохранить модули PowerShell
Бывают ситуации, когда у вас в системе нет интернета, а необходимость в модуле есть. Тут можно перенести заранее сохраненные модули на такую автономную системы, через флешку, или копирование по сети. Но для начала их нужно сохранить, для этого вы можете выполнить такую команду:
После переноса не забываем импортировать модуль, и если потребуется, то подкрутить политику ExecutionPolicy. Чтобы импортировать удаленный модуль, сначала необходимо создать PSSession (через New-PSSession ). Следующим шагом является импорт модуля, доступного на удаленном устройстве.
Чтобы удалить модуль, команда Remove-Module выполняет эту работу. После удаления все команды, которые когда-то был добавлен модулем, удаляются из сеанса, это работает как реверсия импорта модуля. Обратите внимание, что из локальной сессии будет удален только модуль, но без удаления файлов модуля.
Удаленное использование модуля с другого компьютера
Вам никто не мешает создать некий такой репозиторий модулей PowerShell на отдельной виртуальной машине и обращаться к ним удаленно. Установим для начала сессию с удаленным компьютером.
Удостоверимся, что на удаленном сервере есть нужные нам модули, через команду:
импортируем теперь в свою текущую сессию нужный модуль с удаленного сервера:
После завершите сеанс, когда закончите:
Еще можно использовать командлет Invoke-Command. Тут вы подключаетесь к удаленному серверу и импортируете модуль.
Сохраним на локальный компьютер нужный нам модуль.
Данная команда создаст на вашем компьютер новый PowerShell модуль VMware . PowerCLI (в каталоге C:\Program Files\WindowsPowerShell\Modules ). Сами командлеты при этом не копируются. Далее закройте сессию.
Теперь его можно локально импортировать и использовать.
Как удалить модуль PowerShell
Для удаления модуля со всеми файлами есть командлет Uninstall-Module. Выполните команду:
Где найти сторонние модули и скрипты PowerShell?
Помимо предустановленных модулей самой Windows PowerShell, существует огромное количество сторонних модулей. Для поиска конкретных модулей я рекомендую PowerShellGallery. Он функционирует как центральный репозиторий для обмена и получения кода PoSh, такого как модули, скрипты и многое другое. В основном они распространяются через PSRepository, которые обычно представляют собой веб-серверы, на которых можно публиковать файлы, тогда как эти PSRepos можно размещать у себя или использовать с помощью онлайн-опций, таких как PowerShellGallery. Get-PSRepository откроет список доступных PSRepositories, помеченных информацией о том, публикует ли источник код, одобренный Microsoft или нет ( trusted/untrusted ). Чтобы изменить состояние доверия PowerShellGallery, например, используйте:
Установка приложений с помощью менеджера пакетов 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 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.