Executando Get-MessageTrackingLog como um trabalho em Powershell

2

Estou tentando criar um script do Exchange 2010 que pesquisará cada servidor de transporte como um trabalho. Eu tento o seguinte:

$transportserver = get-transportserver
foreach ($ts in $transportserver)
{
     $ts_name = $ts.name

     $s = New-PSSession -ComputerName $ts_name
     Invoke-Command -Session $s -Script { Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010; Get-MessageTrackingLog -server $args[0] } -Args $ts_name
}

Mas recebo o erro:

Value cannot be null. Parameter name: serverSettings
+ CategoryInfo          : NotSpecified: (:) [Get-MessageTrackingLog], ArgumentNullException
+ FullyQualifiedErrorId : 
     System.ArgumentNullException,Microsoft.Exchange.Management.TransportLogSearchTasks.GetMessageTrackingLog

Eu tentei algumas variações, como adicionar mais parâmetros, mas ele retorna o mesmo erro.

    
por smwk 10.10.2014 / 17:55

1 resposta

0

O script parece muito simples, então eu sinto que seu problema está em outro lugar. talvez tente

invoke-command -computername $srv {Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010; Get-MessageTrackingLog}

Se isso falhar, talvez caminhe em direção a outra solução, com psExec fx. Esta é apenas uma cópia / colagem rápida dos meus scripts pessoais.

$ps = new-object System.Diagnostics.Process
$ps.StartInfo.Filename = "O:\pstools\psexec.exe"

Foreach ($strComputer in $Servers)
{   
    $ps.StartInfo.Arguments = " \" 
    $ps.StartInfo.Arguments += $strComputer.Name 
    $ps.StartInfo.Arguments += " gpupdate.exe /target:computer /force"
    $ps.start()
    $ps.WaitForExit()
}
    
por 14.10.2014 / 13:40