Jump to content

torstenv

Members
  • Gesamte Inhalte

    118
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von torstenv

  1. Hi! Ich möchte einen Weg finden, ein Programm auszuführen, wenn irgendwelche Änderungen am AD ausgeführt wurden (z.B. neuer Benutzer angelegt, Gruppenmitgliedschaft geändert... etc.). Seht ihr irgendeine Möglichkeit, irgendwelche AD Funktionen zu nutzen oder irgendwie sonst einen Trigger zu bekommen, sobald das passiert? Würde das AD auf einer Datei basieren, könnte man schlichtweg die mtime auswerten. Das geht aber nicht, oder? T.
  2. Hi! Ich muss aus einer VB Anwendung heraus alle Objekte innerhalb des Active Directories finden, deren Klasse "Computer" "Group" oder "User" ist. Und das unabhängig vom Ort des Objektes. Bisher habe ich das realisiert, indem ich rekursiv durch alle "Unterverzeichnisse" des AD gebrowsed bin und dort nach Objekten der entsprechenden Klasse gesucht habe: Private Sub UpdateADUsers(ByVal Ort As String, Optional Recoursive As Boolean) [...] Set OU = GetObject("LDAP://" & Ort) For Each Item In OU If Item.Class = "container" Or Item.Class = "builtinDomain" Or Item.Class = "organizationalUnit" Then Call UpdateADUsers(Item.Name & "," & Ort, True) ElseIf Item.Class = "computer" Then [...] ElseIf Item.Class = "group" Then [...] ElseIf Item.Class = "user" Then [...] end if [...] end sub Leider ist diese Methode sehr langsam, bei ADs mit 350 PCs und ungefähr genauso vielen Usern dauert es fast 2 Minuten, bis die Rekursion durch ist und ich alle Infos habe, die ich brauche. Da ich das bei jedem Programmstart ausführen muss, um immer die aktuellen Infomrationen zu haben, suche ich nach einem schnelleren Weg. Gibt es LDAP:// oder WINNT:// Funktionen, die einem einfach eine Liste von Computern, Usern oder Gruppen liefert, egal wo sie im AD liegen, ohne dass ich das manuell durchforsten muss? T.
  3. Hi nochmal! Ich bekomme es nicht hin. Vielleicht geht das auch gar nicht. Also ich habe getan, wie mir geheißen. Ich habe die Einstellungen per gpedit.msc lokal auf dem XP Rechner getroffen, jedoch werden sie nach einem Neustart nicht verwendet. Das heißt, ein User kann sich immer noch anmelden, bevor das Netzwerk vollständig verfügbar ist, und das hat negative Konsequenzen. Ich vermute nun, dass diese Einstellungen nicht übernommen werden, da der Computer sich in einer Domain befindet (Mitglied eines NT4 Domain Controllers), und dieser ja die Policies beim Systemstart übermittelt. Also eigentlich müsste ich die Einstellungen auf dem Domänencontroller vornehmen. Da das aber ein NT4 ist, kann das nicht gehen, sowas kann NT4 eben noch nicht. Bin ich jetzt aufgeschmissen, oder gibt es doch eine Lösung des Problems? Vielleicht ist meine Vermutung ja auch falsch und es liegt woanders dran. Tipps? Gruß, T.
  4. Ich bin nicht sicher, ob wir über das Gleiche reden. Ich bin mir jetzt nicht 100%ig sicher, da ich nicht direkt testen kann (es ist Sonntag, und da bin ich nicht beim Kunden;-), ich meine aber, dass die schnelle Benutzerumschaltung automatisch abgeschaltet ist, wenn der Rechner Mitglied einer Domain ist. Das Feature, das ich meine, ist nicht die "schnelle Benutzerumschaltung", sondern das mit XP eingeführte Feature, dass die Anmeldung möglich ist, _bevor_ alle Systemdienste geladen wurden (das macht XP nämlich im Hintergrund). Bei 2k war die Anmeldung erst möglich, wenn alle Dienste gestartet wurden. Und dies kann man auch wieder abschalten. Es kann natürlich sein, dass du trotzdem Recht hast, und das Feature mit dieser Einstellung abgeschaltet wird, ich glaube aber, dass es sich um einen Registry-Eintrag oder eine Gruppenrichtlinie gehandelt hat. T.
  5. Hi! Ich betreue ein Netzwerk mit einem NT4 Domänen Controller. Es sind auch XP Rechner Mitglieder dieser Domain. Seit der Installation von SP2 auf den XP Rechnern gibt es das Problem, dass, wenn User sich nach dem Erscheinen des Login-Bildschirms sehr schnell anmelden, die Meldung kommt, dass das servergespeicherte Profil nicht erreichbar sei, und nun eine lokale Kopie verwendet würde. Wartet der User mit dem Eintippen der Login-Daten ein paar Sekunden (bis Windows im Hintergrund noch ein paar Dienste und auch das Netzwerk erfolgreich starten kann), dann gibt es das Problem nicht mehr. Das Problem ist reproduzierbar. Da ich keine andere Lösung für das Problem kenne, dachte ich mir, dass ich einfach das XP-Feature der "schnellen Benuzteranmeldung" abschalten kann. Ich habe davon gelesen, dass man das auch auf die Art und Weise zurückstellen kann, die auch in Win2k verwendet wurde. Dauert zwar länger, funktioniert damit aber vermutlich auch in jedem Fall. Leider habe ich vergessen, wo man das umstellen kann. Danke im voraus! Gruß, T.
  6. Hi! Ich möchte aus Visual Basic heraus auf das AD zugreifen und mir Infos über Gruppen und Gruppenmitglieder holen. Das alles funktioniert ganz prima, bis auf das Problem, dass ich die Mitglieder einer Computergruppe nicht auslesen kann. Hier mal der Code, der dürfte das Bild etwas erhellen (Ausschnitt, so vermutlich nicht lauffähig!): Private Sub UpdateADUsers(ByVal Ort As String) Dim OU As IADsContainer Dim GRP As IADsGroup Dim Memberlist As IADsMembers Dim Item, GRPMember As IADs Dim hostname, Zeichen, GruppenMitglied As String Dim Gruppe, Member As Variant Set OU = GetObject("LDAP://" & Ort) For Each Item In OU If Item.Class = "group" Then Set GRP = GetObject("LDAP://" & Item.Name & ", " & Ort) Set Memberlist = GRP.Members For Each Member In Memberlist debug.print "Mitglied gefunden: " & Member & crlf Next end if Next '(...) end sub Das Problem ist nun, dass die Memberlist immer leer ist, wenn es sich um eine Gruppe handelt, die Computer gruppiert, wie z.B. die Gruppe "Domänencomputer" oder "Domänencontroller". In der Gruppe "Domänencomputer" sind aber ganz sicher Mitglieder, das kann ich auf dem AD Controller in der Konsole sehen. Wenn ich im Debug-Modus step by step jede Zeile des Codes einzeln ausführe, sehe ich, dass der code oben das Objekt im AD korrekt referenziert, der Zugriff ist also OK, ich bekomme halt nur eine leere Liste zurück. Hat da mal jemand einen Tipp für mich? Danke im voraus! Gruß, T.
  7. Ich habs als CER exportiert und dann mit der von dir angegebenen -addstore Syntax aufgerufen, doch es kam wieder der gleiche Fehler (system kann die angegebene Datei nicht finden). Dann habe ich mal die Reihenfolge von root und der Datei geändert und schon ging es. Also ist der Aufruf: certutil -addstore root Dateiname.cer und nicht andersrum. Vielen herzlichen Dank jedenfalls, jetzt scheint es zu funktionieren! T.
  8. Hmm. Also muss ich das noch vom crt ins cer Format wandeln? Werde ich mir morgen mal ansehen, wie ich das mit OpenSSL wandeln kann. Ein flüchtiger Blick per Google gab mir da aber Hoffnung! Grizzly: Danke! Ohne dich wären die Welt und ich (noch) dümmer. ;-) T.
  9. Hab es jetzt unter XP und unter 2ksrv (auch in VMs) getestet. Geht nicht. Gleicher Fehler.
  10. Naja, standard. Ein .crt. Wenn ich es doppelklicke, bekomme ich einwandfrei die Option, es in den Zertifikatsspeicher zu übernehmen. Ja, es ist ein Stammzertifikat.
  11. Tja, das mit dem Vergeben... fällt leicht, wenn man sieht, wie viel Mühe du dir hier insgesamt gibst. Doch leider führte auch das nicht zum Erfolg. Lediglich die Fehlermeldung ändert sich: CertUtil: -addstore-Befehl FEHLGESCHLAGEN: 0x80070002 (WIN32: 2) CertUtil: Das System kann die angegebene Datei nicht finden. :-( Noch ne Idee? T.
  12. Also, da ich es einfach nicht hinbekomme, hier noch mal eine Nachfrage: Wie geht das??? Ich versuche: certutil.exe -installcert meincert.crt Und bekomme: Certutil: Keine lokale Zertifizierungsstelle; verwenden Sie die -config Option Ich weiß nicht, was in der Config Option angeben soll. Brauche leider noch mal Hilfe! T.
  13. OK, das Programm selbst läuft, jedoch funktioniert die Installation des Zertifikats nicht ohne zusätzliche Schalter, die ich im Moment aber noch nicht verstehe.: certutil.exe -installcert meincert.crt liefert: Certutil: Keine lokale Zertifizierungsstelle; verwenden Sie die -config Option Ich weiß nicht, was in der Config Option angeben soll. Tipps? Danke schon mal! T.
  14. Danke! Habe es auf einem 2ksrv gefunden. T.
  15. Sorry, aber da ist certutil.exe nicht drin.
  16. OK, danke! Aber wie ich das sehe, gibt es certutil.exe nur im 2k3 Admin Tools Pack, für dessen Download man bei MS-Passport einen Account haben muss, richtig? Und in den Requirements steht, dass das nur unter XP und 2k3 läuft. Also nicht unter 2k. Dann muss ich mir was einfallen lassen, denn lieber richte ich das auf jedem Rechner einzeln ein, als dass ich Passport Mitglied werde. (Frag' nicht. Andere Menschen sind Arachnophob, ich bin "Passpordophob"). Hmpf. Oder hast du nen Tipp, wie ich an certutil.exe kommen kann, ohne Passport Mitglied zu werden? T.
  17. Hi! Ich muss auf einem Haufen Rechner ein eigenes Stammzertifikat installieren. Wie kann man dies automatisieren, ohne die GUI auf jedem Rechner separat bedienen zu müssen? Ein Hinweis auf ein Kommandozeilentool zum Import eines Stammzertifikates in den Zertifikatsspeicher würde mir reichen, das Script bekomme ich dann schon hin. Danke im voraus! T.
  18. Der Hinweis hat geholfen, ich habe nun gesehen, dass ich lokalen Gruppen globale Gruppen hinzufügen kann. Ich kann aber keine Verschachtelung herstellen. D.h. der lokalen Gruppe kann ich nur eine globale Gruppe hinzufügen (andere lokale Gruppen gehen nicht), dieser globalen Gruppe kann ich aber weder lokalen Gruppen noch globale Gruppen hinzufügen. Oder gehts doch anders? Kann man auch eine tiefere Verschachtelung herstellen? Die Frage stellt sich mir, weil ich herausfinden muss, ob ein Administrator theoretisch Zirkelbezüge in den Gruppen herstellen kann. Ich danke im voraus! T.
  19. Ich habe die Hierarchie noch nicht verstanden. Wäre es denn theoretisch möglich, Zirkelschlüsse zu produzieren? also a->b->a ? Falls nein, warum nicht? Ich lege in der OU Users eine Gruppe a und eine Gruppe b an. Ich kann aber b nicht zum Mitglied von a machen. Warum nicht?
  20. Hallo! Dürfen Gruppen andere Gruppen als Mitglieder enthalten? Wo finde ich eine Aussage über diese Frage bei Microsoft? Ich finde das etwas komisch, denn ich kann bei einer selbst angelegten Gruppe keine andere Gruppe als Gruppenmitglied mitgeben. Wenn ich aber die Mitglieder einer Gruppe aus dem Bereich "Builtin" (z.B. Gruppe "Administratoren") aufrufe, sehe ich, dass da sehr wohl Gruppen Mitglieder sind, nämlich z.B. die Gruppe "Domänen Admins". Diesen Gruppen kann ich weitere Gruppen als Mitglieder hinzufügen. In wie weit wird die Gruppenzugehörigkeit rekursiv überprüft? Also ein Benutzer, der der Gruppe a angehört, die Gruppe a hat aber die Gruppe b als Mitglied und b wiederum c. Wie tief kann ich das schachteln?
  21. Ich habe gerade NewSID gefunden, ein Programm, das schlicht eine neue SID generiert. Vielleicht gehts damit. Also macht euch erst mal keine Mühe... http://www.sysinternals.com/ntw2k/source/newsid.shtml T.
  22. Hi! Ich muss einige Workstations in einer AG einrichten (also NICHT DC o. AD). Auf jeder WS soll die gleiche Userkonfiguration (d.h. rund ein dutzend User sollen ein eigenes lokales Konto haben) vorhanden sein. Ich habe die User auf meinem Master eingerichtet und dann sysprep laufen lassen und dann ein Image gezogen, aber leider ist nach dem Start des so vorbereiteten System wirklich wieder alles im Ursprungszustand, d.h. ich muss auf jeder WS: -Key eingeben -Windows aktivieren -IP Konfig komplett neu eingeben -Arbeitsgruppe neu eingeben -Alle User neu anlegen Was ich also eigentlich suche, ist eine Möglichkeit, Sysprep oder einem anderen Tool oder sonstwie mitzuteilen, dass es NUR eine neue SID generieren soll, damit die Kisten sich nicht in den Weg kommen, wenn sie zusammen in einem Netzwerk laufen. Ein so geklontes Windows würde ich dann starten und dann auf dem Klon die IP und den Maschinennamen ändern, rebooten, fertig. Also bedeutend weniger Arbeit, als die Variante von oben. Das einzige, was mich derzeit daran hindert, ist, dass die Kisten bei einem Clon ohne Sysprep mit der SID durcheinander kommen. Tipps? Danke im voraus! T.
  23. Sorry, ich muss mich gerade mal als dumm outen, aber ich kenne die Möglichkeit leider nicht, wie man ein Startscript anlegt. Reicht es da eine Batch in ein bestimmtes Verzeichnis zu legen? Wenn ja, wie wird denn dann sichergestellt, dass der, der das das reinlegt das auch darf? Ist das mir Schreibrechten nur für Admins oder wie? Ich würde das gerne mal ausprobieren. Hast du mal nen Tipp für mich, wo ich Doku dazu finde? Vielleicht ein KB Link? Danke im voraus! T.
  24. Ich sehe, ich habe es nicht geschafft, meine Frage so zu formulieren, dass sie jeder versteht. Daher noch mal anders formuliert: Mein Problem ist NICHT, dass die Dateien noch in Benutzung sind. Ich weiß auch genau, welche Dateien das sind. Ich muss aber dafür sorgen, dass irgenein Script oder Prozess oder Programm nach dem Rebbot, der ja dafür sorgt, dass die Dateien eben NICHT mehr in Benutzung sind, auch noch gelöscht werden. Mein Problem ist, dass dafür nach dem Reboot eben wieder ein Admin-Login notwendig wäre. Das will ich aber vermeiden. Es soll sich danach ein normaler User einloggen können. Dieser normale User hat eingeschränkte Rechte und damit nicht das Recht, die Dateien aus system32\drivers zu löschen. Ich möchte also noch zu dem Zeitpunkt, zu dem der Admin eingeloggt ist, einen Task in der Registry hinterlegen, der nach dem Reboot die Dateien löscht. Mein erster Versuch, einfach ein kleines Programm zu schreiben und in runonce abzulegen, hat leider nicht funktioniert, weil nach dem Reboot ein beschränkter User einloggt und die Programme aus Runonce offenbar mit den Rechten des lokal angemeldeten Users ausgeführt werden, statt mit Admin-Rechten. Gibt es einen vernünftigen Weg da raus? Danke nochmal! T.
×
×
  • Neu erstellen...