使用sql身份验证连接到ReplicationServer时出现问题

时间:2013-12-26 17:48:28

标签: sql-server-2008 powershell replication database-replication

我正在尝试使用PowerShell连接到ReplicationServer和备份复制。 SQL Server Edition是2008 SP2。它适用于Windows身份验证,但当我尝试连接SQL Server身份验证时,它显示错误

  

New-Object:找不到“ReplicationServer”的重载和参数count:“1”。在..... \ Experiment.ps1:34 char:74 + [Microsoft.SqlServer.Replication.ReplicationServer] $ var_server = new-object<<<< (“Microsoft.SqlServer.Replication.ReplicationServer”)$ con + CategoryInfo:InvalidOperation:(:) [New-Object],MethodException + FullyQualifiedErrorId:ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand

以下是代码段

[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) 
{
   .................
}

2 个答案:

答案 0 :(得分:0)

尝试在创建ReplicationServer之前打开连接:

$con.Connect()
[Microsoft.SqlServer.Replication.ReplicationServer]$var_server=new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con

答案 1 :(得分:0)

不必打开连接,将错误的对象类型传递给ReplicationServer构造函数。

这是应该做的。

[Microsoft.SqlServer.Replication.ReplicationServer]$var_server=new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con.SqlConnectionObject