如何在離線電腦上安裝 SQL Server PowerShell 模組?
我有一些無法連接到任何外部站點的 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
模組。