adminit
Goto Top

nicht aktive Computer im AD entfernen

Hallo zusammen,

ich habe mal eine Frage..

Wir haben einen WIN 2003 Server und AD im einsatz. Im laufe der Zeit wurde Rechner aussortiert und aus dem Netz genommen. Nun sind diese Rechner allerding immer noch im Active Directory Baum.

Gibt es eine Möglichkeit die alten Clients mit Hilfe eines Tools zu entfernen??

Danke für Eure Hilfe vorab.

Content-ID: 74892

Url: https://administrator.de/forum/nicht-aktive-computer-im-ad-entfernen-74892.html

Ausgedruckt am: 23.12.2024 um 06:12 Uhr

datasearch
datasearch 01.12.2007 um 02:01:20 Uhr
Goto Top
Wenn man absolut sicher das, das die noch aktiven Computerkonten innerhalb einer Zeitspanne verwendet wurden, die Aussortierten aber nicht (zb. die letzten 30 Tage) kannst man mit
dsquery computer -inactive 30 | dsmove -newparent ou=DELETE,dc=DOMÄNE,dc=TLD
die inaktiven Computerkonten zur durchsicht in die OU DELETE verschieben. Wenn diese wirklich gelöscht werden können, kann das dort immernoch erfolgen. HINWEIS: Einen dsquery mit angefügtem dsrm (was ja theoretisch auch möglich ist) sollte IMMER vermieden werden. Ein Tippfehler und 300 Computer müssen neu angelegt werden (es sei denn, man weiß wie man authorative Wiederherstellungen im AD ausführt). Die Konten können erstmal deaktiviert und nach weiteren 30 Tagen vom Admin gelöscht werden.

PS: Die OU DELETE muss vorher noch angelegt werden.
adminit
adminit 01.12.2007 um 11:28:03 Uhr
Goto Top
HI datasearch..

danke für deine Mühe face-smile
So viele Infos auf einmal.. wow

Jetzt muss ich ganz blöd fragen, wo ich den so eine Befehlszeile ausführen kann?? Ich muss dazu sagen, das ich noch nicht so lange mit der 2003 AD Struktur arbeite face-sad
dsquery computer -inactive 30 | dsmove-newparent ou=DELETE,dc=DOMÄNE,dc=TLD

so wie ich Dich verstanden habe,
- wird von mir ein OU "Delete" erstellt,
- der von Dir erstellte Befehl ausgeführt
- anschliessend werden alle Clients im AD die älter als 30 Tage sind in diese OU verschoben

Einen dsquery mit angefügtem dsrm (was
ja theoretisch auch möglich ist) ....
Eine Frage: was ist ein "dsrm"??

Vielen dank schon mal vor ab..
datasearch
datasearch 01.12.2007 um 12:07:21 Uhr
Goto Top
Jetzt muss ich ganz blöd fragen, wo ich den so eine Befehlszeile ausführen kann??
Ganz normal in der cmd (Start -> Ausführen -> cmd)
Ich muss dazu sagen, das ich noch nicht so lange mit der 2003 AD Struktur arbeite
Kein Problem. Du machst folgendes:

  1. Erstelle in der Konsole "Active Directory Benutzer und Computer" eine Organisationseinheit (OU) mit dem Namen DELETE (oder jeder andere von dir gewünschte Name)
  2. Öffne die Konsole und gib den Befehl dsquery computer -inactive 30 ein. Der Befehl zeigt eine Liste mit allen Computerkonten die seit 30 Tagen nicht verwendet wurden
  3. Prüfe die Liste ob nicht einer dabei ist der nicht verschoben werden darf.
  4. Führe den Befehl erneut aus und übergib diesmal die Ausgabe an den Befehl dsmove. Mit dem Parameter -newparent sagst du dsmove er soll die Computerkonten in den folgenden Pfad legen. Der Pfad muss in Form des LDAP-DN´s angegeben werden. Die OU DELETE in der Domäne test.org hat den DN ou=DELETE,dc=test,dc=org. dsquery computer -inactive 30 | dsmove -newparent DEINE DN DER OU
  5. Prüfe unter "Active Directory Benutzer und Computer" in der OU DELETE ob du die Konten wirklich löschen kannst. Vorzugsweise sollte man Sie nur deaktivieren.

Eine Frage: was ist ein "dsrm"??
Ein anderer Befehl, diesmal zu löschen von AD-Objekten. Wenn du allerdings etwas per Script löschst, solltest du absolut sicher sein was da passiert. Das hat sonst unangenehme folgen.
adminit
adminit 01.12.2007 um 19:14:46 Uhr
Goto Top
Hey Datasearch..

Vielen vielen dank für deine ausführliche Hilfe ;)

Ich habe dein Befehl eingegeben und erhalte folgenden Fehler:
dsquery computer -inactive 30

dsquery ist fehlgeschlagen:Falscher Parameter.:Diese Abfrage konnte nicht ausgeführt >werden, weil die Domäne, mit der Sie eine Verbindung hergestellt haben, diese Abfrage nicht >unterstützt.
Was ist den bei mir anders als bei Dir?

Allerdings hatte ich es mit diesem Befehl mehr erfolg
dsquery computer -stalepwd 30 -limit 999

Nur leider sind dort auch Rechner drin, die noch aktiv sind??
datasearch
datasearch 02.12.2007 um 02:21:10 Uhr
Goto Top
Welche Funktionsebene hat deine Domäne und wie viele Domänencontroller mit welchem Betriebssystem gibt es? Der Befehl dsquery computer -inactive xx benötigt das lastLogonTimestamp-Attribut, welches leider erst in der Funktionsebene 2003Pur zur Verfügung steht.

Der Parameter -stalepwd xx zeigt alle Computerkonten mit einem Kennwort älter als xx Tage. Standartmäßig ändern Computer ihr Kennwort alle 30 Tage, das heißt, wenn du 40 angibst, hast du alle Computer die aus irgendwelchen gründen ihr Kennwort in den letzten 40 Tagen nicht geändert haben. Da dies aber jeder Computer innerhalb dieser Zeitspanne macht (wenn er verbindung zur Domäne hat), sollten nur die entfernten übrigbleiben (übrigens, wenn ein Computer länger als 30 Tage getrennt war, musst du das Konto zurücksetzen und den betreffenden Computer neu in die Domäne aufnehmen). Dein Befehl lautet also: dsquery computer --stalepwd 40.

Hintergrund: Du kannst den Zeitraum durch das Attribut MaximumPasswordAge steuern. wenn du zb. Computer hast, die länger als 30 Tage getrennt sind, entweder das maximale Alter erhöhen, den Computer vorrübergehend von der Domäne trennen oder damit leben das du den PC bei rückkehr an den Standort neu in die Domäne aufnehmen musst.
adminit
adminit 02.12.2007 um 12:18:57 Uhr
Goto Top
Die Funktionsebene sieht wie folgt aus:

Grundsätzlich habe ich auf allen Servern WIN 2003 Server. Insgesammt habe ich 3 DC. Der erste ist der Primäre der zweite ist der Backup DC und der dritte eine SUB Domäne für eine bestimmte Abteilung..

Demnach müsste eigentlich dein Befehl funktionieren?? oder?

Oder kann ich den Server um "lastLogonTimestamp-Attribut" (???) erweitern.
datasearch
datasearch 02.12.2007 um 14:14:26 Uhr
Goto Top
Da du weder NT4 noch Windows2000 Server als DC in deiner Domäne hast, kannst du die Funktionsebene problemlos heraufstufen. Dann sollte das Attribut vorhanden sein. Du hast gleich noch ein paar weitere Vorteile. Gerade was Replikation usw. angeht. Ich würde immer versuchen die höchstmögliche Funktionsebene zu verwenden um maximale Effizienz bei der Replikation zu erreichen.

Genaueres zu den Funktionsebenen findest du hier:
http://www.microsoft.com/technet/prodtechnol/windowsserver2003/de/libra ...


Unabhängig vom DFL sollte aber der andere Befehl trotzdem funktionieren face-wink
adminit
adminit 06.12.2007 um 14:40:32 Uhr
Goto Top
Hi danke für die Hilfe,

der andere Befehl funktioniert ;)

Bevor ich nun den Server hochstufe.. frage ich noch mal vorsichtig.
Damit ich den ersten DC hochstufen kann, müssen doch alle DC auf der 2003 Landschaft laufen, die Clients betrifft das jedoch nicht oder?? Habe ich das richtig verstanden?

D.h. demnach betrifft das die Clients nicht auch wenn ich ein WIN98 Client sowie 2000er Rechner habe?

Kann ich das ohne bedenken machen? Nicht das mein Server anschliessend nicht hoch kommt?
datasearch
datasearch 06.12.2007 um 17:15:36 Uhr
Goto Top
Damit ich den ersten DC hochstufen kann, müssen doch alle DC auf der 2003 Landschaft laufen, die Clients betrifft das jedoch nicht oder?? Habe ich das richtig verstanden?

Ja, das betrifft alle domänencontroller in der Domäne (wenn du die Domänen-funktionsebene heraufstufen möchtest) und alle Domänencontroller in der Gesamtstruktur (also alle Domänen) wenn du diese heraufstufen möchtest. Die Clients sind dabei egal. Du kannst auch Windows2000 Server in die Domäne hinzufügen, nur eben nicht als Domänencontroller.

Grüße.
tripplesixer
tripplesixer 09.08.2011 um 10:00:39 Uhr
Goto Top
Super, der String funktioniert auch unter 2008 R2 einwandfrei.

Danke für die Hilfe!