Більшість популярних модулів PowerShell встановлюються в Інтернеті з офіційного сховища галереї PowerShell (PSGallery) за допомогою команди Встановити-модуль
. Однак ви не зможете встановити потрібний модуль PowerShell, якщо ваш комп'ютер знаходиться в мережі, виділеній з Інтернету, або доступ до PSRepository обмежений. Або в сценарії з встановленням модуля на сервері, на якому зазвичай блокується прямий доступ до Інтернету. У цій статті ми розглянемо шлях офлайн -встановлення модулів PowerShell та імпорту модуля з віддаленого комп'ютера за допомогою прикладу модуля SQLServer.
Зміст:
- Ручна установка модуля PowerShell в офлайн -системах
- Імпортувати модуль PowerShell через мережу з іншого комп'ютера
Зверніть увагу, що на веб -сайті PowerShellgallery.Com Немає посилань на завантажувальні модулі. Єдине, що ви можете завантажити з сайту, - це пакет Nuget (файл .Nupkg
). Використовуючи певні маніпуляції, ви можете встановити модуль PowerShell з файлу NUPKG, але це не буде повноцінною установкою модуля (основна проблема не встановлена залежністю).
Ручна установка модуля PowerShell в офлайн -системах
Спочатку вам потрібно встановити модуль PowerShell, необхідний на комп’ютері, на якому доступ до Інтернету не обмежений.
На комп’ютері слід встановити версію PowerShell щонайменше 5.1: $ Psversiontable.Прізвище
Перевірте, чи присутній модуль у галереї PSGallery:
Знайти -module -name *sqlserver *| Виберіть ім'я, версію, сховище
Завантажте модуль, необхідний для вашого комп’ютера у вказаному каталозі:
Зберегти -Module -Name SQLSERVER -PATH C: \ PS \
Скопіюйте папку з модулем на іншому комп'ютері, на якому потрібно встановити її.
Ми розберемося, які каталоги зберігаються модулі PowerShell:
$ env: psmodulepath -split ";"
Як бачите, модулі PowerShell можна зберігати відповідно до одного з наступних способів:
- C: \ Користувачі \ root \ документи \ windowspowershell \ moules (
$ Home \ documbs \ powershell \ модулі
) - Модулі в цьому каталозі доступні лише цьому користувачеві (CurrentUser) - C: \ Program Files \ WindowsPowershell \ Модулі ($ env: ProgramFiles \ WindowsPowershell \ Modules) - Шлях використовується для встановлення модуля для всіх користувачів комп'ютера (-СКОПІВ)
- C: \ Windows \ System32 \ Windowspowershell \ v1.0 \ Модулі (каталог для вбудованих модулів за замовчуванням)
Скопіюйте модуль у каталозі C: \ Програмні файли \ WindowsPowershell \ Модулі
.
Перевірте, чи доступний модуль SQLServer:
Get -module -name sqlserver -listavailble
Каталог модулів можна дізнатися так:
(Get -Module -Listavable SqlServer).Шлях
Принесіть список доступних команд у модулі:
Get -Command -Module Sqlserver
Аналогічно, ви можете встановити будь -який модуль. Я найчастіше використовую цей метод для встановлення модуля PowerShell SQLSERVER, PSWINDOWSUPDATE та POWERCLI для VMware.
Встановлення модулів PowerShell Azuread та обміну в Інтернеті в офлайн -системах з очевидних причин не має сенсу.Імпортувати модуль PowerShell через мережу з іншого комп'ютера
Якщо ви не хочете встановлювати модуль PowerShell на всіх комп'ютерах, ви можете імпортувати будь -який модуль з іншого комп'ютера через мережу за допомогою PsRemoting:
$ session = new-pssession -ComputErname msk-sql01
Принесіть список встановлених модулів на віддаленому комп’ютері:
Get -module -pssession $ session -listavalarble
Імпортуйте вказаний модуль на комп’ютер:
Імпорт -module -pssession $ session -name sqlserver
Не забудьте закрити сеанс після кінця:
Видалити сеанс $ $
Ще цікавіший спосіб локального використання модуля PowerShell, встановленого на віддаленому комп'ютері за допомогою неявного дистанційного керування (неявна віддаленість).
Підключіться до віддаленого комп'ютера за допомогою Commund-Command та імпортуйте необхідний модуль PowerShell:$ session = new-pssession -ComputErname msk-sql01
INSP-COMAND Імпорт-модуль SQLServer -сесія $ сесія
Експортуйте командирів модулів з віддаленого сеансу на локальний модуль
Експорт -pssession -session $ s -CommandName * -Sql * -utputModule remsqlserver -alloLowobber
Ця команда створить новий модуль PowerShell remsqlserver на вашому комп’ютері (у каталозі C: \ Програмні файли \ WindowsPowershell \ Модулі
). Самі командири не скопійовані.
Закрийте сеанс:
Видалити сеанс $ $
Тепер, щоб використовувати командири PowerShell з цього модуля, достатньо імпортувати його в сеанс:
Імпорт-модуль remsqlserver
Всі командири модулів SQL тепер доступні без встановлення чіткого з'єднання на віддалений комп'ютер. Спробуйте подати запит на MS SQL за допомогою Invoke-SQLCMD. Усі команди доступні, поки ви не закриєте консоль PowerShell або видалимо модуль.