Exchange 2010 PowerShell: Método Value.ToMB () falla de forma remota pero funciona localmente

Estoy creando un informe de ciertos attributes de buzón desde Exchange Server 2010 usando PowerShell. El siguiente código funcionó perfectamente desde mi estación de trabajo de administración usando una session remota.

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

Sin embargo, cuando agregué el método de .Value.ToMb () al atributo de TotalItemSize, la escritura falló con el error siguiente:

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

No puede llamar a un método en una expresión de valor nulo. En la línea: 6 char: 6 + $ Caja | Add-Member -MemberType "NoteProperty" -Name "MailboxSizeMB" -Val … + ~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId: InvokeMethodOnNull

No se puede procesar la transformación de arguments en el parámetro 'Identidad'. No se puede convertir el valor "[Nombre buzón networkingactado]" de tipo "Deserialized.Microsoft.Exchange.Data.Directory.Management.Mailbox" para escribir "Microsoft.Exchange.Configuration.Tasks.GeneralMailboxOrMailUserIdParameter". + CategoryInfo: InvalidData: (:) [Get-MailboxStatistics], ParameterBindin … mationException + FullyQualifiedErrorId: ParameterArgumentTransformationError, Get-MailboxStatistics

Y sin embargo … el segundo bloque de código (convertir el valor de TotalItemSize a MB) funciona perfectamente cuando lo ejecuto localmente en el server de Exchange. ¿Puede alguien explicar por qué esto sólo falla remotamente?

2 Solutions collect form web for “Exchange 2010 PowerShell: Método Value.ToMB () falla de forma remota pero funciona localmente”

Esto sucede cuando te estás perdiendo los types de .Net que Exchange utiliza. PowerShell remoting perfomrs alguna serialization que hace que algunos objects terminen como "PsObject" en lugar de la plena strongy typescript object. La solución es instalar la Consola de administración de Exchange en su equipo cliente, esto includeá los types .Net que necesita.

Prueba esto:

 Set-ADServerSettings -ViewEntireForest $true -WarningAction SilentlyContinue 

A continuación, ejecute el set de commands.

  • Ubicación de la dirección de Exchange 2010
  • Scripts One-To-Many Powershell
  • SCCM 2007 Powershell "Actualizar la pertenencia a la colección"
  • Recostackción de hardware buslogic SCSI y sistema operativo de máquina virtual
  • Administrar VMWare Server con PowerShell y la aplicación de console gratis
  • Importación masiva a AD powershell
  • Cómo get permissions de carpetas de buzones con SamAccountName o UPN?
  • ¿Cómo soluciono el error "Error al get packages por package" al intentar eliminar una aplicación aprovisionada de una image de Windows 8.1 sin connection?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.