Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.

Emails in Exchange per Powershell suchen und löschen

Manchmal steht man vor der Aufgabe, das einzelne mails aus einem Benutzerpostfach gelöscht werden sollen, z.B. weil Sie Schadcode enthalten, oder auch, weil das Postfach geleert werden soll. Mit Hilfe der Exchange-eigenen Cmdlet Search-Mailbox geht das sehr einfach.

Starten Sie die Exchange Management-Shell. Eine Anleitung der Installation der Shell finden Sie im Artikel "Exchange Cmdlet in Powershell nutzen". Achten Sie darauf, dass Sie das Cmdlet "Search-Mailbox" nicht sehen, solange Sie nicht Mitglieder der Rolle "Mailbox Import Export" sind - das gilt sogar dann, wenn Sie als Organisationsadministrator angemeldet sind. Alternativ können Sie das Problem auch umgehen, indem Sie die Exchange-Snapins direkt importieren. 

Anschliessend rufen Sie das Cmdlet Search-Mailbox auf. Der Parameter Identity gibt dabei an, welche Mailbox(en) Sie suchen. Alternativ können Sie die Mailboxen auch per Pipeline an Search-Mailbox übergeben. Mit Hilfe des Parameters -Searchquery geben Sie an, welche Nachrichten gesucht werden. Das Cmdlet verwendet für die Definition der Suchabfragen die KQL (Keyword Query Language). Ein einfaches Beispiel für eine Suche nach dem Begriff "Verrat" in allen mails aller mailboxen sieht so aus: 

Get-Mailbox | Search-Mailbox -SearchQuery 'Verrat' -TargetMailbox 'Administrator' -TargetFolder 'NSA' 

 

Weiterlesen
22747 Aufrufe
0 Kommentare

Exchange-Cmdlets in Powershell-Scripten nutzen

Wenn Sie Exchange 2013 oder 2016 per Powershell remote administrieren wollen, ohne sich auf den Exchange-Server per Powershell Remoting zu verbinden, oder wenn Sie Scripte von einer Management-Maschine aus starten wollen, brauchen Sie die Exchange-Snapins. Diese müssen Sie von den Exchange-Quellen nachinstallieren. Um die Installation starten zu können, müssen Sie allerdings eine Reihe von Software-Komponenten installiert haben. Am einfachsten geht dies über den Powershell-Befehl "Enable-WindowsoptionalFeature" auf dem Client bzw. Install-WindowsFeature auf dem Server:

Enable-WindowsOptionalFeature -Name IIS-WebServerRolead,IIS-WebServerManagementTools,IIS-IIS6ManagementCompatibility,IIS-Metabase,IIS-ManagementConsole,IIS-LegacySnapIn

Danach können Sie (für Exchange 2013) einfach über das Setup die automatisiert Installation der Exchange Management-Shell aufrufen:

Setup.exe /Role:ManagementTools /IAcceptExchangeServerLicenseTerms

Für die Installation können Sie einfach das aktuellste Exchange CU (Cumulative Update) nutzen, da das CU die komplette Exchange-Installation beinhaltet. 

Weiterlesen
11398 Aufrufe
0 Kommentare

Benutzereinstellungen in Office 365 und Exchange Online mit Powershell setzen

Benutzereinstellungen in Office 365 kann über die Weboberfläche mühsam sein, da das Webinterface nicht unbedingt schnell ist. Außerdem möchte man eine große Anzahl von Änderungen auch ungerne per Hand eintickern. Aber zum Glück kann man in Office 365 ja alles über Powershell steuern. ;-) Im folgenden Beispiel zeige ich, wie man Adressbuch-Informationen in Exchange Online setzt, aber die meisten anderen Einstellungen lassen sich genauso leicht konfigurieren. 

Zuerst muß man den Microsft Online Services Anmelde-Assistenten für IT-Experten RTW (sprechen Sie das 10 mal hintereinander schnell aus) und das Azure Active Directory-Modul für Windows Powershell installieren. Anschliessend können Sie eine Powershell-Konsole öffnen und sich mit Office 365 verbinden:

# die Office 365 Anmeldedaten abfragen und speichern
$UserCredential = Get-Credential 
# Mit den Anmeldedaten eine Verbindung mit Microsoft Online (MSol) herstellen
Connect-MsolService -Credential $UserCredential 
# Jetzt eine Remote-Sitzung zu einem Server herstellen
$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://outlook.office365.com/powershell-liveid/" -Credential $UserCredential -Authentication "Basic" -AllowRedirection
# Die Powershell-Befehle der Remote-Sitzung können auf den lokalen Rechner importiert werden
Import-PSSession -Session $ExchangeSession
# Alle User anzeigen
Get-User
# Und die Telefonnummer eines Users verändern
Get-User -Identity holger.voges | Set-User -Phone

Um eine Gruppe von Benutzern aus einer CSV-Datei heraus zu ändern, ist direktes Pipen der Daten aus dem csv-Datei, wie es mit den AD-Cmdlets seit Windows Server 2012 geht, leider nicht möglich. Hier behelfen wir uns mit einem kleinen Workaround. Gehen wir davon aus, dass wir eine csv-Datei mit Benutzerdaten haben, deren Inhalt ungefährt so aussieht:

"Name","Company","Phone"
"dummy.user","Netz-Weise","0511-16592599"
"holger.voges","Netz-Weise","0511-1659250"
"julia.voges","Netz-Weise","0511-16592512"

Weiterlesen
2802 Aufrufe
0 Kommentare
Nach oben