【问题标题】:How to install/update a powershell module from a local folder - set up an internal module repository如何从本地文件夹安装/更新 powershell 模块 - 设置内部模块存储库
【发布时间】:2018-04-23 18:40:57
【问题描述】:

我需要在一个生产机器上安装一个 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 有一个 post,但它对我没有帮助。

【问题讨论】:

  • @TessellatingHeckler,第一次扫描后似乎很有希望。我稍后会尝试。另一方面,您能否在答案部分写一些东西而不是评论,以便我投票给您。再次感谢!

标签: powershell powershellget


【解决方案1】:
  1. 在任何外壳(升高或不升高)中:

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

    您文件夹中的所有.nupkg 文件现在都可以被Install-Module 发现。

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

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

【讨论】:

  • 它可以工作,但是SourceLocation 至少需要是网络共享 - 当我使用本地路径时它不适合我。
  • @Gucu112 不正确,你绝对可以使用本地路径。您收到什么错误消息?
  • install-moduleimport-module 之间的差异似乎 import-module 只能从本地安装路径,而 install-module 可以从本地和远程安装。
  • @Timo 不完全是。 Import-Module 使您可以在当前的 PowerShell 会话中访问模块的 cmdlet。 Install-Module 将模块的文件复制到一个位置。进口就像把食物放在柜台上做三明治,而安装就像去购物然后把食物从商店带回家。
  • 在这里为我工作!我的服务器无法访问互联网,手动下载了 nupkg 文件 PowerShell Galley 并放入文件夹“C:\Temp”,将 PSRepository 注册为“C:\Temp”作为 SourceLocation 并安装了模块。非常感谢!!
【解决方案2】:

Eric 的回答对我很有帮助。我还补充说:

-InstallationPolicy Trusted

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

【讨论】:

    猜你喜欢
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    相关资源
    最近更新 更多