我使用Windows系统服务在使用Powershell的Ecxhange 2007中创建邮箱。因为它是作为系统服务运行的,所以我使用模拟(使用advapi32.dll)来包装powershell调用,以具有适当交换权限的用户身份运行它,但是,我收到以下错误消息。从C使用Powershell和Exchange 2007模拟时出错#
由于以下错误,无法加载Windows PowerShell管理单元Microsoft.Exchange.Management.PowerShell.Admin:“Microsoft.Exchange.Data.Directory.Globals”的类型初始值设定项引发异常。
有一个Microsoft知识库文章(KB943937)描述了此问题,修复方法是安装Exchange SP1 RU1,但我当前正在运行SP3 RU1。我使用KB文章中指定的-DomainController参数,但仍然收到相同的错误。
如果我以用户身份运行该服务,我模拟代码运行良好,所以我不认为这是代码问题。我试着在Windows XP和Server 2008上运行这个同样的问题。
在powershell代码之前调用System.Security.Principal.WindowsIdentity.GetCurrent().Name
我可以看到模拟工作正常。
有没有人遇到过这个?
试试看这个答案http://stackoverflow.com/questions/11806/how-do-you-impersonate-an-active-directory-user-in-powershell –
@Smallpygmy好你想到了 - 我想它如果您将编辑作为答案进行发布并标记为“好”,那就很好。 :-) – Matt