Sonntag, der 08. September 2024 - 03:15 Uhr

Exchange Server

Exchange Server

31.07.2018

Office365: Mailboxalias ändern nach Namensänderung

Nachdem man in der lokalen AD bei einem User den Namen geändert hat (zB. durch Heirat) ist es eigentlich simpel nach der Synchronisation auch weiterhin alles zu benutzen. Das Problem ist aber, dass die Mailbox den Alias nicht ändert; Somit ist ein Get-Mailbox mmuster nicht möglich, wenn dieser vorher Maier hieß und das Postfach mit Get-Mailbox mmaier aufgerufen wurde.

Und auch hier geht man in die Powershell und macht ein

Get-Mailbox mmaier | Set-Mailbox -alias "mmuster"

folgt darauf diese Fehlermeldung:

Fehler bei Vorgang für Postfach "Max Muster", da es außerhalb des Schreibbereichs für den aktuellen Benutzer liegt. Die Aktion 'Set-Mailbox', 'Alias', kann nicht für das Objekt 'Max Muster' durchgeführt werden, weil
dieses Objekt von lokal synchronisiert wird. Diese Aktion sollte lokal für das Objekt durchgeführt werden.
    + CategoryInfo          : InvalidOperation: (Max Muster:ADObjectId) [Set-Mailbox], InvalidOperationException
    + FullyQualifiedErrorId : [Server=VI1PR0,RequestId=b1334ad0-eb79-4319-95cb-c26d11b61d40,TimeStamp=31.07.2018 12:23:27] [FailureCategory=Cmdlet-InvalidOperationException] EA6DB214,Microsoft.Exchange.Management.RecipientTa
   sks.SetMailbox
    + PSComputerName        : ps.outlook.com

Im Internet findet man daraufhin als Lösung man müsse in der AD das Attribut "mailNickname" ändern. Hm, was aber wenn dieses nicht existiert? Dann gehen wir halt direkt in die AzureAD. Also führen wir folgende Befehle aus (AD Powershell v2 vorausgesetzt):

Connect-AzureAD

Get-AzureADUser -objectID "UserPrincipalName" | Set-AzureADUser -Mailnickname "alias"

zB:

Get-AzureADUser -objectID "mmuster@contoso.com" | Set-AzureADUser -Mailnickname "mmuster"

#Danach funktioniert auch folgender Befehl:

Get-Mailbox mmuster

Quelle:
Ausnahmsweise mal selbst herausgefunden


Kommentar schreiben
Exchange Server

22.02.2018

Office365: Freigegebene Postfächer mit der Powershell verwalten

Postfächer auflisten

Get-Mailbox | where {$_.RecipientTypeDetails -eq "SharedMailbox"} | select DisplayName, Alias, UserPrincipalName, PrimarySmtpAddress | sort DisplayName | FT -autosize

Mitglieder der Postfächer auflisten

$alias = Read-Host 'Geben Sie den Alias der Mailbox ein'

Get-MailboxPermission -identity $alias | where {$_.AccessRights -eq "FullAccess" -and $_.User -notlike "EURPR*" -and $_.User -notlike "NT*"}

Mitglieder hinzufügen / entfernen

#### Benutzer hinzufügen ####

$mailbox = Read-Host 'Geben Sie den Alias der Mailbox ein'

$identity = get-mailbox -identity $mailbox

$user = Read-Host 'Name des Benutzers (z.B. mmuster)'

Add-Mailboxpermission -Identity "$identity" -User "$user" -AccessRights FullAccess -InheritanceType All

Add-RecipientPermission -Identity "$identity" -AccessRights SendAs -Trustee "$user" -Confirm:$False

Um einen Benutzer zu entfernen ist es nötig, vorher das Automapping zu entfernen, was schon in diesem -> Artikel <- beschrieben wurde.

#### Benutzer entfernen ####

$mailbox = Read-Host 'Geben Sie den Alias der Mailbox ein'

$identity = get-mailbox -identity $mailbox

$user = Read-Host 'Name des Benutzers (z.B. mmuster)'

Add-MailboxPermission -Identity "$identity" -User "$user" -AccessRight FullAccess -Automapping $false

Remove-MailboxPermission -Identity "$identity" -User "$user" -AccessRights FullAccess -Confirm:$False

Remove-RecipientPermission -Identity "$identity" -AccessRights SendAs -Trustee "$user" -Confirm:$False

Alle zugewiesenen Postfächer auflisten

$user = Read-Host 'Geben Sie den namen des Benutzers ein (z.B. mmuster)'

$mailboxes = Get-Mailbox -RecipientTypeDetails "SharedMailbox" | Get-MailboxPermission -User $user 

$sharedmailboxes = Foreach($Mailbox in $mailboxes)
{
	Get-Mailbox -identity $Mailbox.Identity -RecipientTypeDetails "SharedMailbox"
}

$identity = get-user -identity $user

write-host -foregroundColor green "`nDer Benutzer ""$identity"" hat folgende Postfächer zugewiesen:"

$sharedmailboxes | select DisplayName,PrimarySmtpAddress | sort DisplayName | FT @{Expression={$_.DisplayName};Label="Name"},@{Expression={$_.PrimarySmtpAddress};Label="E-Mail Adresse"} -AutoSize

Und hier mal wieder eine eierlegende Wollmilchsau mit allen Funktionen zusammengefast:

DOWNLOAD:
ManageSharedMailbox.ps1


Kommentar schreiben
Exchange Server

19.02.2018

Office365: Mit der Powershell Gruppeninformationen besorgen

Hier mal ein paar nützliche Scriptschnipsel um sich das Leben mit Office365 zu vereinfachen.
Am Ende gibt es sogar einen "Bonus".

Alle Office365 Gruppen anzeigen lassen:

Get-UnifiedGroup | where {$_.RecipientTypeDetails -eq "GroupMailbox"} | select DisplayName, Alias

Script um Mitglieder und Besitzer der Gruppen anzeigen lassen:

$alias = Read-Host 'Geben Sie den Alias der Gruppe ein'

$Userlist = Get-UnifiedGroupLinks –Identity $alias –LinkType Members
$OwnerList = Get-UnifiedGroupLinks –Identity $alias –LinkType Owners
 
$user = Foreach($Mailbox in $Userlist)
{
	get-user -identity $Mailbox.alias | select DisplayName
}

$owner = Foreach($Mailowner in $OwnerList)
{
	get-user -identity $Mailowner.alias | select DisplayName
}

$group = Get-UnifiedGroup -identity $alias | select -ExpandProperty DisplayName

write-host -foregroundcolor Green "`nFolgende Benutzer sind in der Gruppe ""$group"" als Besitzer hinterlegt:"

$a = $owner | sort DisplayName | FT -AutoSize -HideTableHeaders | out-string

write-host -foregroundcolor Yellow $a

write-host -foregroundcolor Green "`nFolgende Benutzer sind in der Gruppe ""$group"" als Mitglied hinterlegt:"

$b = $user | sort DisplayName | FT -AutoSize -HideTableHeaders | out-string

write-host -foregroundcolor Yellow $b
}

Verteilergruppen auflisten und Mitglieder anzeigen:

Get-DistributionGroup | Select DisplayName,Identity | sort DisplayName | FT -autosize

$identity = Read-Host 'Geben Sie die Identität der Verteilergruppe ein'

write-host -foregroundcolor Green "`nFolgende Benutzer sind im Verteiler ""$identity"" als Besitzer hinterlegt:"

Get-DistributionGroup -Identity $identity | select-object -expandproperty ManagedBy | sort ManagedBy

write-host -foregroundcolor Green "`nFolgende Benutzer sind im Verteiler ""$identity"" als Mitglied hinterlegt:"

Get-DistributionGroupMember -Identity $identity | Select DisplayName | Sort DisplayName | FT -HideTableHeaders -AutoSize

Script um alle Gruppenmitgliedschaften eines Benutzers anzuzeigen:

do{
$UserName = Read-Host 'Geben Sie den Namen des Benutzers ein (z.B: mmuster)'

$User = Get-User $UserName
}
until ($?)

$owner  = Get-Group | Where-Object {$_.ManagedBy -contains $User -and $_.RecipientTypeDetails -eq "GroupMailbox"} | select DisplayName
$groups = Get-Group | Where-Object {$_.Members -contains $User -and $_.RecipientTypeDetails -eq "GroupMailbox"} | select DisplayName
$dgroupmember = Get-Group | Where-Object {$_.Members -contains $User -and $_.RecipientTypeDetails -eq "MailUniversalDistributionGroup" -or $_.RecipientTypeDetails -eq "MailUniversalSecurityGroup"} | select DisplayName
$dgroupowner = Get-DistributionGroup | Where {$_.ManagedBy -contains $User} | Select DisplayName, PrimarySmtpAddress

write-host -foregroundcolor Green "`nDer Benutzer ""$User"" ist Mitglied folgender Gruppen:"

$groups | sort DisplayName | FT -AutoSize -HideTableHeaders

write-host -foregroundcolor Green "`nDer Benutzer ""$User"" ist Besitzer folgender Gruppen:"

$owner | sort DisplayName | FT -AutoSize -HideTableHeaders

write-host -foregroundcolor Green "`nDer Benutzer ""$User"" ist Mitglied folgender Verteilergruppen:"

$dgroupmember | sort DisplayName | FT -AutoSize -HideTableHeaders

write-host -foregroundcolor Green "`nDer Benutzer ""$User"" ist Besitzer folgender Verteilergruppen:"

$dgroupowner | sort DisplayName | FT -AutoSize -HideTableHeaders

write-host -foregroundcolor Green "`nDer Benutzer ""$User"" ist weiterhin in folgenden Gruppen Mitglied:"

$securityGroup = Get-MsolGroup | where {$_.GroupType -eq "Security"}

$list = foreach ($group in $securityGroup)
{
$members = Get-MsolGroupMember -GroupObjectId $group.ObjectId | where {$_.DisplayName -contains $User}

foreach ($member in $members)
{
$group | select DisplayName, GroupType
}
}
$list | sort DisplayName

Ein komplettes Script mit Auswahlmöglichkeiten zum experimentieren:

DOWNLOAD:
ManageGroups.ps1


Kommentar schreiben
Exchange Server

26.01.2018

Single Sign On (SSO) in Outlook 2016 mit AzureAD

Ja voll geil jetzt haben wir mit AD Connect eine Hybrid AD hergestellt, aber halt.. Jetzt müssen die sich ja alle in Outlook erneut authentifizieren. Aber es gibt einen Weg das zu umgehen mit SSO auf Outlook 2016 und das funktioniert ganz gut. Warum haben wir kein ADFS? Ganz einfach, wer hat denn heute noch Windows Server 2008 im Einsatz?

Was wir brauchen:

  • Einen Domänencontroller mit laufender AD Connect (mindestens Windows Server 2012 R2)
  • Exchange Online (mindestens Business Premium) und AzureAD Basic
  • Viel Geduld
Weiterlesen


Kommentar schreiben
Exchange Server

25.01.2018

AzureAD Connect: Failed to set the Connector

Neues Jahr neue Projekte, neue Probleme.

Beim Konfigurieren von AD Connect hab ich bewusst die Entscheidung getroffen, die benutzerdefinierte Installation zu wählen. Der Grund dafür ist simpel: benutzerdefinierte Attribute zur Synchronisation der Benutzer. Denn keiner möchte seine Testuser mit Office365 synchronisieren. In meinem Fall entschied ich mich für "employeeID" dieses Feld wird für jeden aktiven Benutzer ausgefüllt.

Man hat schließich die Möglichkeit im Setup von AD Connect diese Attribute auszuwählen, aber selbst wenn der erste durchlauf nach Fehlern gelaufen ist, kommt nochmal einer der hat es in sich:


Failed To Set the Connector. <error>E_MMS_SCHEMA_CLASS_NOT_FOUND</error>


https://jorgequestforknowledge.files.wordpress.com/2016/01/image6.png
https://jorgequestforknowledge.files.wordpress.com

Das Schema über den Synchronisation Service Manager zu aktualisieren resultiert nur in Fehlern und bringt nicht die Lösung. Bei meiner Recherche bin ich dann über eine Seite gestolpert, die mir den entsprechenden Hinweis gegeben hat.

Die nächsten Schritte sollten genau so ausgeführt werden, nachdem dieser Fehler aufgetreten ist:

Den Assistenten beenden, das MSI Paket starten, AD Connect deinstallieren und unter "C:\Program Files\Microsoft Azure AD Sync\Data" alles löschen. Nun das MSI Paket wieder starten und die Installation erneut starten.

Sobald man bei der Benutzerauthentifizierung angelangt ist folgende Schritte durchführen:

  • Azure AD Synchronisation Service Manager starten und auf den Reiter "Metaverse Designer" klicken
  • Dort einen Doppelklick auf das "person" Objekt
  • Auf "New Attribute" klicken
  • Den Attributsname definieren, in meinem Fall "employeeID"
  • Haken bei "Indexed" setzen
  • Alle Fenster nun mit OK bestätigen.

Ab hier kann man mit der Konfiguration fortfahren, der Fehler sollte nicht mehr erscheinen und das Setup erfolgreich durchlaufen

Quelle:
https://jorgequestforknowledge.wordpress.com/2016/01/10/joining-criteria-in-azure-ad-connect-throws-an-error-when-leveraging-a-custom-attribute/


Kommentar schreiben
Exchange Server

04.08.2017

Outlook: Entfernen von freigegebenen Postfächern nicht möglich

Freigegebene Postfächer sind schon was nützliches. Seit Office 365 ist das über die EAC sehr simpel zu handhaben.

Jeder der Zugriff auf das Postfach möchte, wird als Stellvertretung mit Vollzugriff eingetragen und innerhalb der nächsten Stunde erscheint es gemappt in Outlook.

Was passiert aber, wenn der Benutzer das Postfach nicht mehr braucht? Best practice wäre, man nimmt über die EAC den Vollzugriff wieder weg und das Postfach sollte dann auch wieder verschwinden.

Pustekuchen. Microsoft hat das mit dem Automapping irgendwie nicht so ganz hinbekommen, heißt das Postfach wird immer wieder neu hinzugefügt, aber nie synchronisiert.

Einen Workaround gibt es dafür aber. Mit der Powershell einloggen und folgende Befehle ausführen:

Add-MailboxPermission -Identity SharedMailbox -User "jdoe" -AccessRight FullAccess -InheritanceType All -Automapping $false
Remove-MailboxPermission -Identity sharedmailbox@contoso.com -User jdoe@contoso.com -AccessRights FullAccess

Outlook neu starten und nach ca. einer Stunde wird das Postfach aus Outlook automatisch entfernt.

Quelle:
https://support.microsoft.com/de-de/help/2646504/how-to-remove-automapping-for-a-shared-mailbox-in-office-365


Kommentar schreiben
Exchange Server

13.06.2017

Office365: Gruppen und Geräte in Adressbuch ausblenden

Um ein bisschen im Globalen Adressbuch aufzuräumen, erst mit Poweshell auf Office 365 einloggen und dann folgende Befehle durchführen:

Einzelne Gruppe ausblenden:

Get-UnifiedGroup "Gruppe" | Set-UnifiedGroup -HiddenFromAddressListsEnabled $true 

Alle Gruppen ausblenden:

Get-UnifiedGroup | Set-UnifiedGroup -HiddenFromAddressListsEnabled $true 

Geräte ausblenden:

Get-Mailbox | Where {$_.ResourceType -eq "Equipment"} | Set-Mailbox -HiddenFromAddressListsEnabled $true

Kommentar schreiben
Exchange Server

12.06.2017

Exchange Internetkalender: Synchronisation auf Mobilen Geräten deaktivieren

Wer einen Internetkalender nutzt, der wird mit Sicherheit auch schon bemerkt haben, dass unter Exchange auch auf allen anderen Geräten synchronisiert wird.

Wenn man jetzt in diesem Kalender so ca. 200 Einträge hat und pro Tag um die 10 Stück dann ist die Ansicht im Kalender auf dem Smartphone gleich mal komplette belegt mit Terminen.

Es gibt aber eine einfache Lösung wie man sich da abhelfen kann.

Zuerst geht man in Outlook in die Kontoeinstellungen. Im Reiter "Internetkalender" den entsprechenden Kalender auswählen und auf ändern klicken:

Internetkalender_1


Im nachfolgenden Fenster die folgende Option abwählen und speichern:

Internetkalender_2

Danach auf dem Smartphone den Kalender neu Synchronisieren lassen.


Kommentar schreiben
Exchange Server

02.06.2017

Raumbuchung: Details anzeigen in Office365

Wer in seiner Office365 Umgebung auch die Raumbuchung nutzt, der wird bestimmt schon einmal bemerkt haben, dass im Kalender eigentlich so gut wie keine Informationen bereitgestellt werden.

Im Prinzip wird nur der Ort und der Organisator dargestellt. Auch Informationen die man in die Besprechung einträgt bleiben verborgen. Nun machen wir es uns einfach und setzen mit der Powershell entsprechende Parameter um uns Betreff und Kommentar wie im privaten Kalender anzeigen zu lassen.

Wie man sich mit Powershell auf Office365 verbindet, habe ich ja bereits erklärt: klick

Unser Raum heißt jetzt einfach mal, Besprechungsraum. In der Powershell lassen wir uns erst einmal alle Parameter ausgeben:

Get-CalendarProcessing -Identity besprechungsraum@firma.com | FL

Im Folgenden setzen wir dann die Parameter um unser Vorhaben zu realisieren:

Set-CalendarProcessing -Identity besprechungsraum@firma.com -DeleteSubject $False -AddOrganizerToSubject $False -DeleteComments $False

Überprüft es danach mit der Set- Variable und erstellt eine neue Besprechung für den Raum.

Quelle:
Name des Organisators statt Betreff - Exchange Online


Kommentar schreiben
Exchange Server

23.02.2017

Arbeiten mit Verteilern: Mitglieder hinzufügen

Gehen wir davon aus, eine Abteilung möchte gerne einen Verteiler haben. Da wir ja so richtig krass unterwegs sind und schon alle Mitarbeiter in Abteilungen unterteilt haben, machen wir das easy peasy mit der Shell.

$group = "Marketing"

$Userlist = Get-User | where {$_.Department -eq $group}

Foreach($Mailbox in $Userlist)
{
	Add-DistributionGroupMember -Identity $group -Member $Mailbox.Identity
}

Bonus: Wer jetzt auch noch möchte, das alle Nutzer im Auftrag Mails senden können, der möge folgendes hinzufügen:

$Members = Get-DistributionGroupMember -id $group

ForEach ($Member in $Members)
{
	Add-RecipientPermission $group -AccessRights SendAs -Trustee $Member.name -Confirm:$False
}

Quelle: Technet


Kommentar schreiben

Themen:

55 Artikel in 6 Kategorien:

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