Jump to content

Exchange Management Shell | get-transportservice


Direkt zur Lösung Gelöst von ehcm,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

folgender Powershellbefehl wird regelmäßig von unserem Monitoringsystem "PRTG" ausgeführt und funktioniert:

#Öffnen der Exchange Management Shell und verbinden zum Exchange-Server
$pssession = new-pssession -configurationname Microsoft.Exchange -connectionuri "http://MAILSERVER/Powershell/" -Authentication Kerberos
$startsession = import-pssession -session $pssession -allowclobber -WarningAction SilentlyContinue -DisableNameChecking | out-null

#Abruf des aktuellen Datums
$D = get-date -format yyyy.MM.dd

#Abfrage der empfangenen E-Mails
$RS = get-messagetrackinglog -Recipients:alias@domain.com -EventID "RECEIVE" -Start "$D 00:00:00" -End "$D 23:59:59" -Resultsize unlimited | measure-object| Format-Wide count | out-string

#Beenden der Powershellsession
remove-pssession -session $pssession

#Ausgabe des Ergebnisses
Write-Output ("{0}:OK" -f $RS.Trim())

Nun habe ich den Befehl um "Get-TransportService" ergänzt, um alle Exchange-Server in die Zählung einzubeziehen:

#Öffnen der Exchange Management Shell und verbinden zum Exchange-Server
$pssession = new-pssession -configurationname Microsoft.Exchange -connectionuri "http://MAILSERVER/Powershell/" -Authentication Kerberos
$startsession = import-pssession -session $pssession -allowclobber -WarningAction SilentlyContinue -DisableNameChecking | out-null

#Abruf des aktuellen Datums
$D = get-date -format yyyy.MM.dd

#Abfrage der Empfangenen E-Mails
$RS = Get-TransportService | get-messagetrackinglog -Recipients:alias@domain.com -EventID "RECEIVE" -Start "$D 00:00:00" -End "$D 23:59:59" -Resultsize unlimited | measure-object| Format-Wide count | out-string

#Beenden der Powershellsession
remove-pssession -session $pssession

#Ausgabe des Ergebnisses
Write-Output ("{0}:OK" -f $RS.Trim())

Jetzt erhalte ich folgende Fehlermeldung:

Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die
Pipelineeingaben akzeptieren.
    + CategoryInfo          : InvalidArgument: (Exchange2010:PSObject) [Get-MessageTrackingLog], ParameterBindingException
    + FullyQualifiedErrorId : InputObjectNotBound,Get-MessageTrackingLog
    + PSComputerName        : MAILSERVER
 
Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die
Pipelineeingaben akzeptieren.
    + CategoryInfo          : InvalidArgument: (Exchange2013-1:PSObject) [Get-MessageTrackingLog], ParameterBindingException
    + FullyQualifiedErrorId : InputObjectNotBound,Get-MessageTrackingLog
    + PSComputerName        : MAILSERVER
 
Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die
Pipelineeingaben akzeptieren.
    + CategoryInfo          : InvalidArgument: (Exchange2013-2:PSObject) [Get-MessageTrackingLog], ParameterBindingException
    + FullyQualifiedErrorId : InputObjectNotBound,Get-MessageTrackingLog
    + PSComputerName        : MAILSERVER
 
0:OK

Allerdings nur, wenn ich über die Powershell die Exchange Management Shell starte.
Wenn ich den Befehl direkt in die Exchange Management Shell eingebe erhalte ich die gewünschte Rückmeldung.

$D = get-date -format yyyy.MM.dd
$RS = Get-TransportService | get-messagetrackinglog -Recipients:alias@domain.com -EventID "RECEIVE" -Start "$D 00:00:00" -End "$D 23:59:59" -Resultsize unlimited | measure-object| Format-Wide count | out-string
Write-Output ("{0}:OK" -f $RS.Trim())

123:OK

Wie kann ich dieses Problem lösen? :rolleyes:


Viele Grüße
ehcm :cool:

Link zu diesem Kommentar

Hallo zusammen,

 

ich konnte das Problem leider immer noch nicht lösen. Auch das ersetzen von "Get-TransportService" durch "Get-ExchangeServer" oder "Get-MailboxServer" hat keine Verbesserung in der Powershell gebracht (in der Exchange Management Shell funktionieren sie).

 

Da es scheinbar nur an dem Pipe nach dem "Get-TransportService" scheitert, würde ich dieses gerne umgehen. Gibt es eine Möglichkeit mein Skript umzugestalten, dass ich dieses Pipe nicht benötige?

 

Viele Grüße

ehcm

Link zu diesem Kommentar
  • Beste Lösung

Hallo zusammen,

 

ich habe das Problem nun umgangen, indem ich jeden Server einzeln abfrage und anschließend die Ergebnisse addiere.

Ist sicher nicht die sauberste Lösung, aber sie funktioniert. ;)

#Öffnen der Exchange Management Shell und verbinden zum Exchange-Server
$pssession = new-pssession -configurationname Microsoft.Exchange -connectionuri "http://MAILSERVER/Powershell/" -Authentication Kerberos
$startsession = import-pssession -session $pssession -allowclobber -WarningAction SilentlyContinue -DisableNameChecking | out-null

#Abruf des aktuellen Datums
$D = get-date -format yyyy.MM.dd

#Abfrage der empfangenen E-Mails
$rs1 = get-messagetrackinglog -Recipients:alias@domain.com -server MAILSERVER1 -EventID "RECEIVE" -Start "$D 00:00:00" -End "$D 23:59:59" -Resultsize unlimited | measure-object| Format-Wide count | out-string
$rs2 = get-messagetrackinglog -Recipients:alias@domain.com -server MAILSERVER2 -EventID "RECEIVE" -Start "$D 00:00:00" -End "$D 23:59:59" -Resultsize unlimited | measure-object| Format-Wide count | out-string

#Beenden der Powershellsession
remove-pssession -session $pssession 

#Berechnung der gesamten empfangenen E-Mails
$rs = [int] $rs1 +[int] $rs2
$rs = $rs | out-string

#Ausgabe des Ergebnisses
Write-Output ("{0}:OK" -f $rs.Trim())

Viele Grüße

ehcm

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...