在封闭网络中安装powershell模块

时间:2016-12-13 13:16:59

标签: powershell

我有一个简单的问题,但我找不到任何答案。

我正在使用PowerShell 5而且我在封闭的环境中工作,无法连接到互联网,我想在我的机器上手动安装模块,基本上任何可供下载的模块,例如posh-ssh。

可以吗?让我们说在这里保存模块并安装?

2 个答案:

答案 0 :(得分:3)

在这种情况下,让我给你两种方法。

  1. 您可以从图库中下载所有需要的模块 并将其保存在您的某个系统的某个共享框中。然后就是 从共享文件夹安装模块。所以它将充当一个 为您分开存储库。
  2. 您可以创建内部 FTP 并将其保留在那里。然后 使用powershell,您可以轻松下载所有这些内容 也可以在封闭的网络中访问。
  3. 希望它有所帮助。

答案 1 :(得分:3)

@jyao要求提供一些示例,这是我的示例示例:

在封闭的网络(或脱机计算机)中安装/使PowerShell模块可用的最简单方法是使用在线计算机先下载所需的模块,然后将这些模块保存/复制到一个位置可从封闭的网络中访问。

STEPS:

注意:在下面的示例中,我正在使用“ SQLServer ”模块:

  • 登录到在线计算机,并且防火墙没有阻止其下载。
  • 将所需的模块保存在本地文件夹中,例如:

      

    Save-Module -Name "SQLServer" -Path C:\SavedPSModules

  • 现在,将模块复制到脱机计算机(在其中PowerShell用来查找模块的“模块”文件夹之一中),例如:

      

    Copy-Item "C:\SavedPSModules\SQLServer" -Destination "C:\User\{usr_name}\Documents\WindowsPowerShell\Modules" -Recurse -ToSession $Session;#假定目标计算机在可访问的域/网络中。

  • 最后检查模块是否正确安装:

    $module = "SQLServer"
    #Check if module is installed:
    $error.clear()
    Import-Module $module -ErrorAction SilentlyContinue
    If($error){
        Write-Host $module 'module is NOT installed (install it first before importing.)'
    }else{
        Write-Host "$module module is installed " -NoNewline
        #Check if module is imported:
        if (Get-Module -Name $module) {
            Write-Host "and is already imported (i.e. its cmdlets are ready/available to be used.)"
            Write-Host "`n$module module is installed in the following folder: `n`t $((Get-Module -Name SqlServer).ModuleBase[0])"
        } else {
            Write-Warning "however, it is NOT imported yet (use `"Import-Module`" to import it)."
        }
    }
    

注释:

  • $ env:PSModulePath 变量用于保存PowerShell查找已安装模块的位置,如果要将模块保留在共享的网络文件夹中,只需将其位置附加到此变量即可。要列出当前设置的模块文件夹,请使用以下命令:

      

    $env:PSModulePath -split ';'

  • 如果“模块”文件夹不存在,则可能需要创建它,例如:

      

    Mkdir C:\Users\{user_name}\Documents\WindowsPowerShell\Modules;

  • 记住: Find-Module cmdlet(及其同级cmdlet,例如 Save-Module Install-Module )仅在服务器中启用了下载功能(例如,您的计算机已连接到Internet且防火墙未阻止下载的情况下)。

HTH