[英]Calling PowerShell cmdlet from C# throws CommandNotFoundException
[英]Calling Mailbox related PowerShell methods from C# throws exceptions
当我从C#执行以下PowerShell时
param(
[string] $identity,
[string] $domainController)
$perm = 'FullAccess'
Get-MailboxPermission -Identity $identity -User "NT AUTHORITY\SELF" | where { $_.AccessRights -notLike "*$perm*" } | Add-MailboxPermission -User "NT AUTHORITY\SELF" -AccessRights $perm -confirm:$False
Set-Mailbox -Identity:$identity -HiddenFromAddressListsEnabled:$true -DomainController:$domainController -confirm:$False
Set-Mailbox -Identity:$identity -AcceptMessagesOnlyFrom:$identity -DomainController:$domainController -confirm:$False
$mbxPermission = Get-MailboxPermission -Identity:$identity -user:'NT AUTHORITY\SELF'
if ($mbxPermission -ne $null)
{
Remove-MailboxPermission -Identity:$identity -user:'NT AUTHORITY\SELF' –AccessRights:'ReadPermission,FullAccess' -Confirm:$false -DomainController:$domainController
}
我得到一个奇怪的例外:
MapiExceptionLowLevelInitializationFailure:无法加载exrpc32.dll或其依赖的DLL之一(extrace.dll,exhmem.dll,msvcr80.dll等)。
甚至更陌生的事实是,在我看来,几天前它运行良好(但是我不确定帐户配置是否不同)。
技术环境如下:从部署在Win2k3 32bit上的ASP.NET Web服务应用程序调用PowerShell。 Exchange服务器是Win2k8 x64。
安迪的想法? PowerShell出现问题还是服务器配置问题?
在此先感谢您的帮助。
重新启动用于我的Web应用程序的应用程序池后,一切正常。
在这样做之前,我已经隔离了问题。 这两个PowerShell方法中的任何一个
Remove-MailboxPermission -Identity:$identity -user:'NT AUTHORITY\SELF' –AccessRights:'ReadPermission,FullAccess' -Confirm:$false -DomainController:$domainController
和
Get-MailboxPermission -Identity:$identity -user:'NT AUTHORITY\SELF'
造成异常。
我不确定如何追踪根本原因。 这可能与此处描述的情况有关,因此我们在此计算机上安装了较旧版本的Exchange服务器,但是我不确定如何进行检查。
在“添加/删除程序”中,我看到两个位置:-Microsoft Exchange(17,65 MB)-Microsoft Exchange Server 2007(545 MB)
我认为第一个包含Exchange系统管理器(v。6.5.6944.0),另一个包含Exchange管理控制台(Exchange Server 2007 v。08.01.0240.006)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.