没有为Windows PowerShell版本2注册管理单元 No snap-ins have been registered for windows powershell version 2

2011年5月5日 | 分类: 开发 | 标签: , , , ,

使用Visual Studio 2010调用Exchange Management Shell开发程序,创建好Windows Form后在启动调试时报如下错误:

没有为Windows PowerShell版本2注册管理单元

错误指向添加Exchange PSSnapIn处:

PSSnapInInfo info = rc.AddPSSnapIn(“Microsoft.Exchange.Management.PowerShell.Admin”,out snapEx);

解决方法如下:

本人系统是64位Windows 7企业版,而Exchange 2007 PowerShell也只支持64位平台,但是我这个Visual Studio 2010创建的项目默认却是在x86平台下生成程序和调试的,所以解决方法就是在Visual Studio中,鼠标右键点击“解决方案->属性->生成”,在“目标平台”处选择“Any CPU”或“X64”保存后再运行即可正常。

在Win7 x64企业版或者Windows Server 2008 R2下,powershell分别位于“%SystemRoot%\System32\WindowsPowerShell\V1.0” 和“%SystemRoot%\SysWOW64\WindowsPowerShell\V1.0”,也就是一个x86平台下的,一个x64平台下的,如果程序是运行于x86平台,则它会去调用system32下的PowerShell,而EMS只支持x64平台,所以导致报错,无法正常调试程序。

Written by Nile Jiang
无猖狂以自彰,当阴沉以自深。

目前还没有任何评论.
注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。