gpt4 book ai didi

powershell - 在封闭网络中安装 powershell 模块

转载 作者:行者123 更新时间:2023-12-03 16:54:21 26 4
gpt4 key购买 nike

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

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

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

最佳答案

由于@jyao 要求提供一些示例,这里是我的示例/示例代码答案:

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

步骤:

注意:我在以下示例中使用了“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; #assuming target computer is within accessible domain/network, to which you'll need to create a Session (here stored in $session variable).

  • 最后安装+导入模块:
#Check if module is installed & imported, do it if not:
$module = "SQLServer"
if((Get-Module -Name $module) -eq $null) {
#Check if module is installed:
if (Get-Module -ListAvailable -Name $module) {
Write-Output "$module module is already installed";
#Check if module is imported:
if((Get-Module -Name $module) -ne $null) {
Write-Output " and is already imported (i.e. its cmdlets are ready/available to be used.)";
Write-Output "Installation Path: `n`t" (Get-Module -Name $module).Path;
} else {
Write-Output ", however, it is NOT imported yet - importing it now";
Import-Module $module;
}
}else{
Write-Output "$module module is NOT installed - installing it now"
try {
Install-Module -Name $module -AllowClobber -Confirm:$False -Force #suppressed prompt.
}
catch [Exception] {
$_.message
exit
}
Write-Output "$module installed successfully - importing it now";
Import-Module $module;
}
}

注意事项:

  • $env:PSModulePath 变量保存 PowerShell 查找已安装模块的位置,如果您想将模块保存在共享网络文件夹中,只需将其附加这个变量的位置。要列出当前设置的模块文件夹,请使用以下内容:

$env:PSModulePath -split ';'

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

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

  • 记住:Find-Module cmdlet(及其兄弟 cmdlet,例如 Save-ModuleInstall-Module)只有在您的服务器已启用下载(即您的计算机已连接到互联网并且下载未被防火墙阻止。)

HTH

关于powershell - 在封闭网络中安装 powershell 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41122113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com