Как установить / обновить модуль powershell из локальной папки - настроить внутренний репозиторий модулей

Мне нужно установить модуль PowerShell (т. Е. Sqlserver) на одну производственную коробку, однако на производственном сервере нет подключения к Интернету.

Альтернативный способ, которым я пользуюсь, - это использовать save-module для сохранения файлов модуля в общей папке, а затем скопировать файлы из общей папки непосредственно в путь PS-модуля производственного сервера.

c:\program files\WindowsPowerShell\Modules

Это работает, но мне просто интересно, можем ли мы использовать существующий подход, то есть install-module, что-то вроде

install-module -name sqlserver -repository "my shared folder"

Это требование распространяется и на модуль обновления.

Использование save-module, а затем копирование и вставка кажется очень ненадежным, потому что я понятия не имею, будет ли install-module делать какую-либо регистрацию или установку DLL-файла.

Может ли какой-нибудь гуру PS дать некоторое представление о том, как это сделать, т.е. использовать install-module без подключения к интернету?

Спасибо заранее за ваше время.

PS: я знаю, что на SO есть пост, но он мне не помогает.

1 ответ

  1. В любой оболочке (повышенной или нет):

    Register-PSRepository -Name 'myRepositoryName' -SourceLocation 'my folder'
    

    Все .nupkg файлы внутри вашей папки теперь могут быть обнаружены Install-Module.

  2. В оболочке с повышенными привилегиями (Запуск от имени администратора):

    Install-Module 'Some-Module' -Repository 'myRepositoryName'
    

Ответ Эрика был мне полезен. Я также добавил:

-InstallationPolicy Trusted

к Register-PSRepositoryвызов. Взять модуль и опубликовать его как пакет nuget выглядит так:Publish-Module -Name myModuleName -Repository myRepositoryName

Это не очень просто, см. Мой ответ на другой аналогичный вопрос, который вы упомянули в своем вопросе.

Другие вопросы по тегам