Hallo liebe Community,
habe nun schon einige Tage in sämtlichen Foren gelesen, bislang aber ohne Erfolg, daher dachte ich mal, dass ich mich einfach anmelde und mal direkt meine Frage stelle.
Ich versuche derzeit über ein PowerShell-Script lokale Admin-Rechte innerhalb meines Netzwerkes über Restricted Groups zu verteilen. Wie ich das selbst "per Hand" umsetzen kann, ist mir bewusst, doch beim Script habe ich noch (mindestens) ein Problem. Zunächst möchte ich erstmal meine Entwicklungsumgebung erläutern:
Ich habe ein Netzwerk bestehend aus 4 Rechnern:
1) Der Active-Directory Server (Windows Server 2008R2)
2) Der Server, der meine Applikation ausführt (Windows Server 2008R2)
3) 1. Client (Windows 7, 64bit)
4) 2. Client (Windows 7, 64bit)
Innerhalb des Active-Directory habe ich 3 User angelegt, user1, user2 und user3. Per Hand war es mir bereits möglich, z.B. nur user1 auf Client 2 Admin-Rechte zu ermöglichen. Dabei bin ich per Hand folgende Schritte durchgegangen:
1) Ich lege eine neue OU an, z.B. mit dem Namen: Client1_LA
2) Ich verschiebe das Computerobjekt von Client 1 in diese OU
3) Ich erstelle eine Globale-Sicherheitsgruppe, z.B. mit dem Namen localadmin_Client1
4) Ich gehe in die Gruppenrichtlinienverwaltung (sorry, hab alles auf Deutsch :D) und erstelle eine neue GPO innerhalb der eben erstellten OU
5) In dieser GPO gehe ich unter Computerkonfiguration/Richtlinien/Windows-EInstellungen/Sicherheitseinstellungen/Eingeschränkte Gruppen und füge die Gruppe localadmin_Client1 hinzu
6) Die Gruppe localadmin_Client1 wird nun Mitglied der Gruppe Administratoren
Soweit so gut, das funktioniert auch alles sehr gut. Nun kommen wir zu meinem Script, welches dies nachbilden soll:
Dafür nutze ich das Active-Directory und das GroupPolicy Modul. Für die eben beschriebenen Schritte 1-4 treten keine Probleme auf, das Active-Directory Modul löst dies sehr sauber. Auch das erstellen der GPO stellt keine Schwierigkeiten dar, erst wenn es an die "Bearbeitung" geht, stößt mein Script auf Schwierigkeiten.
Da ich keine passende Funktion innerhalb des GroupPolicy-Moduls finden konnte, mit der ich diese Einstellungen tätigen konnte, habe ich durch langes googlen herausgefunden, dass man diese Gruppenzugehörigkeit innerhalb der Restricted Groups einfach im Explorer in einer Datei editieren kann.
%logonserver%\sysvol\domänenname\Polices
Dort befinden sich alle GPOs, nun gehen wir in die von unserem Script erstellte und navigieren weiter zu:
Machine\Microsoft\WindowsNT\Secedit\GptTmpl.inf
Auch diese Datei konnte ich erfolgreich editieren (bzw. mein Script bildet sie nach, natürlich mit der entsprechenden ID der neuen Gruppe).
Auch die bestehenden Verzeichnisse (welche leer sind), die erstellt werden, wenn man diese Einstellung in den Restricted Groups per Hand tätigt, baut das Script nach. An sich sieht also alles absolut identisch aus und an sich ist kein Unterscheid mehr erkennbar, ob das Script oder ein User per Hand solch eine GPO erstellt oder editiert hat (einzige Unterschiede sind wie gesagt nur SID der Gruppe innerhalb der gpttmpl).
Jedoch wird die erscriptete GPO nicht umgesetzt! (gpforce /update, lange Zeit warten, restarts usw. alles ausprobiert)
Sehr wahrscheinlich liegt das Problem an der Computerversion der GPO. Auch durch googlen habe ich herausgefunden, dass bei der Computerversion zwei gleiche Zahlen für AD und Sysvol auftreten müssen, damit die GPO überhaupt umgesetzt wird. Bei der von Hand erstellten GPO sieht das so aus:
Computerversion: 2 (AD), 2 (Sysvol)
bei der gescripteten:
Computerversion: 0 (AD), 2 (Sysvol)
Ich vermute sehr stark, dass das die Ursache für mein Problem ist. Bestätigen kann ich diese Annahme daruch, dass ich auf dem betreffenden Clienten ein logging aktiviert habe und ich dort folgende Zeile finde:
GPO GPO_LA_CLient1 doesn't contain any data since the version number is 0. It will be skipped.
Soweit so gut, ich nehme also an, dass das AD die Änderungen, die mein Script innerhalb des Verzeichnisses tätigt, nicht realisert um so die Versionsnummer zu aktualisieren. Jedoch finde ich keine Lösung, wie ich nun entweder diese Versionsnummer eigens per Hand korrigieren kann.
Bisherige Versuche waren:
GPO in der registry des AD-Servers zu finden => erfolglos, sowohl die per Hand erstellte, als auch die gescriptete sind nicht aufzufinden. Jedoch sind die beiden Standard-GPOs zu finden.
Ich hoffe das reicht zunächst als Beschreibung meines Problems, ansonsten kann ich natürlich Screenshots von sämtlichen Problemen bereitstellen oder mich ggf. genauer ausdrücken. Tut mir leid für den langen Post :D
Ich hoffe jemand von euch kann mir helfen, da ich bestimmt nicht der erste bin, der auf dieses Problem stößt :D
Grüße,
Max