Freitag, 25. Mai 2018
Tooltip: PowerShell Verbindung nach O365
mit dem nachfolgenden Script ist es ganz einfach sich per Powershell auf seine O365 Umgebung zu verbinden um dort administrative Tätigkeiten durchführen zu können, https://www.cgoosen.com/2017/03/script-connect-365-ps-connect-to-office-365-services-using-remote-powershell/
Viele Grüße, Jens
Sonntag, 13. März 2016
Kurz notiert: Ausgabe aller Benutzer inkl. letzte Anmeldezeit
mit diesem Script werden alle Benutzer inkl deren letzte Anmeldezeit am Postfach in eine CSV Datei exportiert. Zusätzlich wird noch das Attribut Company mit ausgeben.
$mailbox = get-mailbox -resultsize unlimited
foreach ($mbx in $mailbox) {Get-MailboxStatistics -Identity $mbx | select displayname, lastlogo
ntime, @{name="office";exp={$mbx.office}} | Export-Csv "c:\temp\mailboxes.csv" -Append }
Viele Grüße, Jens
Montag, 10. August 2015
Kurz notiert: Export der Email Adressen einer bestimmten OU
mit diesem PowerShell Script ist es möglich alle Mailbox Benutzer einer bestimmten OU zu exportieren - genauer gesagt wird hier lediglich die primäre Email Adresse exportiert, was aber beliebig erweitert werden kann.
get-mailbox -OrganizationalUnit "OU-Name" -resultsize unlimited | select-object PrimarySmtpAddress | Export-Csv "C:\temp\User.csv" -NoTypeInformation -Delimiter ";"
Freitag, 10. Juli 2015
Handling ausgeschiedene Mitarbeiter
viele Firmen haben das Problem mit Postfachbehandlung ausgeschiedener Mitarbeiter. Sofern das Postfach gelöscht wird, versteht nahezu kein fachfremder ITler diesen komischen NDR, dass dieses Postfach nicht mehr existent ist.
Es muss also eine smartere, benutzer- und kundenfreundlichere Lösung her. Anbei beschreibe ich die Möglichkeit mit wenigen Befehlen eine anständige Abwesenheitsnotiz zentral durch die IT bereitgestellt in Kombination dass eingehende Emails direkt gelöscht werden, so dass das Postfach nicht potentiell überläuft und wieder unlesbare NDRs versendet werden:
Mit dem unten stehenden Befehl wird die OOF Einstellung wieder deaktiviert:
Set-MailboxAutoReplyConfiguration –id
Leider existiert die von Ihnen angeschriebene E-Mailadresse nicht mehr.
Sehr gerne teilen wir Ihnen telefonisch einen persönlichen Ansprechpartner für Ihr Anliegen mit.
Wählen Sie hierzu einfach die Nummer unserer Zentrale.
Besten Dank und mit freundlichen Grüßen,
%Firmendaten%
Montag, 6. Juli 2015
Auswertung Mailbox Auslastung
mit dem unten stehenden PowerShell Script lässt sich einfach die aktuelle Mailbox Auslastung gemessen an der Quota als Exel Export darstellen:
Montag, 1. Dezember 2014
Kurz notiert: Export aller Mitglieder einer Verteilerliste inkl. Details
mit dem folgenden Powershell Script werden sämtliche Mitglieder einer Verteilerliste ausgelesen und mit den entsprechenden Details exportiert:
Mittwoch, 5. November 2014
Kurz notiert: Ausgabe aller Raumpöstfächer die potentiell keine Besprechungsanfragen automatisch akzeptieren
Dienstag, 1. Juli 2014
massenhafte Änderung Alias, UPN und SAMAccountName via CSV (bulk change Alias)
mit diesem Script habe ich eine massenhafte Änderung an den AD Attributen ALIAS und UPN mittels csv Datei durchgeführt:
Import-Csv -Delimiter ‘;’ -Path C:\scripts\file.csv | ForEach-Object{Set-Mailbox $_.name -Alias $_.SAMAccountnameNEW}
Import-Csv -Delimiter ‘;’ -Path C:\scripts\file.csv | ForEach-Object{Set-Mailbox $_.name -SAMAccountName $_.SAMAccountnameNEW}
Import-Csv -Delimiter ‘;’ -Path C:\scripts\file.csv | ForEach-Object{Set-Mailbox $_.name -UserPrincipalName $_.UPN}
Dienstag, 24. Juni 2014
Ausgabe aller aktivierten Active Sync User, die eine bestimmte Email Domäne als primäre SMTP Adresse hinterlegt haben
mit dem nachfolgenden Einzeiler werden alle Exchange Benutzer ausgegeben, die Active Sync aktiviert haben und eine spezielle Email Domäne in der PrimarySmtpAddress hinterlegt haben:
Get-CasMailbox -resultsize unlimited -Filter {ActiveSyncEnabled -eq $true} | where {$_.PrimarySmtpAddress -like "*@contoso.com"} | select-object name, PrimarySmtpAddress | Export-CSV c:\temp\output.csv -NoTypeInformation -encoding utf8
Viele Grüße, Jens
Mittwoch, 18. Juni 2014
Export aller Benutzer einer Email Adress Policy
mit diesem Zweizeiler habe ich mir alle Benutzer in eine CSV Datei exportiert, die einer bestimmten Exchange Email Address Policy zugewiesen sind, inkl. den LinkedMasterAccount noch mit dazu:
$filter = (Get-EmailAddressPolicy '%Name Email Address Policy%').RecipientFilter
Get-Recipient -RecipientPreviewFilter $filter | get-mailbox | Select-Object Name,PrimarySmtpAddress,samaccountname,linkedmasteraccount | Export-CSV c:\temp\output.csv -NoTypeInformation -encoding utf8
Viele Grüße, Jens
Freitag, 28. März 2014
Export UPN aus AD
ich hatte neulich die Anforderung, dass alle UPN Informationen aus dem AD zu exportieren, anbei das PowerShell Script:
Get-ADUser -Filter * -SearchBase "OU=User,OU=OU,DC=Kunde,DC=de" -Properties Enabled, Displayname, Givenname, Surname, EmployeeNumber, EmailAddress, Department, StreetAddress, Title, UserPrincipalName | select Enabled, Displayname, GivenName, Surname, EmployeeNumber, EmailAddress, Department, Title, UserPrincipalName | Export-CSV "C:\output.csv"
Um Get-ADUser zu verwenden muss dieses Feature noch aktiviert werden:
Import-Module ActiveDirectory
Montag, 24. März 2014
ich hatte neulich eine Anforderung, alle unterschiedlichen Namen der Kalender auszugeben. In der Exchange Organisation wurden unterschiedliche Sprachversionen von Outlook verwendet, so dass auch die Ordner "Kalender", in Abhängigkeit der Länderauswahl einen anderen Namen hatte.
Daraufhin ist das unten stehenden Script entstanden:
Das Ergebnis kann auch direkt in eine CSV Datei umgeleitet werden:
FolderNames.ps1 | Export-CSV Foldernames.csv
Viele Grüße Jens
Freitag, 28. Februar 2014
Ausgabe Mitglieder einer Exchange Active Sync Richtlinie
anbei ein kleiner PowerShell Befehl mit dem alle Benutzer einer spezifischen ActiveSync Richtline in eine CSV Datei ausgegeben werden:
Get-CASMailbox -resultsize unlimited | where {$_.ActiveSyncMailboxPolicy -eq "Default"} | Select-Object Name | Export-Csv "C:\temp\Default.csv"
Viele Grüße, Jens
Mittwoch, 7. August 2013
Erweiterte Ausgabe von Exchange Statistiken
$a |Get-Mailboxpermission | where { ($_.IsInherited -eq $false) -and -not ($_.User -like “ NT AUTHORITY\SELF”) -and -not ($_.User -like '*Discovery Management*') } | Select Identity, user, AccessRights | fl
Dienstag, 6. August 2013
Ausgabe der Postfachgröße pro Datenbank
Get-MailboxStatistics -Database "%sernam e%\First Storage Group\mailbox database" | Sort-Object TotalItemSize -Descending | ft DisplayName,@{label="TotalItemSize(MB)";expression={$_.TotalItemSize.Value.ToMB()}},ItemCount
%servername% muss durch den jeweiligen lokalen Exchange Server ausgetauscht werden
Dienstag, 22. März 2011
WTS2008R2: Powershell und Servermanager Icon entfernen
standardmäßig werden ja die Verknüpfungen zur PowerShell und Server Manager in jeder Taskbar angezeigt, anbei das Rezept zum Ausbleden dieser beiden Verknüpfungen guckst du hier, http://social.technet.microsoft.com/Forums/en/winserverTS/thread/976333ab-cac0-417b-b477-64f4fad9d413
Viele Grüße, Jens
Mittwoch, 15. Dezember 2010
Exchange Version auslesen
seit gestern habe ich eine interessante Info herausbekommen, wie es recht einfach ist die aktuelle Exchange Version via PowerShell abzufragen:
GCM exsetup %{$_.Fileversioninfo}
Die Buildnummern für sämtliche Exchange Versionen sind hier hinterlegt:
http://support.microsoft.com/kb/158530/de
Viele Grüße, Jens
Donnerstag, 9. Dezember 2010
automatisches Setzen von Verzeichnisberechtigungen für öffentliche Ordner
wir hatten kürzlich die Anforderung Verzeichnisberechtigugnen für öffentliche Ordner zu setzten. Da der Endbenutzer seine öffentliche Ordnerstruktur gerade am Neuausrichten war, kam eine manuelle Änderung der Verzeichnisberechtigungen auf Zuruf somit nicht in Frage. Denn sonst hätten wir jedes Mal wenn er einen neuen öffentlichen Ordner anlegt mit den Verzeichnisberechtigungen bestücken müssen.
Also haben wir das per PowerShell gelöst und als geplante Aufgabe implementiert, guckst du hier:
$PFMailEnabled_Ordnername = Get-MailPublicFolder | Get-PublicFolder | where-object { $_.ParentPath -like "\Contoso\Finance*" } | Select-Object Identity
$PFMailEnabled_Ordnername | Get-MailPublicFolder | add-adpermission -User Contoso\PF_Admin -AccessRights GenericAll
Viele Grüße, Jens
Montag, 27. September 2010
Move-Mailbox Script für Exchange 2003/2007 Migration
wir hatten im aktuellen Projekt eine Anforderung, haufenweise (weit mehr als 10.000 Benutzer) von Exchange 2003 nach Exchange 2007 zu verschieben. Genauer gesagt durften die Benutzer erst abends verschoben werden um den normalen Geschäftsbetrieb nicht zu beeinträchtigen.
Da wir hier wahrscheinlich extrem viel Zeit gebraucht hätten, haben wir uns ein PowerShell Scritp geschrieben, welches gleich mehrere Dinge auf einmal abdeckt:
- Verschieben alle Postfächer einer bestimmten Datenbank
- Verschieben alle Benutzer der bestimmten Datenbank, die sich seit Datum X nicht mehr angemeldet haben
Das hat zum Vorteil, dass wir tagsüber extrem viel Postfächer verschieben konnten, da eben nur die Postfächer einer bestimmten Datenbank verschoben worden sind, deren Benutzer seit dem Datum X nicht mehr am Exchange angemeldet waren. Da wir diese Info nur mittels WMI Abfrage von Exchange 2003 auslesen können ist das Script in diesem Fall etwas länger geworden:
$arr = @() ; Get-WmiObject -ComputerName %EX2003ServerName% -Namespace ROOT\MicrosoftExchangeV2 -Class Exchange_Mailbox Where-Object { $_.StoreName -eq "EX2003DatenbankName" -and $_.LastLogonTime -lt "20100813" } % { $arr += $_.MailboxDisplayName } ; $arr get-mailbox Move-Mailbox -TargetDatabase "EX2007Servername\Ex2007SGName\EX2007Datenbankname" -MaxThreads 12 -IgnorePolicyMatch -confirm:$false
Viele Grüße, Jens