emeriks
Goto Top

PowerShell-Skript zum selectiven Aktivieren von ActiveSync für ausgewählte Postfächer in Exchange 2010

Wir haben eine größeres Active Directory mit ca. 5000 Postfächern unter Exchange 2010. Seit kurzem haben wir auch die Postfach-Synchronisation über ActiveSync "im Programm". Dabei ist uns aufgefallen, dass standardmäßig alle Benutzer (Postfächer) synchronisieren dürfen. Da das von der Geschäftsführung explizit nicht gewünscht ist, mussten wir uns einen Weg suchen, wie wir nur ausgewählten Benutzern das Synchronisieren Ihrer Postfächer erlauben.

Nun kann man das an jedem Postfach, welches nicht synchronisieren darf, einzeln per Hand abschalten. Jedoch ist das bei der Menge der Postfächer nicht praktikabel. Zudem sind wir mehrere Administratoren, wo besonders denen im Helpdesk (Nichts gegen die fleißen Helpdesk-Mitarbeiter!!) es immer wieder passiert, dass sie vergessen, bei neuen Postfächern das ActiveSync zu deaktivieren. Ein Automatismus musste her.

Da ich keine andere Möglichkeit gefunden habe, ActiveSync für alle (neuen) Postfächer standardmäßig zu deaktivieren, habe ich dieses kleine Powershell-Script entwickelt, welches es ActiveSync für alle Postfächer deaktiviert und anschließend nur für die Mitglieder einer bestimmten Gruppe wieder aktiviert.
Da bei uns laufend Postfächer dazu kommen bzw. für ActiveSync freigegebe werden, muss man das Script immer wieder ausführen. Ich habe es deshalb auf einem Exchange Server als Scheduled Task eingeplant und lasse es jede Nacht einmal laufen. Wenn der Helpdesk ein Postfach für ActiveSync aktivieren oder deaktivieren muss, dann ändert er einfach die Mitgliedschaft der entsprechenden Gruppe.

Es funktioniert auch in Forests mit mehreren Trees und Domains sowie mehreren Exchange Mailbox-Servern und -Datenbanken.

Ich fürchte zwar, es geht doch einfacher. Aber bis dahin muss das hier reichen.

Gruß
Emeriks


ImportSystemModules
cls

$GroupDomain="DNS-NAME_DER_DOMÄNE"  
$GroupSAM="SAMACCOUNTNAME_DER_GRUPPE"  


# Zuerst wird ActiveSync für alle Postfächer deaktiviert
echo ""  
echo ""  
echo "ActiveSync wird für alle Postfächer deaktiviert"  
echo "Bitte warten ...."  
echo ""  
$MBs=(get-mailbox -IgnoreDefaultScope -resultsize unlimited)
foreach($MB in $MBs){
  $dn=$MB.DistinguishedName
  echo "... $dn"  
  set-casmailbox -identity $dn -IgnoreDefaultScope -ActiveSyncEnabled $false
}

# Dann werden die Mitglieder der Gruppe $GroupSAM bestimmt
$ds=([ADSISearcher]"LDAP://$GroupDomain")   
$ds.filter="(Name=$GroupSAM)"  
$grouppath=$ds.findone().path
$group=[ADSI]"$grouppath"  
$ASusers=$group.member

# Und zuletzt wird für die zuvor bestimmten Gruppenmitglieder das ActiveSync wieder aktiviert
echo ""  
echo ""  
echo "ActiveSync wird für alle Postfächer der Mitglieder der Gruppe ""$GroupSAM"" aktiviert"  
echo ""  
foreach($MB in $ASusers){
  echo "... $MB"  
  set-casmailbox -identity $MB -IgnoreDefaultScope -ActiveSyncEnabled $true
}
echo ""  
echo ""  

Content-ID: 181133

Url: https://administrator.de/contentid/181133

Ausgedruckt am: 23.11.2024 um 07:11 Uhr

filippg
filippg 02.03.2012 um 22:48:53 Uhr
Goto Top
Hallo,

wir veröffentlichen EAS über ISA bzw. TMG. Es ist m.E. auch Best Practice, Exchange nicht direkt aus dem Internet erreichbar zu machen. Auf ISA/TMG sind auf der Veröffentlichungsregel für das EAS-Verzeichnis einfach nur bestimmte Gruppen berechtigt...

Gruß

Filipp
Dani
Dani 04.03.2012 um 15:30:09 Uhr
Goto Top
Zitat von @filippg:
wir veröffentlichen EAS über ISA bzw. TMG. Es ist m.E. auch Best Practice, Exchange nicht direkt aus dem Internet
erreichbar zu machen. Auf ISA/TMG sind auf der Veröffentlichungsregel für das EAS-Verzeichnis einfach nur bestimmte
Gruppen berechtigt...
Da hast du sicherlich Recht. Man könnte somit die gleiche Gruppe nutzen, wenn die Infrastruktur stimmt.
Aber das hängt eben von den Unternehmensrichtlinien ab. Bei uns z.B. sollen OWA, IMAP, etc... nur den Nutzern zur Verfügung stehen, die es auch über das Internet dürfen.


Grüße,
Dani
patrickebert
patrickebert 06.04.2016 um 15:17:38 Uhr
Goto Top
Ist dieses Script denn auch noch für den Exchange 2013 relevant?
Set-Casmailbox -identity $MB
$MB schreibt ja den distinguishedName aus, welchen es über das CMDlet Set-Casmailbox -identity auf dem Exchange 2013 nicht mehr gibt oder irre ich mich?
patrickebert
patrickebert 07.04.2016 aktualisiert um 08:57:12 Uhr
Goto Top
Hallo Liebe Leute
ich habe dies jetzt mal versucht anzupassen auf Exchnage 2013,
jedoch komme ich nicht so richtig weiter,
kann mir bitte jemand noch ein tipp geben?

$sans = Get-ADGroupMember -Identity Domänen-Benutzer -Recursive | select Samaccountname
foreach ($san in $SaNs)
{$mails = get-mailbox $san |select PrimarySmtpAddress}
foreach ($mail in $mails)
{set-casmailbox $mail -IgnoreDefaultScope -ActiveSyncEnabled $false -OWAenabled $false}

# Activesync Gruppenmitglieder enablen
$SaNs = Get-ADGroupMember -Identity Activesync | select Samaccountname
foreach ($san in $SaNs)
{$mails = get-mailbox $san |select PrimarySmtpAddress}
foreach ($mail in $mails)
{set-casmailbox $mail -IgnoreDefaultScope -ActiveSyncEnabled $true}

# OWA Gruppenmitglieder enablen
$SaNs = Get-ADGroupMember -Identity owa | select Samaccountname
foreach ($san in $SaNs)
{$mails = get-mailbox $san |select PrimarySmtpAddress}
foreach ($mail in $mails)
{set-casmailbox $mail -IgnoreDefaultScope -OWAEnabled $true}
Dani
Dani 07.04.2016 um 09:46:33 Uhr
Goto Top
Moin,
bitte erstell einen eigenen Beitrag, da
a) dieser bereits über 4 Jahre alt ist
b) Anderen Produkte zum Einsatz kommen.


Gruß,
Dani (Mod)