DBATools命令Test-DBADbCompatibility报Version150枚举转换错误如何解决
报错原因
你当前环境加载的SQL Server管理对象(SMO)最高仅支持到Version140(对应SQL Server 2017的兼容级别),而你连接的SQL Server实例版本为2019(对应主版本号15,自动拼接为Version150枚举值),旧版SMO无法识别该枚举值导致报错。另外从报错日志可看到你当前实际加载的DBATools版本为1.1.40,并非最新版本,大概率是多版本模块共存导致旧版本被优先加载。
解决方案
清理DBATools多版本冲突
先执行命令查看所有已安装的DBATools版本:Get-InstalledModule dbatools -AllVersions确认存在多版本后执行完全卸载:
Uninstall-Module dbatools -AllVersions -Force卸载完成后重新安装最新版本DBATools:
Install-Module dbatools -Scope CurrentUser -Force操作完成后重启PowerShell会话,重新执行目标命令验证是否恢复正常。
升级本地SMO组件
若清理模块后仍存在报错,手动安装最新版SQL Server共享功能包中的SMO组件,新版本SMO会内置Version150(SQL 2019)、Version160(SQL 2022)等更高版本的兼容级别枚举值,适配高版本SQL Server实例。临时规避方案
若暂时无法完成组件升级,可手动指定目标兼容级别跳过自动识别逻辑,直接执行:Test-DBADbCompatibility -SqlInstance localhost -Database EfficaDB -TargetCompatibilityLevel Version140即可完成兼容级别比对测试。
内容的提问来源于stack exchange,提问作者Murali Dhar Darshan
相关产品推荐
相关产品推荐

