heuristiker
Goto Top

Mit PowerShell Gruppenmitglieder eines E-Mail-Funktionspostfachs ermitteln und vollberechtigen

Servus miteinander,

wir haben in der neuen Exchange2016 Umgebung das Problem, dass wir der Outlook-Umgebung von AD-Nutzern nicht mehr wie bisher Funktionspostfächer über eine Gruppenzugehörigkeit dieser (Outlook-Umgebung) hinzufügen können (die Gruppe mit den enthaltenen AD-Objekten war bisher auf ein Funktionspostfach vollberechtigt (FullAccess + SendAs)), sodern es ist - zumindest momentan so - notwendig, die AD-Nutzerobjekte direkt auf ein Funktionspostfach zu berechtigen. Damit der Verwaltungsaufwand geringer bleibt und zur Kontrolle pflegen wir weiterhin Berechtigungsgruppen. Zudem hat es den Vorteil, dass beim direkten Berechtigen auf ein Funktionspostfach eines AD-Nutzers dieses Postfach in seiner Outlook-Umgebung automatisch eingebunden wird. Vor allem Letzteres ist momentan das größte Problem, da wir bei der Umstellung < 500 Kolleginnen und Kollegen das Postfach nicht jeweils einzeln mit Primatenarbeit hinzufügen können.

Zurzeit bastle ich an einem PowerShell-Skript, da Exchange gut mit dieser Skriptsprache zusammenarbeitet.

Z. B. habe ich es ohne Weiteres geschafft, Gruppenzugehörigenkeiten zu einer gegebenen Berechtigungsgruppe (Mail_*) auszulesen oder die Mitglieder einer Gruppe, die auf ein Postfach berechtigt sind - siehe B).

Im Großen benötige ich allerdings etwas Hilfe. Ich habe mir die Funktion des Skripts A) wie folgt gedacht:

1) Zuerst soll das Skript alle AD-Objekte mit dem Namen Postfach_ herauslesen. Das sind unsere AD-Objekte der Funktionspostfächer.
2) Aus den AD-Objekten soll das Property Mail ausgelesen werden.
3) Mit diesen Eigenschaften ("Properties"), die die E-Mail-Adresse enthalten, kann ich nun gegen den Exchange-Server ermitteln und die Gruppenmitglieder aus Gruppen, die auf das Postfach berechtigt sind, auslesen.
4) Im letzten Schritt möchte ich die jeweils ermittelten Mitglieder direkt auf das Funktionspostfach berechtigen mit "SendAs" und "FullAccess".

Danke vorab für eure Hilfe!

# A)

Import-Module ActiveDirectory
$ErrorActionPreference = „Silentlycontinue“
clear


#---------------------------------
# 1) E-Mail als Property herauslesen aller AD-Objekte mit Namen Postfach_* 

# Problem-Anfang
$postfach = Get-ADUser -Filter -Name -like "Postfach_" -Properties mail | Where{$_.mail -like "@ATV.Nordschleswig.den" }  
# Problem-Ende

# --------------------------------------
# 2) Mitglieder direkt vollberechtigen auf das Postfach

write-host „“
write-host "D a s  S k r i p t  e x t r a h i e r t  d i e  G r u p p e n m i t g l i e d e r  e i n e s  F u n k t i o n s p o s t f a c h s  u n d  b e r e c h t i g t  d i e  g e f u n d e n e n  M i t g l i e d e r  d i r e k t  a u f  d a s  e r m i t t e l t e  P o s t f a c h ."  
write-host „“

$zugriffssteuerungsliste = Get-MailboxPermission $postfach | where {$_.AccessRights -eq „FullAccess“}
$nutzer =@()

foreach ($eintrag in $zugriffssteuerungsliste)
{
[string]$gruppe= $eintrag.User
$gruppe = $gruppe.split(„\“)[1]
$mitglieder = Get-ADGroupMember „$gruppe“ -recursive

foreach ($mitglied in $mitglieder)
{
$benutzerkonto = $mitglied.SamAccountname
# Ab hier gibt's wieder Probleme 
Set-MailboxFolderPermission $postfach -user $benutzerkonto -accessrights FullAccess -accessrights SendAs 
# Problem-Ende
}
}

write-host  „“
write-host "S k r i p t  a b g e a r b e i t e t ."   
write-host „“



__________________


# B)
# Auslesen von Gruppen anhand der E-Mail-Adresse


$postfach = read-host „Postfach angeben (z. B. Cert@ATV.Nordschleswig.den)“
$zugriffssteuerungsliste = Get-MailboxPermission $postfach | where {$_.AccessRights -eq „FullAccess“} 
$nutzer =@()

foreach ($eintrag in $zugriffssteuerungsliste)
{
[string]$gruppe= $eintrag.User
$gruppe = $gruppe.split(„\“)[1]
$mitglieder = Get-ADGroupMember „$gruppe“ -recursive
foreach ($mitglied in $mitglieder)
{
$name = $mitglied.name
$sam = $mitglied.SamAccountname
$dn = $mitglied.distinguishedName
$nutzer += new-object PSObject -property @{Name=“$name“;sAMAccountName=“$sam“;distinguishedName=“$dn“}
}
}

$nutzer | sort-object Name -unique | ft -autosize > ./Gruppenmitglieder.txt
write-host  „“
write-host "D a t e i  e r z e u g t . S k r i p t  a b g e a r b e i t e t ."   
write-host „"  

Content-ID: 441092

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

Ausgedruckt am: 23.11.2024 um 02:11 Uhr

H41mSh1C0R
H41mSh1C0R 15.04.2019 um 17:11:18 Uhr
Goto Top
Aloa,
zu allererst bitte Code Tags benutzen, danke.
=)
Heuristiker
Heuristiker 16.04.2019 aktualisiert um 09:29:40 Uhr
Goto Top
Guten Morgen,

du hast völlig Recht! Möchte ja nicht, dass ihr Augenkrebs bekommt..! face-smile

*Done*