You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell导入SQLServer模块失败及SQLSERVER驱动器找不到求助

解决PowerShell导入SQLServer模块时的程序集加载失败问题

你碰到的问题核心在于SQLServer模块默认尝试加载的旧版本(9.0.242.0)程序集,和你系统中SQL Server 2017对应的140版本组件不匹配,再加上x64与x86程序集路径的混淆,导致模块初始化失败。另外那个用SqlConnection的脚本能“修复”后续导入,是因为它运行时自动加载了正确版本的SQL Server相关程序集,模块后续可以复用这些已加载的程序集,所以不会再报错。

下面是具体的解决步骤:

1. 确保运行x64版本的PowerShell

你的SQL Server是x64版本,一定要启动x64的PowerShell(默认PowerShell可能是x86,尤其是在装有32位软件的机器上)。x64的PowerShell会优先查找C:\Program Files下的x64程序集,而非Program Files (x86)里的32位版本,能直接避免路径混淆问题。

2. 手动加载正确版本的程序集

在导入SQLServer模块之前,先手动加载你系统中存在的正确版本程序集,示例如下:

# 加载ConnectionInfo(根据你找到的路径调整)
Add-Type -Path "C:\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll"
# 加载Smo(140版本的x64路径)
Add-Type -Path "C:\Program Files\Microsoft SQL Server\140\SDK\Assemblies\Microsoft.SqlServer.Smo.dll"
# 再导入模块
Import-Module SQLServer

这样模块会复用你已加载的正确版本程序集,不会再尝试寻找旧版的9.0.242.0。

3. 修改SQLServer模块的加载逻辑(彻底解决)

如果每次手动加载太麻烦,可以修改模块的SQLServer.psm1文件(路径为C:\Users\Student\Documents\WindowsPowerShell\Modules\sqlserver\SQLServer.psm1):

  • 找到包含add-type -AssemblyName "Microsoft.SqlServer.ConnectionInfo"和add-type -AssemblyName "Microsoft.SqlServer.Smo"的代码块
  • 将它们替换为指定完整DLL路径的形式,比如:
# 替换原catch块中的ConnectionInfo加载代码
catch {Add-Type -Path "C:\Program Files\Microsoft SQL Server\140\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll"}
# 替换原catch块中的Smo加载代码
catch {Add-Type -Path "C:\Program Files\Microsoft SQL Server\140\SDK\Assemblies\Microsoft.SqlServer.Smo.dll"; $smoVersion ...}

修改后模块启动时会直接加载你指定的正确版本程序集,不会再报错。

4. 确认SMO组件完整安装

SQL Server 2017的SMO组件可能未完整安装,你可以通过以下方式补全:

  • 运行SQL Server安装程序,选择“添加功能”,确保勾选“SQL Server管理工具 - 完整”选项
  • 如果你通过NuGet安装了Microsoft.SqlServer.SqlManagementObjects,可以将其安装路径(比如C:\Users\Student\.nuget\packages\microsoft.sqlserver.sqlmanagementobjects\对应版本号\lib\net46)添加到PowerShell的$env:PATH中,让模块能自动找到这些程序集。

关于你提到的“缺少ConnectionInfo是否会导致Smo加载失败”:是的,Smo组件依赖ConnectionInfo程序集,所以ConnectionInfo加载失败时,Smo也会跟着加载失败,这就是你看到前两个FileNotFoundException的原因。

内容的提问来源于stack exchange,提问作者Matthew Kovalenko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:18:21