0

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、exchmem.dll、msvcr80.dll など) の 1 つを読み込めません。

さらに奇妙なのは、数日前は問題なく動作していたように見えるという事実です (ただし、アカウント構成が異なっていた可能性はありません)。

技術的な環境は次のとおりです。 PowerShell は、Win2k3 32bit にデプロイされた ASP.NET Web サービス アプリケーションから呼び出されます。Exchange サーバーは Win2k8 x64 です。

アンディのアイデア?PowerShell に何か問題がありますか、それともサーバー構成ですか?

助けてくれてありがとう。

4

1 に答える 1

0

Webアプリケーションに使用されているアプリケーションプールを再起動すると、すべてが正常に機能します。

そうする前に、私は問題を切り分けました。2つの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サーバーがインストールされていますが、それを確認する方法がわかりません。

[プログラムの追加と削除]に、次の2つの位置が表示されます。-Microsoft Exchange(17,65 MB)-Microsoft Exchange Server 2007(545 MB)

最初の1つにはExchangeSystemManager(v。6.5.6944.0)が含まれ、もう1つにはExchange管理コンソール(Exchange Server 2007 v。08.01.0240.006)が含まれていると思います。

于 2011-02-17T11:15:08.737 に答える