我需要在一个生产盒上安装PowerShell模块(即sqlserver),但是,生产服务器没有任何互联网连接。
我使用的另一种方法是使用save-module将模块文件保存到共享文件夹,然后将文件从共享文件夹直接复制到生产服务器的PS模块路径
c:\program files\WindowsPowerShell\Modules
它有效,但我只是想知道我们是否可以使用现有方法,即安装模块,如
install-module -name sqlserver -repository "my shared folder"
此要求也扩展到更新模块。
使用save-module然后复制& paste似乎非常不可靠,因为我不知道install-module是否会实际执行一些DLL文件注册或安装。
任何PS大师都可以告诉我们如何做到这一点,即使用没有互联网连接的安装模块吗?
提前感谢您的时间。
PS:我知道SO上有一个post,但它对我没有帮助。
答案 0 :(得分:3)
在任何外壳中(高架与否):
Register-PSRepository -Name 'myRepositoryName' -SourceLocation 'my folder'
文件夹.nupkg
现在可以发现文件夹中的所有Install-Module
文件。
在提升的外壳中(以管理员身份运行):
Install-Module 'Some-Module' -Repository 'myRepositoryName'
答案 1 :(得分:1)
Eric的回答对我很有帮助。我还添加了:
-InstallationPolicy Trusted
转到Register-PSRepository
呼叫。
采取一个模块并将其作为nuget包发布如下:
Publish-Module -Name myModuleName -Repository myRepositoryName
答案 2 :(得分:-2)
请参阅my answer to another similar question,这可能会有帮助。