как установить приложение через powershell

Установка приложений с помощью менеджера пакетов PowerShell

В состав 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:

В текущей версии модуля (v 1.0.0.1) имеются такие команды:

как установить приложение через powershell

Провайдеры пакетов

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

как установить приложение через powershellПо умолчанию в системе имеются 2 установленных источника пакетов: nuget.org и PSGallery (официальная онлайн галерея скриптов PowerShell от MSFT). Но они предназначены в первую очередь для программистов и системных администраторов.

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

Установим новый провайдер Chocolatey:

Подтвердим установку провайдера, нажав Y.

как установить приложение через powershellСделаем Chocolatey доверенным источником пакетов, чтобы каждый раз при установке пакета не приходилось подтверждать установку.

Убедимся, что Chocolatey теперь присутствует среди доступных репозитариев приложений:

как установить приложение через powershell

Установка приложений из репозитория Chocolatey

Рассмотрим теперь, как установить приложение (пакет) из репозитория Chocolatey.

Список доступных для установки приложения можно получить непосредственно на официальном веб сайте Chocolatey (https://chocolatey.org/packages)

как установить приложение через powershell

Также можно найти и установить нужное приложение прямо из консоли PowerShell. Например, для просмотра pdf файлов нам понадобилось установить приложение Adobe Acrobat Reader. Т.к. мы не знаем полного названия приложения, для его установки нам нужно получить имя пакета в каталоге. Выполним поиск в репозитории по ключевому слову ‘adobe’:

В консоли появится список всех пакетов по данному ключу. Нам нужен пакет adobereader (нужно использовать именно имя пакета из столбца Name).

Запускаем установку пакета Adobe Reader:

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

как установить приложение через powershell

Еще один пример. Допустим, нам понадобилось иметь на компьютере набор утилит SysInternals. Чтобы не качать его вручную, найдем пакет SysInternals в репозитарии Chocolatey и установим его.

как установить приложение через powershell

Сразу несколько приложений можно установить всего одной командой:

Удаление пакета

Удаление приложения на компьютере выполняется также одной командой. К примеру, для удаления Adobe Reader, выполните команду:

Итак, мы рассмотрели новые возможности установки приложений в Windows из командной строки PowerShell. В ближайшем будущем, вероятно, появятся графические надстройки над модулем PackageManagement, позволяющие легко управлять установкой/удалением ПО и простым пользователям без навыков работы с CLI.

Источник

Работа с программами установки программного обеспечения

Доступ к приложениям, использующим установщик Windows, можно получить в классе Win32_Product WMI, но не все современные приложения используют установщик Windows. Установщик Windows обычно не управляет приложениями, использующими другие процедуры установки. Конкретные техники работы с этими приложениями зависят от программного обеспечения установщика и решений, принятых разработчиком приложения. Например, для управления приложениями, установленными путем копирования файлов в папку на компьютере, обычно не используются описанные здесь методы. Вы можете управлять этими приложениями, как файлами и папками, с помощью способов, приведенных в статье Работа с файлами и папками.

Класс Win32_Product не оптимизирован для запросов. Если выполняются запросы, использующие фильтры с подстановочными знаками, то WMI будет использовать поставщика MSI для перечисления всех установленных продуктов, а затем последовательно проанализирует весь список с применением фильтра. При этом также инициируется проверка согласованности установленных пакетов для проверки и исправления установки. Проверка выполняется медленно и может привести к ошибкам в журнале событий. Подробные сведения см. в статье базы знаний 974524.

Создание списков приложений установщика Windows

Чтобы создать список приложений, установленных с помощью установщика Windows в локальной или удаленной системе, используйте следующий простой запрос WMI:

Чтобы отобразить все свойства объекта Win32_Product, используйте параметр Properties командлетов форматирования, например Format-List со значением * (все).

Чтобы получить список только интересующих вас свойств, используйте параметр Property командлетов форматирования.

Создание списка всех удаленных приложений

Так как большинство стандартных приложений регистрируют программу удаления в Windows, с ними можно работать локально, в реестре Windows. Не существует гарантированного способа найти все приложения в системе. Но можно найти все программы в списках, отображаемых в окне Установка и удаление программ в следующем разделе реестра:

В этом разделе можно найти приложения. Чтобы упростить просмотр раздела Uninstall, можно сопоставить диск PowerShell с таким путем реестра:

Теперь диск с именем «Uninstall» можно использовать для быстрого и удобного поиска установок приложений. Количество установленных приложений можно найти, подсчитав количество разделов реестра в разделе «Удаление»: Диск PowerShell:

Чтобы отобразить значения записей реестра в подразделах реестра раздела «Удаление», используйте метод GetValue. Значение метода является записью реестра.

Например, чтобы найти отображаемые имена приложений в разделе «Удаление», используйте следующую команду:

Нет никакой гарантии, что значения DisplayName уникальны.

Установка приложений

Вы можете использовать класс Win32_Product для удаленной или локальной установки пакетов установщика Windows.

Чтобы установить приложение, запустите PowerShell, используя параметр «Запуск от имени администратора».

Если установка выполняется удаленно, используйте сетевой UNC-путь, чтобы указать путь к пакету MSI, так как подсистема WMI не распознает пути PowerShell. Например, чтобы установить пакет NewPackage.msi, расположенный в сетевой папке \\AppServ\dsp на удаленном компьютере PC01, введите следующую команду в командной строке PowerShell:

Приложения, которые не используют метод установщика Windows, могут включать специальные методы для автоматического развертывания конкретного приложения. Изучите документацию по приложению или обратитесь в службу поддержки поставщика приложения.

Удаление приложений

Удаление пакета установщика Windows с помощью PowerShell работает примерно так же, как и установка пакета. Далее представлен пример, в котором пакет для удаления выбирается на основе имени. В некоторых случаях его может быть проще отфильтровать с помощью IdentifyingNumber:

Удаление других приложений не так просто, даже если оно выполняется локально. Строки удаления командной строки для этих приложений можно найти путем извлечения свойства UninstallString. Этот способ работает для приложений установщика Windows и более старых программ, отображающихся в разделе «Удаление»:

Выходные данные при необходимости можно отфильтровать по отображаемому имени:

Возможно, что эти строки нельзя будет напрямую использовать из командной строки PowerShell без внесения некоторых изменений.

Обновление приложений установщика Windows

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

Источник

Установка программ средствами PowerShell в Windows 10

Установка программ средствами PowerShell в Windows 10

Несмотря на то, что эта функциональная возможность появилась еще в апреле 2014-го года вместе с выходом Windows Management Framework 5.0 Preview, нативной она смогла стать только с окончательным релизом «десятки». Итак, давайте же посмотрим, какой модуль отвечает за эту функциональную возможность и как можно проинсталлировать программные продукты, не загружая инсталляционные файлы.

Модуль Windows PowerShell OneGet

Еще с выходом Windows Management Framework 5.0 Preview у командной оболочки Windows PowerShell появилось несколько новых возможностей, предназначенных для упрощения управления компьютерами. К таким возможностям относятся две занимательные технологии, а именно: Windows PowerShell Desired State Configuration и Certified for Windows Network Switches.

В случае с технологией Certified for Windows Network Switches – был добавлен ряд командлетов Windows PowerShell, отвечающих за управление сертифицированными для Windows сетевыми коммутаторами. То есть, появилось 19 новых командлетов, которые вы можете найти, выполнив в оболочке PowerShell команду «Get-Command *-NetworkSwitch*». Так как технология достаточно серьезная и заслуживает отдельного внимания, в данной статье я ограничусь лишь небольшим описанием и не буду рассматривать эту технологию более подробно.

А вот на второй технологии следует остановиться подробнее. В случае установки Windows Management Framework 5 или операционной системы Windows 10 вы можете воспользоваться средством, позволяющим существенно упростить на ваших компьютерах поиск и установку программного обеспечения. Таким средством является OneGet. OneGet – это агрегатор управления пакетами, то есть модуль, использующий специальные репозитории, предоставляющий единый интерфейс для обнаружения, установки и инвентаризации программного обеспечения. Иначе говоря, эта технология с одной стороны предоставляет набор командлетов, позволяющих конечному пользователю управлять инсталляционными пакетами (о которых мы с вами будем говорить немного ниже), а с другой стороны она предоставляет интерфейс для написания пакетов поставщиков.

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

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

Полный список поставщиков OneGet с их кратким описанием вы можете найти по следующей ссылке.

Далее в этой статье мы будем работать с поставщиком Chocolatey, который позволяет выполнять автоматическую установку большинства программных продуктов.

Сам модуль OneGet включает в себя 10 командлетов Windows PowerShell, большинство которых будут рассмотрены в следующем разделе настоящей статьи. К этим командлетам относятся:

Установка программного обеспечения при помощи OneGet

Вот и настало время самого процесса установки программных продуктов. Далее вы увидите, как можно установить поставщик пакетов, найти требуемое программное обеспечение, установить его, а также как можно удалить ненужное приложение и загрузить себе на компьютер инсталляционный пакет программного продукта. Начнем по порядку.

Установка поставщика пакетов Chocolatey

как установить приложение через powershell

как установить приложение через powershell

Теперь мы можем сгенерировать полный список всех доступных в поставщиках пакетов и передать его по конвейеру командлету Export-CliXML для создания XML-представления объектов и их сохранения в XML-файле. Учтите, что экспортируемый вами список будет постоянно меняются и со временем все больше и больше пакетов будут добавляться в используемые вами репозитории. Соответственно, не забывайте время от времени заменять экспортируемый вами файл. Для того чтобы выполнить экспорт списка пакетов и сохранить этот список в папке C:\TestPosh вам нужно выполнить следующую команду: Find-Package | Export-CliXML C:\TestPosh\Test.xml

Учтите, что процедура экспорта обязательно займет у вас какое-то время. После того как команда закончит выполняться и у вас на компьютере будет создан XML файл, импортируйте его и, для удобства просмотра, при помощи конвейера и команды GridView, отвечающей за отображение результатов выполнения команды в окне в виде интерактивной таблицы, можете посмотреть, какие пакеты будут доступны для установки. Естественно, этот список пакетов вы можете открыть при помощи любого приложения, которое способно обрабатывать XML файлы, например, средствами того же Excel. Данная команда, как вы видите на следующей иллюстрации, выглядит следующим образом: Import-CliXML С:\TestPosh\Test.xml | Out-GridView

как установить приложение через powershell

Рис. 4. Просмотр списка пакетов, доступных для установки.

Так как поставщик уже установлен, можно переходить к следующей части данной процедуры, а именно к

Установке программного обеспечения средствами PowerShell

Прежде чем устанавливать программные продукты нам следует посмотреть, что же уже установлено на компьютере. Для выполнения этой задачи вы можете воспользоваться командлетом Get-Package, который возвращает список всех пакетов программного обеспечения, установленных на локальном компьютере как с помощью OneGet, так и другими средствами инсталляции приложений. При желании вы также можете запускать командлет Get-Package и на удаленных компьютерах, запустив его как часть Invoke-Command, команды Enter-PSSession или скрипта.

как установить приложение через powershell

Рис. 5. Вывод командлета Get-Package.

Перед инсталляцией программного обеспечения попробуем определиться с тем, что же нам нужно установить. Так как на машине установлен только офис 2013 и еще несколько приложений, далее я вам покажу, как можно установить такие программные продукты, как Adobe Creative Cloud, Adobe Reader, Notepad++, а также Process Explorer, Process Monitor и WinRar.

Ввиду того, что до самого процесса инсталляции нам нужно сами пакеты локализовать, следует воспользоваться возможностями командлета Find-Package. Как вы уже заметили немного ранее, данный командлет позволяет выполнять поиск инсталляционных пакетов в доступных на локальном компьютере источниках пакетов. В том случае, если вы не будете использовать с данным командлетом какие-либо параметры, вам будет выведен командой полный список всех приложений, как было заметно ранее.

как установить приложение через powershell

Рис. 6. Установка Adobe Creative Studio

как установить приложение через powershell

Рис. 7. Установка программного продукта определенной версии

как установить приложение через powershell

Рис. 8. Установка Notepad++

как установить приложение через powershell

Рис. 9. Установка нескольких программ одновременно

Сохранение и удаление программ

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

Для того чтобы сохранить инсталляционный пакет можно воспользоваться очередным командлетом модуля OneGet, а именно модулем Save-Package. Данный командлет позволяет сохранить пакеты на локальном компьютере без их последующей установки. По умолчанию данный командлет сохраняет последнюю версию программного продукта, однако если вы к текущему командлету добавите параметр AllVersions, у вас на компьютере будут сохранены все размещенные в репозитории версии выбранной вами программы. Более того, аналогично параметрам командлетов поиска и установки программ, помимо сохранения всех версий, при помощи параметров -MaximumVersion и –MinimumVersion, вы еще можете выбрать диапазон версий пакета, который желаете сохранить. Чтобы сохранить пакет на своем компьютере, помимо параметра Name и, в случае необходимости, параметра, отвечающего за версию продукта, вы должны указать параметр Path с будущим расположением вашего инсталлятора.

Как видно на следующей иллюстрации, команда Save-Package –Name Procexp –Path C:\TestPosh сохранит последнюю версию Process Explorer в папке C:\TestPosh:

как установить приложение через powershell

Рис. 10. Сохранение Process Explorer на компьютере

Если вы случайно установили не тот пакет, вы всегда можете при помощи модуля OneGet его удалить. Для этого используется командлет Uninstall-Package. Как и в случае с остальными командлетами данного модуля, для удаления программы вам нужно указать параметр Name с соответствующим именем приложения, а также, для тихого удаления, вы можете использовать параметр Force. Например, чтобы удалить с компьютера установленный ранее WinRAR вам нужно выполнить следующую команду: Uninstall-Package –Name WinRAR –Force, как показано ниже:

как установить приложение через powershell

Рис. 11. Удаление установленной программы

Заключение

Из этой статьи вы узнали об одной из особенностей новой операционной системы от Microsoft, а именно об инсталляции программных продуктов средствами командной оболочки Windows PowerShell. Я вам рассказал о самом модуле OneGet, об основной терминологии, используемой наряду с этой технологией и о том, какие существуют предустановленные поставщики пакетов. Вы узнали о том, как можно подключить к OneGet сторонний поставщик пакетов и как при его помощи можно находить, устанавливать, сохранять и удалять программные продукты.

Источник

Как установить приложение через powershell

как установить приложение через powershell

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в рунете Pyatilistnik.org. В прошлый раз мы с вами успешно разобрали утилиту по диагностике Active Directory под названием repadmin. Идем далее и сегодня я вам покажу, как производится установка пакетного менеджера Microsoft winget (Windows Package Manager). Рассмотрим список команд Winget и как их можно использовать в повседневной жизни. Все проделывать буду на Windows 10.

Разработчики Windows уже давно с завистью смотрят на избыток менеджеров пакетов в Linux. Наличие простого инструмента командной строки, такого как apt или rpm, который установит приложение и все его необходимые компоненты, упрощает установку цепочки инструментов. Все, что вам нужно, это сценарий, который объединяет в цепочку список инструментов.

Такого никогда не было в средах Microsoft, по крайней мере, до появления шаблонов Azure CLI и ARM. Но они предназначены только для облака или для управляемых систем Azure Arc. Они работают на более высоком уровне, чем инструменты, устанавливающие редактор, служебную программу или компилятор, обеспечивая полную инфраструктуру. У пользователей Windows был выбор стороннего Chocolatey, основанного на PowerShell и работающего с собственными установщиками Windows, но это не шло из коробки.

В течение долгого времени люди просили встроенный диспетчер пакетов в Windows и Microsoft Build Microsoft создала версию диспетчера пакетов Windows под названием WinGet. Менеджер пакетов может помочь вам сэкономить время и быстро установить программное обеспечение и инструменты на ваш компьютер. Разработчики и ИТ-специалисты давно хотели иметь собственный менеджер пакетов в Windows, и с WinGet вы это получите.

Winget, это также первая итерация встроенного диспетчера пакетов для Windows, тесно связанная с различными альтернативами и с открытым исходным кодом, особенно с AppGet. Он публикуется на GitHub. Он имеет архитектуру, аналогичную большинству менеджеров пакетов, с использованием манифестов для описания приложений и их требований, с центральным управляемым репозиторием для манифестов, каждый из которых ссылается на сайты загрузки для установщиков приложений.

Способы установить WinGet Windows Package Manager в Windows 10

Для того, что получить и установить Windows Package Manager 1.0 и выше вам необходимо выполнить одно из требований:

Установка менеджера пакета WinGet через Microsoft Store

Данный метод очень простой, тут будет использоваться установщик приложения. Microsoft App Installer для Windows 10 существенно упрощает загрузку неопубликованных приложений для Windows 10. Перейдите на страницу с Microsoft App Installer.

В правой части страницы нажмите «Получить«

как установить приложение через powershell

Далее подтвердите, что подтверждаете открытие данного приложения через Microsoft Store

как установить приложение через powershell

Если у вас выскакивает ошибка при скачивании Microsoft App Installer, то нужно посмотреть причину в подробных сведениях. Если проблем нет, то Microsoft App Installer установится без проблем.

как установить приложение через powershell

В итоге Microsoft App Installer жалуется, что центр обновления Windows отключен.

как установить приложение через powershell

Установка менеджера пакета WinGet через GitHub и PowerShell

Как я и писал выше весь открытый код Winget выложен на портале GitHub. Суть установки WinGet заключается в том, что необходимо скачать и установить appxbundle пакет. Для этого перейдите по ссылке, где есть список всех релизов и версий:

На момент написания статьи актуальной версией является Windows Package Manager v1.0.11451. Снизу вы увидите список доступных файлов, Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle это и есть сам пакет с утилитой WinGet.

как установить приложение через powershell

Далее вы просто щелкаете по данному пакету и устанавливаете его. Вас уведомят, хотите ли вы обновить установщик приложений, ответьте да.

как установить приложение через powershell

Начнется процесс обновления. Дожидаемся окончания и можем использовать WinGet.

как установить приложение через powershell

Давайте я покажу, как с помощью PowerShell можно скачать данный пакет и установить его. Откройте PowerShell от имени администратора и введите:

Первая команда начинает скачивание пакета Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.appxbundle, убедитесь, что у вас создана папка для загрузки.

как установить приложение через powershell

Далее команда распаковывает пакет и добавляет утилиту WinGet.

как установить приложение через powershell

На этом установка менеджера пакетов WinGet Windows Package Manager завершена.

Основные ключи winget

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

Ключи третьего уровня

как установить приложение через powershell

Как установить программное обеспечение с помощью диспетчера пакетов Windows

Теперь вы можете начать использовать winget для установки огромного количества программ, сильно ускорив этот процесс, а дальше я покажу, как это еще и автоматизировать скриптами.

На выходе вы получите список содержащий: имя, ID и версию установленного пакета.

как установить приложение через powershell

Обратите внимание, что тут будут перечислены все приложения, которые вы видите и в оснастке «Программы и компоненты«, для примера я вывел отдельной командой этот же список для сравнения.

как установить приложение через powershell

Вы увидите огромный список

как установить приложение через powershell

В результате вы получите все пакеты с ключевым словом «Google». Мне интересен Google Chrome и его версия Canary.

как установить приложение через powershell

Обратите внимание, что можно использовать как имя пакета, так и его ID. Полезной информации будет много.

как установить приложение через powershell

Начнется подключение к репозиторию Microsoft и скачивание пакета Google Chrome.

как установить приложение через powershell

После чего появится окно с установкой Google Chrome

как установить приложение через powershell

Дожидаемся окончания установки. Проверяем, что приложение появилось в списке.

как установить приложение через powershell

Как видите все успешно отработало и в списке приложений все появилось.

как установить приложение через powershell

Проверим наши приложения в меню пуск.

Бывает, так что некоторые пакеты не могут быть экспортируемы и будут писать «Установленный пакет недоступен из любого источника».

как установить приложение через powershell

Как использовать winget в скриптах

Логично представить, что если это утилита командной строки или PowerShell, то можно написать скрипт, который вы сами будите запускать на чистой системе или через автозапуск Windows, вам главное чтобы без вашего участия был установлен весь набор софта. для корпоративных компьютеров, это вообще отличное решение, так как установка программ через GPO не всегда возможна, а SCCM есть не у всех.

Самое классное, что если вы еще не разбираетесь в PowerShell, то вы легко можете все равно написать скрипт. Для этого есть отличный интернет ресурс:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *