我正在尝试使用PowerShell连接到ReplicationServer和备份复制。 SQL Server Edition是2008 SP2。它在Windows身份验证中可以正常工作,但是当我尝试与SQL Server身份验证连接时,它显示错误
New-Object:找不到“ ReplicationServer”的重载,并且参数计数为“ 1”。在..... \ Experiment.ps1:34 char:74 + [Microsoft.SqlServer.Replication.ReplicationServer] $ var_server = new-object <<<
这是代码段
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.ConnectionInfo")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Smo")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.Replication") | out-null
[reflection.assembly]::LoadWithPartialName("Microsoft.SqlServer.Rmo") | out-null
$script:servername="server1"
$loginname="test"
$passcode="test"
[Microsoft.SqlServer.Management.Common.ServerConnection]$con=new-object ("Microsoft.SqlServer.Management.Common.ServerConnection") $servername,$loginname,$passcode
[Microsoft.SqlServer.Replication.ReplicationServer]$var_server=new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con
foreach($replicateddatabase in $var_server.ReplicationDatabases)
{
.................
}
尝试在创建ReplicationServer之前打开连接:
$con.Connect()
[Microsoft.SqlServer.Replication.ReplicationServer]$var_server=new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con
不必打开连接,将错误的对象类型传递给ReplicationServer构造函数。
这是应该做的。
[Microsoft.SqlServer.Replication.ReplicationServer]$var_server=new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con.SqlConnectionObject