我正在使用Windows系统服务在使用Powershell的Ecxhange 2007中创建一个邮箱。因为它是作为系统服务运行的,所以我使用模拟(使用advapi32.dll)包装了powershell调用,以便以具有适当交换权限的用户身份运行它,但是,我收到以下错误消息。
由于以下错误,无法加载exception管理单元Microsoft.Exchange.Management.PowerShell.Admin:“”Microsoft.Exchange.Data.Directory.Globals“”的类型初始值设定项引发了异常。“”
有一篇Microsoft知识库文章(KB943937)描述了此问题,修复方法是安装exchange SP1 RU1,但我当前运行的是SP3 RU1。我使用了知识库文章中指定的-DomainController参数,但仍然收到相同的错误。
如果我以模拟用户的身份运行服务,那么代码运行得很好,所以我不认为这是代码的问题。我试过在Windows XP和Server2008上运行它,但也遇到了同样的问题。
在powershell代码之前调用System.Security.Principal.WindowsIdentity.GetCurrent().Name,我可以看到模拟工作正常。
以前有没有人遇到过这个问题?
发布于 2011-09-24 02:22:11
对于将来遇到这种情况的任何人来说,问题是从哪里开始模拟。
您必须在添加管理单元之后但在创建运行空间之前启动模拟。
RunspaceConfiguration rsconfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
PSSnapInInfo info = rsconfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException);
BeginImpersonation();
myRunspace = RunspaceFactory.CreateRunspace(rsconfig);有关完整的源代码,请参阅this文章。
https://stackoverflow.com/questions/7527469
复制相似问题