Computername von Clients per Script ändern und in die Domäne bringen
Folgendes:
Wir haben 20 Clients (win XP) die sind alle in einer Domäne von einem 2003 Server. Auf die 20 Clients kommt jede Woche ein neues Image, dabei kriegt jeder Rechner den Namen: NC67-XY.
XY müssen wir dann von Hand in die jeweilige Rechnernummer ändern, heisst 1 bis 20.
Danach müssen alle in die Domäne gebracht werden.
Um die Arbeit einfacher zu machen, würden wir gerne ein Script benutzen.
Hat jmd. eine Idee oder vielleicht sogar ein fertiges Script?
Danke!
Wir haben 20 Clients (win XP) die sind alle in einer Domäne von einem 2003 Server. Auf die 20 Clients kommt jede Woche ein neues Image, dabei kriegt jeder Rechner den Namen: NC67-XY.
XY müssen wir dann von Hand in die jeweilige Rechnernummer ändern, heisst 1 bis 20.
Danach müssen alle in die Domäne gebracht werden.
Um die Arbeit einfacher zu machen, würden wir gerne ein Script benutzen.
Hat jmd. eine Idee oder vielleicht sogar ein fertiges Script?
Danke!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 56654
Url: https://administrator.de/contentid/56654
Ausgedruckt am: 22.11.2024 um 15:11 Uhr
7 Kommentare
Neuester Kommentar
G' Abend,
ich hatte auch mal ein ähnliches Problem, bloß mit der Installation über RIS.
Lösung:
Ich habe mir eine MySQL Tabelle angelegt und dort Rechnername + MAC-Adresse hinterlet. Nun wirst du dich fragen, warum so und nicht einfach eine Textdatei?! Ganz einfach, wir wollten die Verwaltung über PHP lösen, somit ist die Tabelle immer die Aktuelleste und es gibt keine doppelten Dateien.
Foglende Dateien brauchst du im Verzeichnis "C:\WINDOWS\system32". Somit kann die EXE-Datei direkt angesprochen werden (OHNE Pfad).
- netdom.exe (findest du im RessourceKit von WindowsXP /2003
- mysql.exe (findest du in jeder MySQL Version
Nun zur Batchdatei....
1. Schritt
Wie stelle ich es am besten, dass der Batch nur einmal gestartet wird?
Ich habe es einfach ihn den Autostart des Benutzers kopieren lassen, der nach der Installation angemeldet wird (in deinem Fall musst es direkt im Image festlegen).
Beispiel:
2.Schritt:
Nun erfolgt die Abfrage der MySQL - Tabelle. In %pc% steht nun der gewünschte Computer, der in der Tabelle für die MAC-Adresse hinterlegt ist. Bitte nicht vergessen, einen extra Benutzer für MySQL anzulegen. Dieser sollte NUR READ-Rechte haben. Somit kann kein Benutzer Mist mit ihm machen.
3.Schritt:
Jetzt muss bloß noch noch der Computername geändert werden. Dort wird bereits die Variable "%pc%" verwendet!! Dies passiert hier:
4. Schritt:
Nun muss ein Neustart erfolgen.
5.Schritt:
Nun wieder das selbe wie der 1.Schritt (vom bewirken her). Dies mal wird überprüft, ob der Client schon in der Domain ist:
6. Schritt:
Alle Netzlaufwerke trenne und dann kann mit netdom.exe der Computer in die Domäne aufgenommen werden.
Auch hier gilt, für das Hinzufügen in die Domäne einen extra Benutzer im ADS erstellen, der nur in der Gruppe Domänen-Benutzer und Kontoperator ist!! Du kannst hier auch klar sagen, in welche OU der Computer soll.
7.Schritt:
Nun noch die letzte Abfrage:
So das war es auch schon. Sieht zwar nach ziemlich viel aus, aber in der Batchdatei (ohne meine Kommentare) kommst du auf 10-15 Zeilen.
Gruß
Dani
ich hatte auch mal ein ähnliches Problem, bloß mit der Installation über RIS.
Lösung:
Ich habe mir eine MySQL Tabelle angelegt und dort Rechnername + MAC-Adresse hinterlet. Nun wirst du dich fragen, warum so und nicht einfach eine Textdatei?! Ganz einfach, wir wollten die Verwaltung über PHP lösen, somit ist die Tabelle immer die Aktuelleste und es gibt keine doppelten Dateien.
Foglende Dateien brauchst du im Verzeichnis "C:\WINDOWS\system32". Somit kann die EXE-Datei direkt angesprochen werden (OHNE Pfad).
- netdom.exe (findest du im RessourceKit von WindowsXP /2003
- mysql.exe (findest du in jeder MySQL Version
Nun zur Batchdatei....
1. Schritt
Wie stelle ich es am besten, dass der Batch nur einmal gestartet wird?
Ich habe es einfach ihn den Autostart des Benutzers kopieren lassen, der nach der Installation angemeldet wird (in deinem Fall musst es direkt im Image festlegen).
Beispiel:
@echo off & setlocal
IF EXIST "C:\computer.txt" GOTO domain
...
Nun erfolgt die Abfrage der MySQL - Tabelle. In %pc% steht nun der gewünschte Computer, der in der Tabelle für die MAC-Adresse hinterlegt ist. Bitte nicht vergessen, einen extra Benutzer für MySQL anzulegen. Dieser sollte NUR READ-Rechte haben. Somit kann kein Benutzer Mist mit ihm machen.
....
::Computername aus der Liste auslesen
FOR /f "tokens=2 delims=:" %%a IN ('IPCONFIG /all ^| FIND "Physi"') DO SET mac=%%a
::Sucht den passenden COmputernamen aus der Tabelle heraus.
FOR /f %%b IN ('mysql.exe -h HOST -u BENUTZER -pPASSWORT -D DATENBANK --execute="select computer from TABELLE where mac=trim(leading ' ' from lcase('%mac%'));" -s') DO SET pc=%%b
....
Jetzt muss bloß noch noch der Computername geändert werden. Dort wird bereits die Variable "%pc%" verwendet!! Dies passiert hier:
...
REG add "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f
REG add "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f
REG add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f
REG add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f
...
Nun muss ein Neustart erfolgen.
....
SHUTDOWN -r -f -t 10
GOTO ende
....
Nun wieder das selbe wie der 1.Schritt (vom bewirken her). Dies mal wird überprüft, ob der Client schon in der Domain ist:
....
IF EXIST "C:\domain.txt" GOTO neustart
...
Alle Netzlaufwerke trenne und dann kann mit netdom.exe der Computer in die Domäne aufgenommen werden.
....
NET use * /d /y
NETDOM join %computername% /Domain:DOMÄNE /UserD:BENUTZER /PasswordD:PASSWORT /OU:"OU=Computer,OU=TEST,DC=dt,DC=local"
....
7.Schritt:
Nun noch die letzte Abfrage:
....
ECHO OK >> "C:\domain.txt"
SHUTDOWN -r -f -t 10
:ende
Gruß
Dani
@Dani
Prima Beitrag von Dir!
Auch wenn es für Abrelatas' Anforderung nicht ganz ohne Änderungen passt, hätte ich genau diese Musterlösung nochmal als Tutorial in "Batch & Shell".
Würdest Du das bitte gelegentlich machen bitte?
Muss nicht an diesem Sahnewetter-Wochenende sein... ist nicht eilig.
Danke Dir
Biber
Prima Beitrag von Dir!
Auch wenn es für Abrelatas' Anforderung nicht ganz ohne Änderungen passt, hätte ich genau diese Musterlösung nochmal als Tutorial in "Batch & Shell".
Würdest Du das bitte gelegentlich machen bitte?
Muss nicht an diesem Sahnewetter-Wochenende sein... ist nicht eilig.
Danke Dir
Biber
@Biber
hiermit reserviere ich das Thema für mich! Ich habe dir noch eine PM geschickt.
@Abrelatas
Naja....so auf die Schnelle, konnte ich nix anders finden bzw. programmieren.
Einfach eine MySQL eine Datenbank anlegen. "TEST" muss durch deinen gewünschten Namen ersetzen.
Nun musst du die Tabelle anlegen:
ACHTUNG! Das sind die fertigen SQL-Statments für dich. "mac_adressen" ist der Name der Tabelle. Kannst du auch wieder nach belieben ändern.
Gruß
Dani
hiermit reserviere ich das Thema für mich! Ich habe dir noch eine PM geschickt.
@Abrelatas
Naja....so auf die Schnelle, konnte ich nix anders finden bzw. programmieren.
Einfach eine MySQL eine Datenbank anlegen. "TEST" muss durch deinen gewünschten Namen ersetzen.
CREATE DATABASE `test`;
Nun musst du die Tabelle anlegen:
CREATE TABLE `mac_adressen` (
`id` INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`mac` TEXT NOT NULL ,
`pc_name` TEXT NOT NULL
) ENGINE = MYISAM ;
Gruß
Dani