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-Key: 441092

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

Printed on: April 24, 2024 at 00:04 o'clock

Member: H41mSh1C0R
H41mSh1C0R Apr 15, 2019 at 15:11:18 (UTC)
Goto Top
Aloa,
zu allererst bitte Code Tags benutzen, danke.
=)
Member: Heuristiker
Heuristiker Apr 16, 2019 updated at 07:29:40 (UTC)
Goto Top
Guten Morgen,

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

*Done*