无法将dll添加到32位PowerShell

无法将dll添加到32位PowerShell,powershell,exchange-server-2007,Powershell,Exchange Server 2007,我正在尝试为32位Powershell(Microsoft.Exchange.Management.Powershell.Admin)添加Exchange 2007管理单元,但在安装dll文件时似乎遇到了一些问题 这些是我正在运行以注册管理单元的命令 PS C:\Program Files\Microsoft\Exchange Server\Bin> $snapinPath = 'Microsoft.Exchange.Management.PowerShell.Support.dll' P

我正在尝试为32位Powershell(Microsoft.Exchange.Management.Powershell.Admin)添加Exchange 2007管理单元,但在安装dll文件时似乎遇到了一些问题

这些是我正在运行以注册管理单元的命令

PS C:\Program Files\Microsoft\Exchange Server\Bin> $snapinPath = 'Microsoft.Exchange.Management.PowerShell.Support.dll'
PS C:\Program Files\Microsoft\Exchange Server\Bin> C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /i $snapinPath
以上工作没有问题。然后,我使用以下命令安装主管理单元:

PS C:\Program Files\Microsoft\Exchange Server\Bin> $snapinPath = 'Microsoft.Exchange.PowerShell.Configuration.dll'
PS C:\Program Files\Microsoft\Exchange Server\Bin> C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe /i $snapinPath
Microsoft(R).NET Framework安装实用程序版本2.0.50727.5483 版权所有(c)微软公司。版权所有

初始化安装时发生异常: System.BadImageFormatException:无法加载文件或程序集“Microsoft.Exchange.PowerShell.Configuration,版本=8”。 0.0.0,区域性=中性,PublicKeyToken=31bf3856ad364e35'或其依赖项之一。试图加载格式不正确的程序


我不确定我错过了什么。这是新安装的Exchange 2007,因此不应损坏任何内容。

我的问题是,我使用的是64位版本的Microsoft.Exchange.PowerShell.Configuration.dll

我需要32位版本。由于不允许安装32位版本,我提取了32位版本exchange的安装文件,并将setup\serverroles\common文件夹复制到C:\Program files\Microsoft\exchange Server,并将其重命名为Bin32

最后一个阶段是复制此注册表项:

HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin

至以下地点:

HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\PowerShell\1\PowerShellSnapIns\Microsoft.Exchange.Management.PowerShell.Admin

然后更改键内的任何路径,以指向新的Bin32文件夹


此时,应该可以将Microsoft.Exchange.Management.Powershell.Admin管理单元加载到32位Powershell中(适用于依赖32位库的IIS应用)。

您确定要运行32位Powershell吗?该错误很可能与在64位应用程序中加载仅32位的程序集有关,反之亦然。据我所知,DLL应该是平台独立的,这对于第一个DLL注册的原因是有意义的,但无法理解第二个DLL没有注册的原因。啊,可能程序集的.NET版本>2.0?您正在使用.NET 2.0中的(64位?)InstallUtil.exe。另外,请查看可用于确定为哪个体系结构编译程序集的选项。尝试运行filemon,查看从何处访问的内容,以查看是否存在任何路径混乱。另外,这个程序集是否有任何本机代码依赖项,这些依赖项也需要与流程的体系结构相匹配。谢谢Chris。处理器架构:Amd64。看起来我需要从32位版本的Exchange复制DLL。谢谢:)