【发布时间】:2011-11-23 13:21:40
【问题描述】:
我正在使用 Windows 系统服务在 Ecxhange 2007 中使用 Powershell 创建邮箱。由于它作为系统服务运行,因此我使用模拟(使用 advapi32.dll)包装 powershell 调用,以具有适当交换权限的用户身份运行它,但是,我收到以下错误消息。
由于以下错误,无法加载 Windows PowerShell 管理单元 Microsoft.Exchange.Management.PowerShell.Admin:“Microsoft.Exchange.Data.Directory.Globals”的类型初始化程序引发异常。
有一篇 Microsoft 知识库文章 (KB943937) 描述了此问题,解决方法是安装 Exchange SP1 RU1,但我目前正在运行 SP3 RU1。我正在使用知识库文章中指定的 -DomainController 参数,但仍然收到相同的错误。
如果我以冒充用户的身份运行服务,则代码运行良好,因此我认为代码没有问题。我试过在 Windows XP 和 Server 2008 上运行它,但遇到了同样的问题。
在 powershell 代码之前调用 System.Security.Principal.WindowsIdentity.GetCurrent().Name 我可以看到模拟工作正常。
以前有人遇到过这种情况吗?
【问题讨论】:
-
@Smallpygmy 很好,你想通了 - 我认为如果你将你的编辑作为答案发布并标记它会很好。 :-)
-
又一个损坏的 Microsoft 支持链接...support.microsoft.com/kb/943937
标签: c# powershell impersonation exchange-server-2007