Установка и управление модулями 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. Тут вы подключаетесь к удаленному серверу и импортируете модуль.
Invoke-Command {Import-Module VMware.PowerCLI} -Session $session
Сохраним на локальный компьютер нужный нам модуль.
Данная команда создаст на вашем компьютер новый 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. С вами был Иван Сёмин. автор и создатель IT портала Pyatilistnik.org.
Здравствуйте, Иван!
Подскажите, пожалуйста, как установить модуль для работы с VK api?
Скачал vkapi.wrapper.1.2.5.nupkg, а как с ним поступить правильно — не ясно.
Заранее спасибо за подсказку!
Можно экспортировать часть модулей с одного ПК на другой?
С импортом всё понятно.
Да можно