13

我需要在一个生产机器上安装一个 PowerShell 模块(即 sqlserver),但是,生产服务器没有任何互联网连接。

我正在使用的另一种方法是使用 save-module 将模块文件保存到共享文件夹中,然后将文件从共享文件夹直接复制到生产服务器的 PS 模块路径

c:\program files\WindowsPowerShell\Modules

它有效,但我只是想知道我们是否可以使用现有的方法,即安装模块,类似

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

此要求也扩展到更新模块。

使用 save-module 然后复制和粘贴似乎非常不可靠,因为我不知道 install-module 是否真的会进行一些 DLL 文件注册或安装。

任何 PS 大师都可以给出一些想法如何做到这一点,即在没有互联网连接的情况下使用 install-module?

在此先感谢您的时间。

PS:我知道 SO 有一个帖子,但它对我没有帮助。

4

2 回答 2

13
  1. 在任何外壳(升高与否)中:

     Register-PSRepository -Name 'myRepositoryName' -SourceLocation 'C:\MyExampleFolder'
    

    您文件夹中的所有.nupkg文件现在都可以通过Install-Module.

  2. 在提升的外壳中(以管理员身份运行):

     Install-Module 'Some-Module' -Repository 'myRepositoryName'
    
于 2019-08-29T17:02:55.730 回答
3

埃里克的回答对我很有帮助。我还补充说:

-InstallationPolicy Trusted

Register-PSRepository来电。获取一个模块并将其发布为 nuget 包如下所示: Publish-Module -Name myModuleName -Repository myRepositoryName

于 2020-05-19T20:26:05.550 回答