Manticare 0 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Hallo, ich habe den Auftrag bekommen ein script zu schreiben welches über Powershell auf mehreren Domänen, Gruppen und am Ende evtl. sogar bestimme User anlegen soll. Also jedes mal wenn das script ausgeführt wird, soll erstmal auf jeden Fall eine Gruppe erstellt werden. Ich muss das ganze wahrscheinlich gleich in der Produktivumgebung ausführen. Jetzt würde ich euch doch bitten mir mal auf die Finger zu schauen. Das ganze soll über Serverumgebung ausgeführt werden. Das habe ich bisher in die Tasten gehauen: import-module ActiveDirectory import-Module –name GroupPolicy $domain=[System.DirectoryServices.ActiveDirectory.Domain]::getcurrentdomain() $rootDN = (Get-ADDomainController).DistinguishedName New-ADGroup "Dummy",$rootDN -path "OU="Dummy",DC=domain" -GroupScope Global Das script soll eigentlich gleich alle Domains im Forest schnappen und die Gruppen da anlegen wo sie noch nicht angelegt sind... dafür brauche ich noch eine if abfrage oder? Ich bin in jedem Fall für jede Hilfe Dankbar und wenn ich etwas unklar formuliert habe bitte einfach nachfragen, ich werde schnellst möglich antworten. Viele Grüße, Manticare Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Hmmm .... wo fängt man da an? .... also erstmal willkommen im MCSEboard. Es scheint so, als wärst Du eher noch kein Profi mit Powershell. Ich würde empfehlen, keinen Code zu benutzen, den Du nicht verstehst. Besonders, wenn Du ihn gleich auf Deine Produktiv-Umgebung loslassen willst. Hast Du keine Test-Domäne zum Spielen? Notfalls baust Du Dir schnell eine mit VMs. Jetzt Dein Code: Deine ersten beiden Zeilen sind überflüssig. Seit Powershell Version 3.0 werden Module bei Bedarf automatisch geladen - sie müssen nur korrekt installiert sein. Und wenn ich Deine Frage richtig gelesen habe, wolltest Du ja sowieso nix mit Gruppenrichtlinien machen, oder? In der dritten Zeile erzeugst Du eine Variable, die Du aber nicht benutzt - jedenfalls nicht in dem Code-Schnipsel, den Du hier zeigst. Der Code in der vierten Zeile liefert in Zweifel gar nix, weil das cmdlet kein Attribut "DistinguishedName" ausgibt. In der fünften Zeile sind in dieser einen Zeile so viele Fehler drin, dass ich gar nicht weiß, wo ich anfangen soll. Meine Empfehlung wäre, Dir ein wenig Zeit zu nehmen, Dir wenigstens erstmal die Grundlagen von Powershell anzueignen. Dabei lernst Du auch, wie Du Dir Hilfe holen kannst und wie Du den Code debugst. Ohne die Grundlagen fällt es Dir auch schwer, die Hilfen zu verstehen, die Du in Foren wie diesem bekommst. Zitieren Link zu diesem Kommentar
Manticare 0 Geschrieben 9. Juni 2020 Autor Melden Teilen Geschrieben 9. Juni 2020 Vielen Dank :) , Grundlagen sind da xD allerdings wirklich nur diese. Ich importiere das erste Modul einfach für den Fall das dieses bei einer der Serverversionen noch nicht installiert ist oder veraltet ist. Kann man aber lassen, oder? Die GroupPolicy werde ich wieder rausnehmen, für den Fall das da etwas getan werden soll muss dies nachträglich reingenommen werden oder einfach Manuel bearbeitet werden. Danke auf jeden Fall dafür. An einer Testumgebung mit einer VM bin ich drann. Ich glaube vorher sollte ich bei meinem Fehlerpotenzial nichts ausführen! Liege ich so weit richtig das die Zeile drei die aktuelle Domain als Ziel nimmt und dann New-ADGroup in dem entsprechenden Path ausführt? Die Variable aus Zeile 3, war eine Idee um den root nochmal zu definieren.. aber das ist Schwachsinn ^^ . Mit Zeile 5 habe ich was den Part "DC" angeht so meine Probleme... Was genau will der da von mir? Wie sollte ich das ganze denn Anfangen? Ich recherchiere schon ordentlich... Zuerst würde ich also den Forest ansprechen (die Domains)... Dann abfragen ob sich im Zielpath (OU) schon eine entsprechende Gruppe befindet und falls nicht, diese erstellen. Habe ca. 3 Wochen Zeit und soll ein Projekt während meiner Ausbildung werden. Danke für alle Mühen! Manticare Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Mache dir erstmal gedanken / schriftlich, was du machen magst (Anforderungen definieren). Was für Gruppen sollen wo angelegt werden? Immer die gleichen Gruppen? Gruppen nach einem bestimmten Schema? Ist die OU immer gleich oder Dynamisch? Wofür sind die Gruppen? Wie generisch / Weiterentwickelbar soll das ganze sein? 1 Zitieren Link zu diesem Kommentar
Manticare 0 Geschrieben 9. Juni 2020 Autor Melden Teilen Geschrieben 9. Juni 2020 (bearbeitet) Es genauer zu definieren ist eine gute Idee... Ich bespreche das nachher nochmal mit dem Ausbilder wie genau es am besten aus zu sehen hat. Bisher ist geplant: Server AD > Unterschiedliche Domains- ( also Forest) > Immer gleiche OU > Immer gleiche Gruppe Das ganze soll evtl. für mein Abschlussprojekt mit einer Datenbank verknüpfbar sein. Soll heißen das ich z.B. auch Benutzer in einer Datenbank mit verschiedenen Attributen hinzufügen kann, die verschiedenen Kriterien entsprechen. Das allerdings muss ich noch Besprechen, denn es gibt noch einige nicht klar definierte Vorgaben. Ich melde mich nach der Besprechung nochmal. Manticare bearbeitet 9. Juni 2020 von Manticare Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 (bearbeitet) vor 16 Minuten schrieb Manticare: Ich importiere das erste Modul einfach für den Fall das dieses bei einer der Serverversionen noch nicht installiert ist oder veraltet ist. ... dann bitte nochmal den Unterschied zwischen Importieren und Installieren herausarbeiten, bitte. Zitat Die GroupPolicy werde ich wieder rausnehmen, für den Fall das da etwas getan werden soll muss dies nachträglich reingenommen werden oder einfach Manuel bearbeitet werden. Danke auf jeden Fall dafür. ... gleiches Thema, wie bei dem AD-Modul - wenn Du's brauchst und wenn's korrekt installiert ist, wird es automatisch geladen .... schau Dir mal bitte die Hilfe für about_Requires an. Zitat An einer Testumgebung mit einer VM bin ich drann. Ich glaube vorher sollte ich bei meinem Fehlerpotenzial nichts ausführen! Zitat Liege ich so weit richtig das die Zeile drei die aktuelle Domain als Ziel nimmt und dann New-ADGroup in dem entsprechenden Path ausführt? Nö. Du erzeugst eine Variable, die aber leer ist. Zitat Mit Zeile 5 habe ich was den Part "DC" angeht so meine Probleme... Was genau will der da von mir? New-ADGroup "Dummy",$rootDN -path "OU="Dummy",DC=domain" -GroupScope Global ... Dir fehlen die Grundlagen also doch ... Du gibst hier im Prinzip zwei Gruppen an, die erzeugt werden sollen - das Komma kennzeichnet bei Powershell Aufzählungen/Arrays/Listen. Den Pfad, den Du übergibst, zerstückelst Du mit Kommata und Anführungszeichen. Zitat Wie sollte ich das ganze denn Anfangen? Ein ganzes Stück weiter "vorn". bearbeitet 9. Juni 2020 von BOfH_666 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Der Teil "OU="Dummy",DC=domain" wird falsch sein. Im Pfad gibt man einen Distinguished name an. https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ldap/distinguished-names Das düfte dann z.B. wie folgt heissen: -Path "CN=Karen Berge,CN=admin,DC=corp,DC=Fabrikam,DC=COM" Zitieren Link zu diesem Kommentar
Manticare 0 Geschrieben 9. Juni 2020 Autor Melden Teilen Geschrieben 9. Juni 2020 (bearbeitet) Also Besprechung ist durch: Ich simuliere für mein Vorhaben, eine AD mit etlichen Domains... Alle Domains haben einen unterschiedlichen Namen und bilden einen AD- Forest ( Das ist schonmal cool =) ) Importieren muss ich nichts mehr.. PS 3.0 ist vorhanden. Ich spreche also erstmal den Forest an... Dann erstelle ich in allen Domains mit diesem Script , in einer (Breits vorhandenen) "TEST" OU, folgende Gruppe: New-ADGroup "TESTGROUP" vor 43 Minuten schrieb Dukel: Der Teil "OU="Dummy",DC=domain" wird falsch sein. Im Pfad gibt man einen Distinguished name an. https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ldap/distinguished-names Das düfte dann z.B. wie folgt heissen: -Path "CN=Karen Berge,CN=admin,DC=corp,DC=Fabrikam,DC=COM" Wenn ich in der Domain schon eine OU habe muss diese beim erstellen der Gruppe, auch mit im -path angegeben werden oder? Muss ich einen CN für die Gruppe angeben bzw. bedeutet CN = Gruppenname? Und der zweite CN=admin? DC steht doch für den Domaincontroller... kann ich diesen auch einfach über: Get-ADDomainController abrufen und beim erstellen der Gruppe nutzen? (Nur so eine Eingebung ^^) Derweil beschäftige ich mich mehr mit den Grundlagen... ich habe bisher nur mit batch und python gearbeitet. Vergebt mir bitte meine Unwissenheit... Zeit is ja da... bearbeitet 9. Juni 2020 von Manticare Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Entweder du gibst den genauen Pfad an (mit dem Domänenteil) oder du baust den Pfad zusammen (dynamisch), dann brauchst du den Domänenteil nicht angeben. Aber das sollten dir die Anforderungen sagen, ob du eines von beiden brauchst. Zitieren Link zu diesem Kommentar
Manticare 0 Geschrieben 9. Juni 2020 Autor Melden Teilen Geschrieben 9. Juni 2020 (bearbeitet) Ich würde den genauen Pfad angeben. Das Script muss dahingehend nicht erweiterbar oder veränderbar sein. Quelle: Google.com Ich bin jetzt auf diese Tabelle gestoßen... und direkt darunter steht ADSI Grundlagen, die pfeife ich mir jetzt rein. ^^ Ist eine vbs-Lösung vieleicht angebrachter? Ich tu mich gerade schwer damit.. :( bearbeitet 9. Juni 2020 von Manticare Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 (bearbeitet) Moin, owei, die Tabelle stammt aus einem uralten Artikel von Holger Schwichtenberg, würde ich sagen ... vergiss die lieber, damit schadest du dir mehr als du verstehst. Das geht weit am Thema vorbei. Also, versuch besser, vorne anzufangen statt irgendwo mittendrin. Schaff dir PowerShell-Grundlagen drauf, schau dir die Basics des AD und von LDAP an. Dann leg erst mal ganz simpel einzelne Objekte in einer einzigen Domäne an. Versuch zu verstehen, was dabei passiert. Wenn du das kannst, dann nimm dir die Multi-Domänen-Struktur vor. Ein wesentliches Ziel solcher Aufgaben liegt darin, dass du dir ein sinnvolles Herangehen erarbeitest. EDIT: Die LDAP-Grundlagen für das AD habe ich hier mal im Überblick zusammengefasst: [LDAP-Grundlagen für Active Directory | faq-o-matic.net]https://www.faq-o-matic.net/2008/01/13/ldap-grundlagen-fuer-active-directory/ Gruß. Nils bearbeitet 9. Juni 2020 von NilsK 2 Zitieren Link zu diesem Kommentar
Manticare 0 Geschrieben 9. Juni 2020 Autor Melden Teilen Geschrieben 9. Juni 2020 (bearbeitet) Danke für die Zusammenfassung Nils! Ganz tolle Erklärung! Das bringt mich auf jeden Fall weiter. Viele Grüße //Edit: Eine abschließende Frage habe ich noch... ist es überhaupt möglich im Powershell-Script mehrere Domains bzw. viele Domains für einen Befehl an zu sprechen oder zusammen zu fassen. Die Domains sollen alle unterschiedliche Namen haben aber halt die selbe AD Struktur. Nochmals Danke für das rege Interesse an dem Thema und die Hilfestellungen. bearbeitet 9. Juni 2020 von Manticare Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Moin, möglich ist vieles. Die Frage ist dann eher, was dieses Szenario eigentlich abbilden soll. Mehrere Domains in einem Forest, die alle dieselbe Struktur haben ... eher ungewöhnlich. Ist das eine Hosting-Umgebung? Gruß, Nils Zitieren Link zu diesem Kommentar
Manticare 0 Geschrieben 9. Juni 2020 Autor Melden Teilen Geschrieben 9. Juni 2020 Es soll eine Hosting-Umgebung simulieren genau. Genaues Szenario werde ich mir noch aus den Fingern saugen... Auf jeden fall stelle ich momentan fest das der damit möglich verbundene Aufwand für mein Abschlussprojekt reichen kann. wahrscheinlich werden sie nicht alle die selbe Struktur haben.. Aber damit die Bedienbarkeit gegeben bleibt sollte möglichst jede AD zumindest eine ähnliche Struktur haben und über scripts eben einiges anlegen und ausgeben können. Dazu erstelle ich eine kleine Script-Datenbank über die ich die Scripts über den Server jagen möchte. Ich habe mittlerweile aber für mich beschlossen jede Domain/AD manuell an zu sprechen. Das gibt dem ganzen mehr Praxisnähe denke ich... Falls mir in der Entwicklung des Szenario noch einfällt warum ich "Multiadverwaltungsscripts" brauchen könnte melde ich mich. Um es manuell durch zu führen, habe ich beschlossen folgendes aus zu probieren. (VM ist mit Testumgebung ist jetzt da) "sehr cool" =) (ou wurde manuell angelegt) New_ADGroup -Name "TEST" -GroupScope "Global" -Path" CN="Administrator" OU="TEST" Gibts da noch was zu verbessern? Nach meiner Auffassung sollte da in der AD ich der ich mich befinde eine Gruppe in der OU - TEST mit Globalem GroupScope erstellt werden und insgesamt über den Admin ausgeführt werden #igotcoderona Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 9. Juni 2020 Melden Teilen Geschrieben 9. Juni 2020 Moin, FISI-Abschlussprojekt? Also, dafür scheint mir das Szenario erheblich zu komplex zu sein. Überleg dir das, ob du dich bei den ganzen möglichen Stolperfallen nicht verhakst. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.