Berechtigungsmatrix anhand Powershell und Excel automatisieren
Moin moin,
Zur aktuellen Lage:
Ich mache als Admin die IT für einen nichtkommerziellen Verein.
Wir haben aber viele Nutzer und da versuche ich aktuell ein wenig Struktur reinzubringen.
Dazu habe ich eine Berechtigungsmatrix für unser FS in Excel entworfen und ein Powershellscript, was
diese Berechtigungen dann auf den jeweiligen Nutzer anwendet.
Aktuell ist es noch so, dass mir die Excel - je nachdem welche reads "r" oder read/writes "rw" gesetzt sind - einen String
im Format ausgibt, das PS nutzen kann.
Die Nutzer haben entsprechend ihrer Haupt und Nebentätigkeit unterschiedliche Berechtigungen im FS.
Dabei ist es egal, wer den entsprechenden Posten besetzt. Die Funktion Kassenwart hat also, egal ob Fritz oder Paul die Funktion inne haben, immer die selben Berechtigungen. Aber auch da gibt es mit der Zeit Dynamik.
Bsp.:
Excel Output-String für die Funktion Kassenwart:
"AD-SG1_r""AD-SG2_rw""AD-SG3_rw""AD-SG4_r""AD-SG5_rw""AD-SG6_r"
Händisch diesen String ins PS Skript kopiert:
Das Skript öffnet eine GUI. In der kann man dann den Namen des Nutzers eingeben und in einem Dropdown die entsprechende Funktion auswählen. Dann werden per Knopfdruck die entsprechenden Sicherheitsgruppen für den jeweiligen Nutzer hinterlegt.
Nun zum Problem:
Jedes Mal, wenn sich für eine Funktion die Berechtigungen ändern, muss ich händisch den "neuen" erzeugten String aus Excel kopieren und in die Powershell einfügen. Da wir die Matrix und das PS Skript zukünftig auch anderen Zweigstellen zur Verfügung stellen wollen, frage ich mich, ob man die gesetzten "r"s und "rw"s auch bspw. aus einer erzeugten CSV auslesen kann, und die angeforderten Berechtigungen dann direkt aus der Excel ziehen kann.
Bspw.
Im Dropdown ist Kassenwart ausgewählt, das Skript checkt also wo in den Zellen A1 bis A40 "Kassenwart" steht und wandert dann die entsprechende Zeile durch und liest die gesetzten reads und readwrites aus.
So etwas ist bestimmt möglich. Ich habe leider weder in diesem Forum, noch in anderen Foren oder im Powershell Handbuch eine entsprechende Lösung in diese Richtung gefunden.
Ich weiß, dass ich hier sehr viel fordere, bin darum unendlich dankbar, für jeden Tipp.
Liebe Grüße
Fischi
Zur aktuellen Lage:
Ich mache als Admin die IT für einen nichtkommerziellen Verein.
Wir haben aber viele Nutzer und da versuche ich aktuell ein wenig Struktur reinzubringen.
Dazu habe ich eine Berechtigungsmatrix für unser FS in Excel entworfen und ein Powershellscript, was
diese Berechtigungen dann auf den jeweiligen Nutzer anwendet.
Aktuell ist es noch so, dass mir die Excel - je nachdem welche reads "r" oder read/writes "rw" gesetzt sind - einen String
im Format ausgibt, das PS nutzen kann.
Die Nutzer haben entsprechend ihrer Haupt und Nebentätigkeit unterschiedliche Berechtigungen im FS.
Dabei ist es egal, wer den entsprechenden Posten besetzt. Die Funktion Kassenwart hat also, egal ob Fritz oder Paul die Funktion inne haben, immer die selben Berechtigungen. Aber auch da gibt es mit der Zeit Dynamik.
Bsp.:
Excel Output-String für die Funktion Kassenwart:
"AD-SG1_r""AD-SG2_rw""AD-SG3_rw""AD-SG4_r""AD-SG5_rw""AD-SG6_r"
Händisch diesen String ins PS Skript kopiert:
Kassenwart
{
$Tab5Groups = "AD-SG1_r""AD-SG2_rw""AD-SG3_rw""AD-SG4_r""AD-SG5_rw""AD-SG6_r"
}
###
if ($CheckBoxTab5Daten.CheckState -eq 'Checked')
{
$Tab5DP = $ComboBoxTab5DP.SelectedItem
$Tab5Benutzer = $TextboxTab5Benutzer.Text
$Tab5AvailableGroups = $ListBoxTab5MemberOf.Items
If ($Tab5Benutzer -ne '' -and $Tab5DP -ne '')
{
$GroupAddUser5 = Get-ADUser -Filter * | Where-Object {$_.samaccountname -eq $Tab5Benutzer}
foreach ($Tab5AvailableGroup in $Tab5AvailableGroups)
{
$DistinTab5Group = Get-ADGroup $Tab5AvailableGroup | Select-Object -ExpandProperty distinguishedname
Add-ADGroupMember -Identity $DistinTab5Group -Members $GroupAddUser5
}
Clear-Fields
Clear-Fields
}
}
Das Skript öffnet eine GUI. In der kann man dann den Namen des Nutzers eingeben und in einem Dropdown die entsprechende Funktion auswählen. Dann werden per Knopfdruck die entsprechenden Sicherheitsgruppen für den jeweiligen Nutzer hinterlegt.
Nun zum Problem:
Jedes Mal, wenn sich für eine Funktion die Berechtigungen ändern, muss ich händisch den "neuen" erzeugten String aus Excel kopieren und in die Powershell einfügen. Da wir die Matrix und das PS Skript zukünftig auch anderen Zweigstellen zur Verfügung stellen wollen, frage ich mich, ob man die gesetzten "r"s und "rw"s auch bspw. aus einer erzeugten CSV auslesen kann, und die angeforderten Berechtigungen dann direkt aus der Excel ziehen kann.
Bspw.
Im Dropdown ist Kassenwart ausgewählt, das Skript checkt also wo in den Zellen A1 bis A40 "Kassenwart" steht und wandert dann die entsprechende Zeile durch und liest die gesetzten reads und readwrites aus.
So etwas ist bestimmt möglich. Ich habe leider weder in diesem Forum, noch in anderen Foren oder im Powershell Handbuch eine entsprechende Lösung in diese Richtung gefunden.
Ich weiß, dass ich hier sehr viel fordere, bin darum unendlich dankbar, für jeden Tipp.
Liebe Grüße
Fischi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 5622473194
Url: https://administrator.de/forum/berechtigungsmatrix-anhand-powershell-und-excel-automatisieren-5622473194.html
Ausgedruckt am: 19.03.2025 um 09:03 Uhr
1 Kommentar