Jump to content

Exchange Management Shell | get-transportservice


Go to solution Solved by ehcm,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Recommended Posts

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 to comment

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 to comment
  • Solution

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 to comment
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...