Вызов связанных с почтовым ящиком методов PowerShell из C # создает исключения - PullRequest
0 голосов
/ 16 февраля 2011

Когда я выполняю следующую PowerShell из C #

   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 и т. Д.).

Еще более странным является тот факт, что мне кажется, что он работал нормально несколько дней назад (но я не уверен, что, возможно, конфигурация учетной записи была другой).

Техническая среда выглядит следующим образом: PowerShell вызывается из приложения веб-службы ASP.NET, которое развернуто на Win2k3 32bit. Сервер Exchange - это Win2k8 x64.

Энди идеи? Что-то не так с PowerShell или это скорее конфигурация сервера?

Заранее спасибо за любую помощь.

1 Ответ

0 голосов
/ 17 февраля 2011

После перезапуска пула приложений, который используется для моего веб-приложения, все работает правильно.

Перед этим я выделил проблему. Любой из двух методов 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 МБ) - Microsoft Exchange Server 2007 (545 МБ)

Я думаю, что первый содержит Exchange System Manager (v. 6.5.6944.0), другой содержит консоль управления Exchange (Exchange Server 2007 v. 08.01.0240.006)

...