使用.net复制管理对象RMO的Powershell问题



我正在尝试自动重新初始化几个复制从分发服务器匿名提取的订阅。我是在Powershell中做这个项目,我相信我有一个.NET复制管理对象的64位vs 32位问题(RMO)。我正在加载RMO和复制程序集。RMO程序集加载MSIL版本,但复制程序集仅加载可在X86或X64中使用。

我遇到的问题是Microsoft.SqlServer.Replication.TransSynchronizationAgent类不是当我在64位机器上运行脚本时可用。当我在32位机器,它工作得很好。

当我尝试在64位机器上创建该类的新对象时,我将无法使用它获得未注册类的错误。我看了看注册表,类在GAC中以64位和64位注册32位(Wow6432Node)的位置。

以前有人遇到过这个问题吗?有什么解决办法吗?

谢谢你,利克酒

我最近在Powershell中遇到了类似的x64位vs x32位问题。它与Windows文件系统重定向有关(更多信息在这里:http://practicaladmin.wordpress.com/2010/07/16/powershell-x64-and-filesystem-redirection/)

如果你试图在32位内存空间中实例化一个64位的Powershell实例(32位PID或在32位模式下运行的PID/等),Windows试图"做正确的事情"并执行32位版本的Powershell(在syswow64文件夹中-是的,32位Powershell存在于syswow64文件夹中)。

尝试在64位机器上使用以下路径显式运行64位版本的Powershell.exe:

%windir%sysnativeWindowsPowerShellv1.0powershell.exe

最新更新