2011-09-16 2 views
2

배포 서버에서 익명으로 끌어 오는 여러 복제 구독의 다시 초기화를 자동화하려고합니다. 나는 이 프로젝트에서 Powershell로 작업 중이며 64 비트와 32 비트 문제가 있다고 생각합니다. .NET 복제 관리 객체 (RMO). RMO 및 복제 어셈블리를로드하고 있습니다. RMO 어셈블리는 MSIL 버전을로드하지만 복제 어셈블리는 X86 또는 X64 중 하나에서만 입니다..NET 복제 관리 개체를 사용하는 Powershell 문제 RMO

문제점은 내가 64 비트 시스템에서 스크립트를 실행할 때 Microsoft.SqlServer.Replication.TransSynchronizationAgent 클래스가 이 아닐 수 있습니다. 32 비트 시스템에서 실행하면 정상적으로 작동합니다.

64 비트 시스템에서 해당 클래스의 새 개체를 만들려고하면 클래스가 등록되지 않았다는 오류가 발생합니다. 나는 레지스트리를보고 클래스는 64 비트와 32 비트 (Wow6432Node) 위치 모두에서 GAC에 등록되었습니다.

전에이 문제를 경험 한 사람이 있습니까? 수정에 대한 아이디어가 있습니까?

는 리키

+1

:

다음과 같은 경로를 사용하여 명시 적으로 64 비트 상자에 PowerShell.exe의의 64 비트 버전을 실행 해보십시오? 아직도 불평하고 있니? –

답변

0

나는 최근 PowerShell로 X32 비트 문제에 대 유사한 64으로 실행, 감사합니다. Windows 파일 시스템 리디렉션 관련 (자세한 내용은 여기 : http://practicaladmin.wordpress.com/2010/07/16/powershell-x64-and-filesystem-redirection/)

32 비트 메모리 공간 (32 비트 PID 또는 32 비트 모드에서 실행중인 PID 등)에서 64 비트 Powershell 인스턴스를 인스턴스화하려고하면 Windows는 " 올바른 일을해라. "하고 powershell의 32 비트 버전을 실행합니다 (syswow64 폴더에서 - 예, 32 비트 powershell은 syswow64 폴더에 있습니다). 당신이 86 PowerShell.exe를 실행하면 어떻게됩니까

%windir%\sysnative\WindowsPowerShell\v1.0\powershell.exe