Beim Versuch, den lokalen Administratoren automatisch eine Domänengruppe hinzuzufügen, habe ich in meinem Workstation-Installationsskript den folgenden catch22 festgestellt.
Der Haken, den ich erlebe, ist der folgende:
- Wenn ich den lokalen Administrator verwende, habe ich das Recht, Benutzer zu einer lokalen Gruppe hinzuzufügen, muss jedoch Domänenanmeldeinformationen angeben, um eine Verbindung mit der Domäne herzustellen
- Wenn ich einen Domänenbenutzer verwende, kann ich eine Verbindung zum AD herstellen, der Benutzer ist jedoch noch kein lokaler Administrator, sodass ich lokale Gruppen noch nicht ändern kann.
Ich bin in einer GMP-Umgebung, also sind Regeln und Vorschriften wirklich! streng, was andere mögliche Pfade einschränkt.
- Die Rollen sind aufgeteilt, sodass ich keinen Zugriff auf den Domain-Administrator habe.
- Es sind keine Änderungen an Organisationseinheiten zulässig, durch die die Gruppe von den Gruppenrichtlinien verdrängt werden könnte
- Die Verwendung von PowerShell mit Remoteskripts ist nicht zulässig
Dies ist ziemlich einfach, wenn Sie compmgmt.msc verwenden und die erforderlichen Anmeldeinformationen angeben, wenn Sie dazu aufgefordert werden. Ich möchte jedoch vermeiden, manuelle Schritte hinzuzufügen, und die gesamte Installation so weit wie möglich automatisieren.
Einige Details:
- Das Betriebssystem der Workstation ist Windows 10
- Das Skript, das ich verwende, ist PowerShell
- Das Skript wird mit einem lokalen Administratorkonto mit erhöhten Rechten ausgeführt
- Die Arbeitsstation ist bereits der Domäne beigetreten
- Das Konto, mit dem die Arbeitsstation der Domäne hinzugefügt wird, ist kein Domänenadministrator
- Um Administratorrechte für mein Domain-Konto zu haben, muss ich die Gruppe unserer Abteilung zur lokalen Administratorgruppe hinzufügen
Der Code, mit dem ich der lokalen Administratorgruppe eine Gruppe hinzufüge, lautet
$de = [ADSI]"WinNT://$Env:ComputerName/Administrators,group"
$de.psbase.Invoke("Add",([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path)
Dieser Code funktioniert wie ein Zauber, wenn er mit einem Domänenkonto ausgeführt wird und ist ein lokaler Administrator.
Da dies für die Installation einer brandneuen Workstation verwendet wird, kann ich dies entweder als Domänenkonto ausführen oder lokaler Administrator
Mit dem ersteren die $de.psbase.Invoke("Add",
Teil scheitert
Mit letzterem die ([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path
scheitert
Ich habe versucht mit start-process
Cmdlet mit –verb runas
Optionen, um einen anderen Sicherheitskontext zu erhalten, aber ich bin auf dasselbe Problem wie oben gestoßen.
Gibt es eine Möglichkeit, die ich kann?
- nur lösen
([ADSI]"WinNT://MyCompanyDomain/MyDepartmentGroup").path
im Sicherheitskontext eines Domänenbenutzers und übergebe das an den Rest meines Skripts, das im Sicherheitskontext des lokalen Administrators ausgeführt wird.
oder
- Erstellen Sie das [ADSI] -Objekt aus fest codierten Daten, ohne eine Verbindung zur Domäne herstellen zu müssen
oder
- an etwas anderes, blendend offensichtliches habe ich nicht gedacht