首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从C#对Powershell和Exchange2007使用模拟时出错

从C#对Powershell和Exchange2007使用模拟时出错
EN

Stack Overflow用户
提问于 2011-09-23 18:16:05
回答 1查看 2K关注 0票数 0

我正在使用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,我可以看到模拟工作正常。

以前有没有人遇到过这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-24 02:22:11

对于将来遇到这种情况的任何人来说,问题是从哪里开始模拟。

您必须在添加管理单元之后但在创建运行空间之前启动模拟。

代码语言:javascript
复制
RunspaceConfiguration rsconfig = RunspaceConfiguration.Create();
PSSnapInException snapInException = null;
PSSnapInInfo info = rsconfig.AddPSSnapIn("Microsoft.Exchange.Management.PowerShell.Admin", out snapInException);
BeginImpersonation();
myRunspace = RunspaceFactory.CreateRunspace(rsconfig);

有关完整的源代码,请参阅this文章。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7527469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档