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

PowerShell中无法初始化RegisteredServersStore对象的问题求助

问题分析与解决思路

你遇到的核心问题是:PowerShell无法找到接受Microsoft.SqlServer.Management.Common.ServerConnection参数的RegisteredServersStore构造函数,尽管文档显示该重载存在。结合你的环境(PowerShell 5.1、SqlServer模块22.1.1),可以从以下方向排查解决:

1. 验证当前SMO版本的构造函数重载

SqlServer模块自带的SMO(SQL Server管理对象)版本可能与你参考的文档版本不一致。先执行以下命令,确认RegisteredServersStore的所有可用构造函数:

[Microsoft.SqlServer.Management.RegisteredServers.RegisteredServersStore]::GetConstructors() | ForEach-Object {
    "参数类型: " + ($_.GetParameters() | ForEach-Object { $_.ParameterType.FullName }) -join ", "
}

如果输出中没有Microsoft.SqlServer.Management.Common.ServerConnection类型的参数,说明当前SMO版本确实不存在该重载,此时需要:

  • 升级SqlServer模块到最新稳定版,或降级到文档对应的版本
  • 手动加载对应版本的SMO程序集(需本地有该版本的SQL Server SDK或客户端工具)

2. 显式处理参数类型匹配

PowerShell的New-Object有时会因隐式类型转换失败导致重载匹配错误,尝试显式指定构造函数:

$ServerConnection = New-Object Microsoft.SqlServer.Management.Common.ServerConnection('ServerName')
# 精准定位构造函数
$ctor = [Microsoft.SqlServer.Management.RegisteredServers.RegisteredServersStore].GetConstructor([Type[]]@([Microsoft.SqlServer.Management.Common.ServerConnection]))
$store = $ctor.Invoke($ServerConnection)

如果这一步仍报错,说明当前环境确实不存在该构造函数重载。

3. 替代方式获取RegisteredServersStore

若无法通过构造函数传入连接对象,可先创建Server实例,再直接获取关联的RegisteredServersStore:

$server = New-Object Microsoft.SqlServer.Management.Smo.Server('ServerName')
$store = $server.RegisteredServersStore

这种方式无需手动传入连接对象,Server实例会自动处理上下文关联,绕过构造函数的问题。

4. 排查dbatools与SqlServer模块的兼容性

你提到问题源于dbatools的Add-DbaRegServer,建议:

  • 更新dbatools到最新版本:Update-Module dbatools -Force,新版本可能已适配不同SqlServer模块版本的构造函数差异
  • 若更新后仍有问题,尝试降级SqlServer模块到21.x版本(部分用户反馈22.x版本的SMO存在构造函数变更)

5. 确保SMO程序集完整加载

有时SqlServer模块的程序集可能未完全加载,手动加载RegisteredServers相关程序集:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.RegisteredServers") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo") | Out-Null

加载完成后再尝试创建RegisteredServersStore对象。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 00:45:15