【问题标题】:PowerShell v5 - How to install modules to a computer having no internet connection?PowerShell v5 - 如何将模块安装到没有互联网连接的计算机上?
【发布时间】:2016-05-27 14:55:34
【问题描述】:

我有一台机器(v3,互联网,无管理员访问权限),用于下载 WMF 5.0 并设置另一台机器(v5,无互联网,管理员访问权限)。现在,我想在运行 v5 但没有互联网连接的机器上使用 PowerShellGet 中的一些模块。

我需要一个选项来下载 *.psm1 文件,然后我可以复制并使用它。 就像我们可以选择从 GitHub 下载一样。

任何有类似问题和解决方法的人?

【问题讨论】:

标签: powershell powershell-5.0 powershellget


【解决方案1】:

在您的 PowerShell 3 机器上安装 Package Management Module,然后使用 Save-Module ...

或者在网络“边缘”的某个地方设置ProGet,并让它从公共PowerShellGallery 中为您的内部客户端镜像您想要的模块。

如果做不到这一点,只需建立自己的下载 URL:

https://www.powershellgallery.com/api/v2/package/$Name/$Version

您甚至可以生成 OData 代理模块,或者只使用 invoke-rest 方法进行搜索:

function Find-Module {
    param($Name)
    invoke-restmethod "https://www.powershellgallery.com/api/v2/Packages?`$filter=Id eq '$name' and IsLatestVersion" | 
    select-Object @{n='Name';ex={$_.title.'#text'}},
                  @{n='Version';ex={$_.properties.version}},
                  @{n='Uri';ex={$_.Content.src}}
}
function Save-Module {
    param(
        [Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true)]
        $Name,
        [Parameter(ValueFromPipelineByPropertyName=$true,Mandatory=$true)]$Uri,
        [Parameter(ValueFromPipelineByPropertyName=$true)]$Version="",
        [string]$Path = $pwd
    )
    $Path = (Join-Path $Path "$Name.$Version.nupkg")
    Invoke-WebRequest $Uri -OutFile $Path
    Get-Item $Path
}

所以现在你可以像官方模块一样做:

Find-Module Pester | Save-Module -Path ~\Downloads

【讨论】:

【解决方案2】:

通过 Internet 访问 PowerShell 5.0 更新您的计算机,并使用 Save-Module 从 PowerShellGet 保存模块。例如:

Find-Module psreadline | Save-Module -Path c:\users\frode\Desktop

这会将模块(例如 PSReadLine)保存到一个文件夹中,您可以将其复制到另一台机器上并像普通模块一样安装(请参阅Installing a PowerShell Module

【讨论】:

  • 无法更新具有互联网访问权限的机器到 v5 否则只会尝试这个。因此问题。
  • 问题从来没有说你不能,只是你还没有做到。为什么不能更新?让其他人来做或安装 ps3.0 的 powershellget 模块 (microsoft.com/en-us/download/details.aspx?id=51451)。如果您不允许执行任何建议,那么听起来您可能根本不允许安装 3rd 方模块。
  • 我可以在一台机器上安装 3rd 方的东西,但它没有连接到 inernet。但是,不能进行任何更改/或要求任何人对连接到互联网的机器进行更改。知道在哪里可以直接获取 .psm1 文件吗?
猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 2015-01-31
  • 2020-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多