Sql-Server

如何在離線電腦上安裝 SQL Server PowerShell 模組?

  • December 8, 2020

我有一些無法連接到任何外部站點的 SQL Server 機器。

在管理數據庫時,我越來越多地使用 PowerShell,所以我肯定需要安裝這個模組,以便我可以使用我的 PowerShell 常式。

事實證明,在這些離線機器上安裝 SQL Server 模組很困難。

當我嘗試安裝模組時:

在此處輸入圖像描述

SqlServer模組要求NuGet 模組包

在此處輸入圖像描述

然後我得到這個紅色字母的海洋和以下錯誤消息,如下圖所示:

警告:無法從 URI“ https://go.microsoft.com/fwlink/?LinkID=627338&clcid=0x409 ”下載到“”。

警告:無法下載可用提供程序的列表。檢查您的網際網路連接。PackageManagement\Get-PackageProvider:找不到包提供程序“NuGet”。

它可能尚未導入。嘗試“Get-PackageProvider -ListAvailable”。

在 C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7415 char:30 + … tProvider = PackageManagement\Get-PackageProvider -Name $script:NuGet …

在此處輸入圖像描述

此 PowerShell 模組安裝的解決方法是什麼?

PowerShell 有一個內置機制,這應該比之前的答案更容易。

從連接 Internet 的電腦上執行Save-Module sqlserver -path c:\tmp(替換您希望將模組保存到的任何路徑)。c:\tmp這會將模組保存到( c:\tmp\SqlServer)中的同名目錄。

然後,將該整個目錄複製到您的目標電腦。您有幾個目的地選項,具體取決於您希望如何將其提供給使用者。在 PowerShell 5.1 和更早版本上,查看PSModulePath環境變數中的路徑。在我的系統上,我有:

> $env:psmodulepath.split(";")
C:\Users\MYNAME\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
C:\Program Files\Intel\Wired Networking\
C:\Program Files (x86)\Microsoft SQL Server\150\Tools\PowerShell\Modules\

為了使所有使用者都可以使用該模組,我將其放入C:\Program Files\WindowsPowerShell\Modules. 就我自己來說,它會進入C:\Users\MYNAME\Documents\WindowsPowerShell\Modules

如果您執行的是PowerShell Core或 PowerShell 7,這些路徑可能會有所不同;您會查看$PSGetPath.

從這裡,您應該能夠Import-Module sqlserver成功執行。

無恥外掛:如果您通過 PowerShell 進行大量 SQL Server 管理(我衷心鼓勵這樣做!),您應該檢查該dbatools模組。

引用自:https://dba.stackexchange.com/questions/264972