Dienstag, der 13. Mai 2025 - 12:46 Uhr

Exchange Server

Exchange Server

02.02.2017

E-Mail Verkehr per Powershell überwachen

Nachdem wir jetzt wissen, wie man sich per Powershell auf Exchange Online verbindet und ein bisschen Infos anzeigen lässt, gehen wir mal eine Stufe weiter. Ich hatte die Überlegung unser Postfach in dem täglich die Backupmails ankommen auszulesen und entsprechend zu prüfen. Das überschneidet sich ein wenig mit den Monitoring Artikeln aber darauf gehe ich diesmal nicht explizit ein.

Sich die Mails aus einem Postfach anzeigen zu lassen ist bei einer lokalen Exchange installation nun nicht wirklich ein großes Problem. Entweder direkt das Postfach parsen oder die *.eml Dateien entsprechend absuchen lassen. Bei unserer Online Version wird es etwas schwieriger, vorallem da es sich nicht um Benutzerpostfächer handelt sondern um freigegebene Postfächer. Es ist also schlichtweg nicht möglich ohne Umwege die Postfächer zu parsen, also warum nicht gleich den ganzen Mailverkehr auslesen und entsprechend die Filter setzen?

Weiterlesen

Kommentar schreiben
Exchange Server

09.01.2017

Office365: Firma mit PowerShell in Visitenkarte einfügen

Eigentlich ist das wieder so eine richtig einfache Sache, wenn man lange genug sucht.
Nach wirklich lange hin und her wo ich denn nun den Eintrag "Company" in den Attributen finde, kam dieser nur bei "get-user" zum vorschein.

Mittels einer Foreach Schleife ist das aber sehr leicht zu lösen, da man nicht mehrere Identitäten bei "set-user" angeben kann.

Nach ein wenig Recherche bin ich auf ein Script gestoßen, dass das eigentlich alles nacheinander durchführt, aber wir wollen es ja simpel.
Also als erstes mit dem Script aus dem vorherigen Beitrag einloggen.

Testet bitte, ob ihr "$Mailbox.Identity" oder "$Mailbox.UserPrincipalName" braucht, damit die Änderungen übernommen werden. Am besten wie folgt vorgehen:

In der Konsole

get-user | where {$_.SKUAssigned -eq $true} | select-object DisplayName, Identity
eintippen und schauen welches Attribut aus der Mailbox mit der Identität der User übereinstimmt.
Das geht am einfachsten mit:
get-mailbox "jdoe" | select-object UserPrincipalName, Identity

Danach bitte folgendes kopieren und einfügen oder meinetwegen auch über eine *.ps1 Datei ausführen.

$Company = "Dein Firmenname"
$Userlist = Get-Mailbox
    Foreach($Mailbox in $Userlist)
    {
        Set-User -Identity $Mailbox.Identity -Company $Company
    }

#Und zum testen:

get-user | where {$_.SKUAssigned -eq $true} | select-object DisplayName, Company

Magic.


Kommentar schreiben
Exchange Server

09.01.2017

Mit Powershell auf Office365 Exchange arbeiten

Aktuell habe ich für mich gemerkt, dass einige Funktionen über Powershell doch sehr simpel von statten gehen.
Stapelverarbeitung wie diverse Eigenschaften von Benutzern zu ändern und und und.

Zur Grundlage muss man sich erst mal eine *.ps1 Datei erstellen und dann folgende Zeilen kopieren und abändern:

Import-Module MSOnline
$Username = "username"
$Password = ConvertTo-SecureString "password" -AsPlainText -Force
$LiveCred = New-Object System.Management.Automation.PSCredential $Username, $Password
$O365Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $LiveCred -Authentication Basic -AllowRedirection
Import-PSSession $O365Session
Connect-MsolService –Credential $LiveCred

Am schönsten finde ich, wenn man mit dem "Windows Azure Active Direcory Modul für Windows PowerShell" arbeitet. Hier kann man wenigstens noch die Farben ändern.

So und wenn wir uns nun über die Konsole verbunden haben, indem wir in den Pfad der Datei wechseln und sie ausführen hier mal ein paar Beispiele für schnelle Bearbeitung:

#Alle lizensierten User anzeigen

Get-MsolUser | where {$_.isLicensed -eq $true} | sort DisplayName

#Bestimmte Attribute anzeigen

Get-MsolUser | Where-Object {$_.Department -eq "Accounting"}

#Lizenzierte User mit allen Attributen:

Get-MsolUser | where {$_.isLicensed -eq $true} | Select-Object DisplayName, FirstName, LastName, UserPrincipalName, Title, Department, PhoneNumber, MobilePhone, Fax, PreferredLanguage, UsageLocation, Office, StreetAddress, PostalCode, City, State, Country | Format-Table -Property *

#Attribut für Lizensiert und Gruppe ändern

Get-MsolUser | where-object {$_.isLicensed -eq $true} | where-object {$_.Department -eq "IT"} | Set-MsolUser -Country "Germany"

#Alle Attribute für einen bestimmten User anzeigen, damit können Attribute auch selbst ausgewählt werden

Get-MsolUser | where {$_.LastName -eq "Doe"} | Select-Object *

Ich für meinen Teil finde das sehr praktisch um fix Informationen zu bekommen, wo schon sehr viele Konten von Hand angelegt wurden.
Auch organisatorische Informationen lassen sich somit einfach simpler und schneller abändern.

Wer mehr wissen will findet im Technet von Microsoft genügend Stoff.


Kommentar schreiben
Exchange Server

21.06.2016

Exchange Dienste kontrolliert neustarten

#Get List of Microsoft Exchange Services
$services = Get-Service | ? { $_.name -like "MSExchange*" -and $_.Status -eq "Running"}
 
#Restart each service
foreach ($service in $services)
{
Restart-Service $service.name -Force
}

shell
Bild in Originalgröße anzeigen

Quelle:
Restart all services with Powershell


Kommentar schreiben
Exchange Server

21.06.2016

Postfach eines gelöschten AD-Users entfernen

Betrifft Microsoft Exchange 2010 auf SBS 2011

Problem:

Demletzt habe ich einen User aus der AD entfernt und konnte das Postfach weder trennen noch entfernen.
Diese Schritte kann man zur Behebung durchführen:

  1. Exchange Management Shell als Administrator öffnen
  2. Um das Postfach direkt zu trennen folgenden Befehl eingeben:
  3. Get-MailboxDatabase | Clean-MailboxDatabase
  4. Getrennte Postfächer anzeigen lassen:
  5. get-mailboxdatabase | get-mailboxstatistics | Where{ $_.DisconnectDate -ne $null } |fl displayName,Identity,disconnectdate,database
  6. Mailbox entfernen (Name der Datenbank einfügen und Wert der Identity)
  7. Remove-mailbox -database "NameOfDatabase" -storemailboxidentity Identity
     
    #Example:
    Remove-mailbox -database "Database01" -storemailboxidentity c1764c-f20f-4df6-a0e5-b2fa948ab4

Seit Exchange 2010 SP1 hat sich folgendes im CMDLET geändert:

#Getrennte Postfächer durch gelöschte AD-User:
Remove-StoreMailbox -database "Database01" -Identity c1764c-f20f-4df6-a0e5-b2fa948ab4 -MailboxState Disabled
		
#Für verschobene Postfächer (wird nach Ablauf der eingestellten Frist der Datenbank automatisch ausgeführt)
Remove-StoreMailbox -database "Database01" -Identity c1764c-f20f-4df6-a0e5-b2fa948ab4 -MailboxState SoftDeleted

Quellen:
Getrennte Postfächer löschen
Unterschied SoftDeleted und Disabled


Kommentar schreiben
Exchange Server

21.06.2016

Postfachgröße ermitteln

  1. Exchange Management Shell als Administrator ausführen und folgenden Befehl kopieren:
get-mailboxdatabase |get-mailboxstatistics |sort TotalItemSize |FT DisplayName,TotalItemSize

Kommentar schreiben

Themen:

55 Artikel in 6 Kategorien:

  • Exchange Server (16)
  • Linux (6)
  • Microsoft Server (7)
  • Scripting (3)
  • Tutorials (10)
  • Windows (13)