Управление текущим расположением
При навигации по системам папок в проводнике у вас обычно есть определенное рабочее расположение, т. е. текущая открытая папка. Элементами в текущей папке можно легко управлять, щелкая их. Когда в интерфейсе командной строки (например, Cmd.exe) открыта папка, в которой находится определенный файл, вы можете получить к нему доступ, указав короткое имя, а не вводить весь путь к файлу. Текущий каталог называется рабочим.
PowerShell использует существительное расположение для ссылки на рабочий каталог и реализует семейство командлетов для изучения и управления расположением.
Получение текущего расположения (Get-Location)
Чтобы определить путь к текущему расположению каталога, введите Get-Location команду:
Get-Location
Path ---- C:\Documents and Settings\PowerUser
Командлет Get-Location аналогичен команде pwd в оболочке BASH. Командлет Set-Location аналогичен команде cd в Cmd.exe.
Настройка текущего расположения (задание расположения)
Команда Get-Location используется с командой Set-Location . Эта Set-Location команда позволяет указать текущее расположение каталога.
Set-Location -Path C:\Windows
После ввода команды обратите внимание, что вы не получаете прямых отзывов о влиянии команды. Большинство команд PowerShell, выполняющих действие, создают мало или нет выходных данных, так как выходные данные не всегда полезны. Чтобы убедиться, что при вводе Set-Location команды произошло успешное изменение каталога, включите параметр PassThru при вводе Set-Location команды:
Set-Location -Path C:\Windows -PassThru
Path ---- C:\WINDOWS
Параметр PassThru можно использовать со многими командами Set в PowerShell для возврата сведений о результатах в случаях, в которых выходные данные по умолчанию отсутствуют.
Вы можете указать пути относительно текущего расположения так же, как и в большинстве командных оболочек UNIX и Windows. В стандартной нотации для определения относительных путей точка ( . ) представляет текущую папку, а две точки ( .. ) — родительский каталог текущего расположения.
Например, если вы находитесь в папке C:\Windows , точка ( . ) представляет C:\Windows , а две точки ( .. ) представляют C: . Вы можете изменить текущее расположение на корень C: диска, введя следующее:
Set-Location -Path .. -PassThru
Path ---- C:\
Тот же метод работает на дисках PowerShell, которые не являются дисками файловой системы, например HKLM: . В реестре в качестве расположения можно задать раздел HKLM\Software , введя следующий код:
Set-Location -Path HKLM:\SOFTWARE -PassThru
Path ---- HKLM:\SOFTWARE
Затем можно изменить расположение каталога на родительский каталог, используя относительный путь:
Set-Location -Path .. -PassThru
Path ---- HKLM:\
Вы можете ввести Set-Location или использовать любой из встроенных псевдонимов PowerShell для Set-Location ( cd , chdir , sl ). Например:
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
Сохранение и отзыв последних расположений (Push-Location и Pop-Location)
При изменении расположений полезно следить за тем, где вы были и сможете вернуться в предыдущее расположение. Командлет Push-Location в PowerShell создает упорядоченную историю (стек) путей к каталогу, где вы были, и вы можете выполнить шаг назад в журнале путей к каталогу с помощью командлета Pop-Location .
Например, PowerShell обычно запускается в домашнем каталоге пользователя.
Get-Location Path ---- C:\Documents and Settings\PowerUser
Слово стек имеет специальное значение во многих параметрах программирования, включая .NET Framework. Например, в физическом стеке элементов последний элемент, помещенный в стек, является первым элементом, который можно извлечь из него. Добавление элемента в стек в разговорной речи называется «проталкиванием» элемента в стек. Извлечение элемента из стека в разговорной речи называется «выводом» элемента из стека.
Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:
Push-Location -Path "Local Settings"
После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:
Push-Location -Path Temp
Чтобы убедиться, что вы изменили каталоги, введите Get-Location команду:
Get-Location
Path ---- C:\Documents and Settings\PowerUser\Local Settings\Temp
Затем можно вернуться в последний посещаемый каталог, введя Pop-Location команду, и проверить изменение, введя Get-Location команду:
Pop-Location Get-Location
Path ---- C:\Documents and Settings\me\Local Settings
Как и в случае с командлетом Set-Location , вы можете включить параметр PassThru при вводе командлета Pop-Location , чтобы открыть указанный каталог:
Pop-Location -PassThru
Path ---- C:\Documents and Settings\PowerUser
Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер с именем FS01 с общим именем Public, вы можете изменить расположение, введя текст.
Set-Location \\FS01\Public
Push-Location \\FS01\Public
Вы можете использовать Push-Location команды и Set-Location команды, чтобы изменить расположение на любой доступный диск. Например, если у вас есть локальный диск CD-ROM с буквой D диска, содержащей компакт-диск данных, можно изменить расположение на компакт-диск, введя Set-Location D: команду.
Если диск пуст, вы получите следующее сообщение об ошибке:
Set-Location D:
Set-Location : Cannot find path 'D:\' because it does not exist.
При использовании интерфейса командной строки не удобно использовать проводник для проверки доступных физических дисков. Кроме того, проводник не отображаются все диски PowerShell. PowerShell предоставляет набор команд для управления дисками PowerShell.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Сменить директорию по умолчанию в PowerShell
Все подтягивается из профайла PS. Нужно создать и настроить свой профайл.
Для создания профиля PowerShell
- Создайте папку в папке Мои документы под названием WindowsPowerShell
- Создайте файл с именем profile.ps1 внутри этой папки
- Добавьте любые необходимые команды инициализации в этот файл и сохраните его
- Каждый раз, когда вы запускаете PowerShell , сценарий профиля будет выполнен
в этот файл можно добавить переход в нужную директорию
Подробнее в Get-Help about_profiles
Отслеживать
ответ дан 15 янв 2017 в 22:23
Senior Pomidor Senior Pomidor
12.7k 3 3 золотых знака 22 22 серебряных знака 42 42 бронзовых знака
большое спасибо, очень помогло. В созданном файле прописал set-location path/to/dir/ и потом запустил консоль от администратора, чтобы разрешить локально выполнять скрипты Set-ExecutionPolicy RemoteSigned
Установка PowerShell в Windows
Есть несколько способов установки PowerShell в Windows. Каждый метод установки предназначен для поддержки различных сценариев и рабочих процессов. Выберите метод, который оптимально подходит для вашего случая.
- Winget — рекомендуемый способ установки PowerShell на клиентах Windows
- Пакет MSI — лучший выбор для серверов Windows и сценариев корпоративного развертывания
- ZIP-пакет — самый простой способ «загрузить сторону» или установить несколько версий
- Используйте этот метод установки для Windows Nano Server, Windows IoT и систем на базе ARM
Команды установки, описанные в этой статье, предназначены для последнего стабильного выпуска PowerShell. Чтобы установить другую версию PowerShell, измените команду в соответствии с нужной версией. По следующим ссылкам вы перейдете на страницу выпуска для каждой версии в репозитории PowerShell в GitHub.
- Стабильный выпуск: https://aka.ms/powershell-release?tag=stable
- Выпуск LTS: https://aka.ms/powershell-release?tag=lts
- Предварительный выпуск: https://aka.ms/powershell-release?tag=preview
Ссылки для скачивания каждого пакета находятся в разделе Ресурсы на странице выпуска. Раздел ресурсов может быть свернут. В таком случае щелкните его, чтобы развернуть.
Установка PowerShell с помощью Winget (рекомендуется)
Программа командной строки Winget (Диспетчер пакетов Windows) позволяет пользователям обнаруживать, устанавливать, обновлять, удалять и настраивать приложения на клиентских компьютерах с Windows. Она является клиентским интерфейсом для службы Диспетчера пакетов Windows. Программа командной строки winget по умолчанию входит в состав Windows 11 и современных версий Windows 10 в качестве Установщика приложений.
Список системных требований и инструкции по установке см. в документации по winget. Winget недоступно в Windows Server 2022 или более ранних версиях.
Windows Server 2025 Preview Build 26085 и более поздних версий включает winget только Windows Server с рабочим возможностями . Дополнительные сведения см. в статье «Объявление о предварительной сборке Windows Server 26085».
Для установки PowerShell с помощью опубликованных пакетов winget можно использовать следующие команды:
Найдите последнюю версию PowerShell.
winget search Microsoft.PowerShellName Id Version Source ----------------------------------------------------------------- PowerShell Microsoft.PowerShell 7.4.2.0 winget PowerShell Preview Microsoft.PowerShell.Preview 7.5.0.2 wingetУстановите PowerShell основной или предварительной версии, используя параметр id .
winget install --id Microsoft.Powershell --source winget winget install --id Microsoft.Powershell.Preview --source wingetВ системах Windows с помощью процессора winget X86 или X64 устанавливается пакет MSI. В системах с помощью процессора winget Arm64 устанавливается пакет Microsoft Store (MSIX). Дополнительные сведения см. в разделе «Установка» из Microsoft Store.
Установка пакета MSI
Чтобы установить PowerShell в Windows, воспользуйтесь приведенными ниже ссылками для скачивания пакета установки с сайта GitHub.
- PowerShell-7.4.2-win-x64.msi
- PowerShell-7.4.2-win-x86.msi
После скачивания дважды щелкните файл установщика и следуйте инструкциям на экране.
Программа установки создает ярлык в меню Windows «Пуск».
- По умолчанию пакет устанавливается в каталог $env:ProgramFiles\PowerShell\ .
- Вы можете запустить PowerShell с помощью меню «Пуск» или файла $env:ProgramFiles\PowerShell\\pwsh.exe .
PowerShell 7.4 устанавливает в новый каталог и выполняется параллельно с Windows PowerShell 5.1. PowerShell 7.4 — это обновление на месте, которое удаляет предыдущие версии PowerShell 7. Предварительные версии PowerShell можно установить параллельно с другими версиями PowerShell.
- PowerShell 7.4 устанавливается в $env:ProgramFiles\PowerShell\7
- Папка $env:ProgramFiles\PowerShell\7 добавляется в переменную $env:PATH .
Если необходимо запустить PowerShell 7.4 параллельно с другими версиями, используйте метод установки ZIP для установки другой версии в другую папку.
Поддержка Центра обновления Майкрософт в PowerShell 7.2 и более поздней версии
PowerShell 7.2 и более поздней версии поддерживают Центр обновления Майкрософт. При включении этой возможности вы будете получать последние обновления PowerShell 7 в традиционном потоке управления клиентского компонента Центра обновления Майкрософт, будь то Центр обновления Windows для бизнеса, WSUS, Microsoft Endpoint Configuration Manager или интерактивное диалоговое окно Центра обновления Майкрософт в параметрах системы.
Пакет MSI PowerShell включает следующие параметры командной строки:
- USE_MU — Это свойство имеет два возможных значения:
- 1 (по умолчанию) — согласие на получение обновления с помощью Центра обновления Майкрософт, WSUS или Configuration Manager.
- 0 — Не выбирайте обновление с помощью Центра обновления Майкрософт, WSUS или Configuration Manager
- 1 (по умолчанию) — согласие на использование Центра обновления Майкрософт для автоматических обновлений.
- 0 — Не отказывайтесь от использования Центра обновления Майкрософт
Включение обновлений можно задать в предыдущей установке или в конфигурации вручную. Использование ENABLE_MU=0 не удаляет существующие параметры. Кроме того, этот параметр может быть переопределен параметрами групповой политики, управляемыми администратором.
Установка пакета MSI из командной строки
MSI-пакеты можно устанавливать из командной строки, что позволяет администраторам развертывать их без взаимодействия с пользователем. MSI-пакет включает в себя следующие свойства для управления параметрами установки:
- ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL — Это свойство управляет параметром добавления Open PowerShell элемента в контекстное меню в Windows Обозреватель.
- ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL — Это свойство управляет параметром добавления Run with PowerShell элемента в контекстное меню в Windows Обозреватель.
- ENABLE_PSREMOTING — Это свойство управляет параметром включения удаленного взаимодействия PowerShell во время установки.
- REGISTER_MANIFEST — Это свойство управляет параметром регистрации манифеста ведения журнала событий Windows.
- ADD_PATH — это свойство управляет параметром добавления PowerShell в переменную среды PATH в Windows.
- DISABLE_TELEMETRY — Это свойство управляет параметром отключения телеметрии PowerShell, задав POWERSHELL_TELEMETRY_OPTOUT переменную среды.
- INSTALLFOLDER — Это свойство управляет каталогом установки. Значение по умолчанию — $env:ProgramFiles\PowerShell\ . Это расположение, в котором установщик создает вложенную папку с версиями. Невозможно изменить имя вложенной папки с версиями.
- Для текущих выпусков вложенная папка с версиями 7
- Для предварительных версий вложенная папка имеет версию. 7-preview
В следующих примерах показано, как выполнить автоматическую установку PowerShell со всеми включенными параметрами.
msiexec.exe /package PowerShell-7.4.2-win-x64.msi /quiet ADD_EXPLORER_CONTEXT_MENU_OPENPOWERSHELL=1 ADD_FILE_CONTEXT_MENU_RUNPOWERSHELL=1 ENABLE_PSREMOTING=1 REGISTER_MANIFEST=1 USE_MU=1 ENABLE_MU=1 ADD_PATH=1Полный список параметров командной строки для Msiexec.exe см. здесь.
Установка ZIP-пакета
Для поддержки расширенных сценариев развертывания доступны ZIP-архивы двоичных файлов PowerShell. Скачайте один из следующих ZIP-архивов на странице с текущим выпуском.
- PowerShell-7.4.2-win-x64.zip
- PowerShell-7.4.2-win-x86.zip
- PowerShell-7.4.2-win-arm64.zip
В зависимости от способа загрузки файла может потребоваться разблокировать файл с помощью командлета Unblock-File . Распакуйте содержимое в выбранное расположение и запустите pwsh.exe . В отличие от установки пакетов MSI при установке ZIP-архива не выполняется проверка соответствия предварительным требованиям. Для правильного удаленного взаимодействия с помощью WSMan необходимо обеспечить соответствие предварительным требованиям.
Используйте этот метод для установки версии PowerShell на основе ARM на таких компьютерах, как Microsoft Surface Pro X. Чтобы получить оптимальные результаты, устанавливайте PowerShell в папку $env:ProgramFiles\PowerShell\7 .
Установка в качестве средства .NET Global
Если вы уже установили пакет SDK для .NET Core, установите PowerShell как глобальное средство .NET.
dotnet tool install --global PowerShellУстановщик инструмента dotnet добавляет $HOME\.dotnet\tools в переменную среды $env:PATH . Но в выполняющейся оболочке нет обновленной переменной $env:PATH . Вы можете запустить PowerShell из новой оболочки, введя pwsh .
Установка из Microsoft Store
PowerShell можно установить из Microsoft Store. Этот выпуск PowerShell можно найти на сайте Microsoft Store или в приложении Store в ОС Windows.
Пакет Microsoft Store обеспечивает следующие преимущества:
- автоматические обновления, встроенные непосредственно в Windows;
- интеграция с другими механизмами распространения программного обеспечения, такими как Intune и Configuration Manager.
- может устанавливаться в системах Windows с процессорами x86, x64 или Arm64.
Известные ограничения
По умолчанию пакеты Microsoft Store запускаются в песочнице приложений, которая виртуализирует доступ к некоторым разделам реестра и файловой системы. Изменения в виртуализированных расположений файлов и реестров не сохраняются вне песочницы приложения.
Эта песочница блокирует все изменения корневой папки приложения. Любые параметры конфигурации на уровне системы, хранящиеся в $PSHOME ней, не могут быть изменены. Это относится и к конфигурации WSMAN. Это означает, что вы не сможете подключать удаленные сеансы к установкам PowerShell на основе хранилища. Поддерживаются конфигурации уровня пользователя и удаленное взаимодействие по SSH.
Следующим командам требуется запись в $PSHOME . Эти команды не поддерживаются в экземпляре Microsoft Store PowerShell.
- Register-PSSessionConfiguration
- Update-Help -Scope AllUsers
- Enable-ExperimentalFeature -Scope AllUsers
- Set-ExecutionPolicy -Scope LocalMachine
Изменения в PowerShell 7.2
Начиная с версии PowerShell 7.2, для пакета PowerShell больше не действует виртуализация файлов и реестра. Изменения виртуальных папок с файлами и разделов реестра теперь будут сохраняться вне песочницы приложений. Однако изменения в корневой папке приложения по-прежнему блокируются.
Данное исключение действует только в сборках Windows от 1903 и выше.
Установка предварительной версии
Предварительные выпуски PowerShell 7 устанавливаются в $env:ProgramFiles\PowerShell\7-preview , поэтому их можно выполнять параллельно с выпусками PowerShell без предварительной версии. PowerShell 7.4 — следующий предварительный выпуск.
Обновление существующей установки
Для получения оптимального результата при обновлении используйте тот же метод установки, который вы использовали при первой установке PowerShell. Если вы не знаете, как была установлена PowerShell, можно проверка значение переменной $PSHOME , которое всегда указывает на каталог, содержащий PowerShell, который выполняется текущий сеанс.
- Если значение равно $HOME\.dotnet\tools , PowerShell был установлен с помощью средства .NET Global.
- Если значение равно $Env:ProgramFiles\PowerShell\7 , PowerShell был установлен как пакет MSI или winget на компьютере с процессором X86 или x64.
- Если значение начинается с $Env:ProgramFiles\WindowsApps\ , PowerShell был установлен как пакет Microsoft Store или с Winget на компьютере с процессором ARM.
- Если значение является чем-либо другим, скорее всего, PowerShell был установлен в качестве ZIP-пакета.
Если вы установили с помощью пакета MSI, эти сведения также отображаются в панель управления программ и компонентов.
Чтобы определить, может ли PowerShell быть обновлена с помощью Winget, выполните следующую команду:
winget list --name PowerShell --upgrade-availableЕсли доступно обновление, выходные данные указывают последнюю доступную версию.
При обновлении PowerShell не будет обновляться с версии LTS до версии, отличной от LTS. Он обновляется только до последней версии LTS, например с 7.2.3 до 7.2.19. Чтобы обновить выпуск LTS до более новой стабильной версии или следующей LTS, необходимо установить новую версию с MSI для этого выпуска.
Если установленная версия не является версией LTS, PowerShell обновляется до последней стабильной версии.
Развертывание в Windows 10 IoT Корпоративная
Windows 10 IoT Корпоративная поставляется со средой Windows PowerShell, которую можно использовать для развертывания PowerShell 7.
# Replace the placeholder information for the following variables: $deviceip = 'При настройке удаленного взаимодействия PowerShell появляется сообщение об ошибке и вы отключаетесь от устройства. PowerShell должен перезапустить WinRM. Теперь вы можете подключиться к конечной точке PowerShell 7 на устройстве.
# Be sure to use the -Configuration parameter. If you omit it, you connect to Windows PowerShell 5.1 Enter-PSSession -ComputerName $deviceIp -Credential Administrator -Configuration PowerShell.7.4.2Развертывание в Windows 10 IoT Базовая
Windows PowerShell добавляется в Windows 10 IoT Базовая, если вы включаете функцию IOT_POWERSHELL, которую можно использовать для развертывания PowerShell 7. Действия, описанные выше для Windows 10 IoT Корпоративная, могут быть выполнены и для центра Интернета вещей.
Чтобы добавить последнюю версию PowerShell в образ для доставки, используйте команду Import-PSCoreRelease для включения пакета в рабочую область и добавления OPENSRC_POWERSHELL в образ.
Для архитектуры ARM64 Windows PowerShell не добавляется при включении IOT_POWERSHELL. Поэтому установка на основе ZIP не работает. Для добавления в образ используйте команду Import-PSCoreRelease .
Развертывание на Nano Server
В этих инструкциях предполагается, что Nano Server — это ос без головы, которая уже запущена в PowerShell. Дополнительные сведения см. в разделе о средстве создания образов Nano Server.
Двоичные файлы PowerShell можно развернуть двумя разными способами:
- Автономно — подключите виртуальный жесткий диск Nano Server и распакуйте содержимое ZIP-файла в выбранное расположение в этом образе.
- В сети — передайте ZIP-файл через сеанс PowerShell и распакуйте его в выбранное расположение.
В обоих случаях требуется ZIP-пакет выпуска Windows 10 семейства x64. Выполните команды в экземпляре PowerShell с ролью администратора.
Автономное развертывание PowerShell
- С помощью любой служебной программы ZIP распакуйте пакет в каталог, находящийся внутри подключенного образа Nano Server.
- Отключите образ и загрузите его.
- Подключитесь к встроенному экземпляру Windows PowerShell.
- Следуйте инструкциям, чтобы создать конечную точку удаленного взаимодействия с помощью методики использования другого экземпляра.
Автономное PowerShell в сети
Разверните PowerShell в Nano Server, выполнив действия ниже.
# Replace the placeholder information for the following variables: $ipaddr = '' $credential = Get-Credential # $zipfile = 'PowerShell-7.4.2-win-x64.zip' # Connect to the built-in instance of Windows PowerShell $session = New-PSSession -ComputerName $ipaddr -Credential $credential # Copy the file to the Nano Server instance Copy-Item $zipfile c:\ -ToSession $session # Enter the interactive remote session Enter-PSSession $session # Extract the ZIP file Expand-Archive -Path C:\PowerShell-7.4.2-win-x64.zip -DestinationPath 'C:\Program Files\PowerShell 7'Если вам требуется удаленное взаимодействие на основе WSMan, следуйте инструкциям, чтобы создать конечную точку удаленного взаимодействия с помощью методики использования другого экземпляра.
Удаленное взаимодействие PowerShell
PowerShell поддерживает протокол удаленного взаимодействия PowerShell (PSRP) через SSH и WSMan. Дополнительные сведения см. в разделе:
- Удаленное взаимодействие через SSH в PowerShell
- Удаленное взаимодействие через WSMan в PowerShell
Чтобы включить удаленное взаимодействие PowerShell через WSMan в более старых версиях Windows, необходимо соблюдать следующие предварительные требования.
- Установите Windows Management Framework 5.1 (при необходимости). Подробные сведения о WMF см. в статье с обзором WMF.
- Установите универсальную среду выполнения C в Windows предшествующих Windows 10 версий. Ее можно скачать самостоятельно или через Центр обновления Windows. Этот пакет уже установлен в полностью исправленных системах.
Поддерживаемые версии Windows
В следующей таблице приведен список выпусков PowerShell и поддерживаемых версий Windows. Эти версии поддерживаются до окончания поддержки версии PowerShell или Windows.
- Значок указывает, что версия ОС или PowerShell по-прежнему поддерживается.
- Значок указывает, что версия PowerShell больше не поддерживается в этой версии ОС.
- Значок указывает, что мы не закончили тестирование PowerShell в этой ОС
- Значок указывает, что версия ОС или PowerShell не поддерживается
- Если версия ОС и версия PowerShell имеют значок, эта комбинация поддерживается.
Windows 7.2 (LTS-previous) 7.3 7.4 (LTS-current) Windows Server 2016, 2019 или 2022 Windows Nano Server (1809 или выше) Windows 11 Windows 10 1607 и выше Поддержка конкретной версии Windows определяется политиками жизненного цикла службы поддержки Майкрософт. Дополнительные сведения см. в разделе:
- Вопросы и ответы о жизненном цикле клиента Windows
- Вопросы и ответы о политике современного жизненного цикла
PowerShell поддерживается в Windows для перечисленных ниже архитектур процессора.
Windows 7.2 (текущая LTS) 7.3 7.4 (LTS-current) Windows Server 2016+ x64, x86 x64, x86 x64, x86 Windows Server Core 2016+ x64, x86 x64, x86 x64, x86 Nano Server версии 1803+ x64 x64 x64 Клиент Windows 11 x64, ARM64 x64, ARM64 x64, ARM64 Клиент Windows 10 x64, x86, ARM64 x64, x86, ARM64 x64, x86, ARM64 Вы можете проверить версию, которую вы используете, запустив winver.exe .
Поддержка установки
Корпорация Майкрософт поддерживает методы установки, изложенные в этом документе. В других источниках могут быть доступны сторонние методы установки. Хотя эти средства и методы могут работать, корпорация Майкрософт не может поддерживать эти методы.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Установка приложений с помощью менеджера пакетов PowerShell

08.06.2022

itpro

PowerShell, Windows 10

комментариев 13
В состав 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). Но они предназначены в первую очередь для программистов и системных администраторов.
Примечание. В Nano Server есть специальный еще провайдер NanoServerPackage, о нем в следующей статье.
Чтобы получить доступ к каталогу прикладного ПО, подключим популярный репозитарий ПО – 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.
Предыдущая статья Следующая статья