Как установить / обновить модуль 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 ответ
В любой оболочке (повышенной или нет):
Register-PSRepository -Name 'myRepositoryName' -SourceLocation 'my folder'
Все
.nupkg
файлы внутри вашей папки теперь могут быть обнаруженыInstall-Module
.В оболочке с повышенными привилегиями (Запуск от имени администратора):
Install-Module 'Some-Module' -Repository 'myRepositoryName'
Ответ Эрика был мне полезен. Я также добавил:
-InstallationPolicy Trusted
к Register-PSRepository
вызов. Взять модуль и опубликовать его как пакет nuget выглядит так:Publish-Module -Name myModuleName -Repository myRepositoryName
Это не очень просто, см. Мой ответ на другой аналогичный вопрос, который вы упомянули в своем вопросе.