編集 1: Windows PowerShell ISE を介して正常にレプリケーション オブジェクトを作成できますが、PowerGUI を使用することはできません。スクリプトは以前は 32 ビット マシンで正常に実行されていましたが、現在は 64 ビット マシンでエラーになっています。問題は環境の問題のようです。
PowerShell から SQL 認証を使用してディストリビューション SQL Server インスタンスに接続し、レプリケーション オブジェクトを作成しようとしています。Windows 認証を使用した接続をテストできません。
次のコードは、http: //sqlpsx.codeplex.com/ と読み込まれたモジュール Repl (Repl.psm1) に由来します。
$sqlServer = "SQL Server"
$Username = "UserName"
$Password = "Password"
[Microsoft.SqlServer.Management.Common.ServerConnection]$con = Get-SqlConnection $sqlServer $username $password
Write-host "Get-ReplServer $($con.ServerInstance)"
$repl = new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con
またはより具体的に
new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con
次のエラーが発生します
New-Object : Cannot find an overload for "ReplicationServer" and the argument count: "1".
At line:25 char:19
+ $repl = new-object <<<< ("Microsoft.SqlServer.Replication.ReplicationServer") $con
+ CategoryInfo : InvalidOperation: (:) [New-Object], MethodException
+ FullyQualifiedErrorId : ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
サーバー接続コード
[Microsoft.SqlServer.Management.Common.ServerConnection]$con = Get-SqlConnection $sqlServer $username $password
正常に完了し、正しいサーバー情報を返します
SQL サーバーのバージョンは
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
Jun 28 2012 08:36:30
Copyright (c) Microsoft Corporation
Developer Edition (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
および PowerShell のバージョン
Major Minor Build Revision
----- ----- ----- --------
2 0 -1 -1
私の問題は、sql authentication を使用して ReplicationServer に接続する際の問題と同じよう です。ただし、Chad Miller の解決策では問題が解決しません。
$con.Connect()
$repl = new-object ("Microsoft.SqlServer.Replication.ReplicationServer") $con
どんな理想も大歓迎です。