Den Zugriff auf den OWA bzw. ActiveSync Dienst mittels Gruppenmitgliedschaft zu steuern macht aus mehren Gründen Sinn.
- Man behält die Übersicht über die Zugriffe – wer darf/wer nicht
- Die Gruppe kann gleichzeitig als Verteilerliste genutzt werden
- Mitglieder der Gruppe können auf dem TMG Server für den OWA/ActiveSync Dienst unabhängig voneinander berechtigt werden, was die Sicherheit erhöht.
Die Aktivierung/Deaktivierung der einzelnen Mailbox-Features auf Basis der Gruppenmitgliedschaft war allerdings nicht so einfach. Man könnte hingehen und alle Benutzern die Funktion OWA & ActiveSync deaktivieren und anschließend nur für die Gruppenmitglieder wieder aktivieren. Dies führt jedoch dazu, dass es einen kurzen Zeitraum gibt, in dem auch für die Mitarbeiter die OWA und/oder ActiveSync kurzzeitig deaktiviert ist und somit z.B. mobile Geräte nicht mehr syncen. Je nachdem wie viele Mitarbeiter Postfächer haben, sind das schon ein paar Minuten die zwischen dem Deaktivierungs- & Aktivierungslauf liegen.
Also musste eine Lösung her, die auf Basis der Gruppenmitgliedschaft den Dienst garnicht erst aktiviert bzw. deaktiviert. Das Ergebniss sind nachfolgende Befehle, bei denen jedoch der "Gruppenname" durch den Gruppennamen zu OWA/ActiveSync Steuerung ersetzt werden muss sowie "DB-ServernameX" durch den Servernamen für den die Dienste aktiviert/deaktiviert werden sollen.
Eine Begrenzung auf Server ist notwendig, da der gesamte Forest durchsucht wird und andernfalls Weltweit auch in anderen Ländern Änderungen vorgenommen werden. Um bei der Deaktivierung nicht über alle Postfächer laufen zu müssen, kann man mittesl AddDays festlegen wie neu ein Postfach sein muss, damit angepasst wird. Bedeutet, setzt man AddDays auf -2 und lässt das Script autoamtisch jeden Tag laufen, wird OWA und/oder ActiveSync nur bei den Postfächern deaktiviert, die nicht älter als 2 Tage sind.
$date = (Get-Date).AddDays(-20).ToShortDateString() $groupidentityOWA = $(Get-Group -DomainController ServerDC1 "Gruppe OWA enable").Identity.DistinguishedName $groupidentityActiveSync = $(Get-Group -DomainController ServerDC1 "Gruppe ActiveSync enable").Identity.DistinguishedName#disable OWA for all non group members where the mailbox was created in the last $date Get-Mailbox -Filter{(memberofgroup -ne $groupidentityOWA) -and (whencreated -gt $date)} -ResultSize unlimited -IgnoreDefaultScope | where {($_.Database -like "ExServer1*") -or ($_.Database -like "ExServer2*")} | Set-CASMailbox -IgnoreDefaultScope -OWAEnabled $false# enable OWA for all group members Get-Mailbox -Filter{(memberofgroup -eq $groupidentity)} -ResultSize unlimited -IgnoreDefaultScope | where {($_.Database -like "ExServer1*") -or ($_.Database -like "ExServer2*")} | Set-CASMailbox -IgnoreDefaultScope -OWAEnabled $true#disable ActiveSync for all non group members Get-Mailbox -Filter{(memberofgroup -ne $groupidentityActiveSync) -and (whencreated -gt $date)} -ResultSize unlimited -IgnoreDefaultScope | where {($_.Database -like "ExServer1*") -or ($_.Database -like "ExServer2*")} | Set-CASMailbox -IgnoreDefaultScope -ActiveSyncEnabled $false# enable ActiveSync for all group members Get-Mailbox -Filter{(memberofgroup -eq $groupidentityActiveSync)} -ResultSize unlimited -IgnoreDefaultScope | where {($_.Database -like "ExServer1*") -or ($_.Database -like "ExServer2*")} | Set-CASMailbox -IgnoreDefaultScope -ActiveSyncEnabled $true