Exchange 2010 PowerShell: значение. ToMB () метод перестал работать удаленно, но работает локально

Я создаю сообщение об определенных атрибутах почтового ящика с Exchange Server 2010 с помощью PowerShell. Следующий код работал отлично от моей станции управления с помощью удаленного сеанса.

$Mailboxes = Get-mailbox -ResultSize Unlimited 
foreach ($Mailbox in $Mailboxes)
{
$Mailbox | Add-Member -MemberType "NoteProperty" -Name "MailboxSizeMB" -Value (Get-MailboxStatistics $Mailbox).TotalItemSize
}

Однако, когда я добавил.Value. ToMb () метод к атрибуту TotalItemSize, сценарий перестал работать со следующей ошибкой:

$Mailboxes = Get-mailbox -ResultSize Unlimited 
foreach ($Mailbox in $Mailboxes)
{
$Mailbox | Add-Member -MemberType "NoteProperty" -Name "MailboxSizeMB" -Value ((Get-MailboxStatistics $Mailbox).TotalItemSize.Value.ToMb())
}

Вы не можете назвать метод по выражению с пустым знаком. В line:6 char:6 + $Mailbox | добавлять-участник-MemberType "NoteProperty" - "MailboxSizeMB" - Val Имени... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

Не может обработать преобразование аргумента на параметре 'Идентификационные данные'. Не может преобразовать" [Имя Почтового ящика, Отредактированное]" значение типа, "Десериализованного. Microsoft. Exchange. Данные. Каталог. Управление. Почтовый ящик" для ввода "Microsoft. Exchange. Конфигурация. Задачи. GeneralMailboxOrMailUserIdParameter". + CategoryInfo: InvalidData: (:) [Доберитесь-MailboxStatistics], ParameterBindin... mationException + FullyQualifiedErrorId: ParameterArgumentTransformationError, Добраться-MailboxStatistics

И все же... второй блок кода (преобразовывающий TotalItemSize оценивают МБ), работы отлично, когда я выполняю его локально на Exchange Server. Кто-либо может объяснить, почему это только перестало работать удаленно?

1
задан 20 May 2015 в 22:41
2 ответа

Это происходит, когда вам не хватает типов .Net, используемых Exchange. Удаленное взаимодействие PowerShell выполняет некоторую сериализацию, в результате чего некоторые объекты превращаются в «PsObject» вместо полностью строго типизированного объекта. Решение состоит в том, чтобы установить консоль управления Exchange на ваш клиентский компьютер, она будет включать нужные вам типы .Net.

2
ответ дан 3 December 2019 в 18:39

Попробуйте следующее:

Set-ADServerSettings -ViewEntireForest $true -WarningAction SilentlyContinue

Затем запустите набор команд.

1
ответ дан 3 December 2019 в 18:39

Теги

Похожие вопросы