Batch - Automatisiert den Computername ändern und anschließend in die Domäne aufnehmen
28.04.2007
13:15:40 Uhr56970 Aufrufe
4 Antworten
13:15:40 Uhr
4 Antworten
Hilfreich +3
Änderungen:
28.04.2007 19:21
Grammatik / Rechtschreibfehler beseitigt.
29.04.2007 10:32
Text wurde von "bastla" und mir nochmal verfeinert.
30.05.2007 13:06
Der User -151kg- hat einen Fehler im meinem Script gefunden. Vielen Dank für den Hinweis...Das Problem habe ich eben gefixt.
02.12.2007
Erweiterung - Handling mehrerer MAC-Adressen in der IPConfig-Ausgabe Major0190/Biber.
Hallo zusammen,
auf Wunsch von "Biber" habe ich aus einem meiner Kommentaren ein Tutorial erzeugt. Diese Frage taucht in letzter Zeit einfach öfters auf.
28.04.2007 19:21
Grammatik / Rechtschreibfehler beseitigt.
29.04.2007 10:32
Text wurde von "bastla" und mir nochmal verfeinert.
30.05.2007 13:06
Der User -151kg- hat einen Fehler im meinem Script gefunden. Vielen Dank für den Hinweis...Das Problem habe ich eben gefixt.
02.12.2007
Erweiterung - Handling mehrerer MAC-Adressen in der IPConfig-Ausgabe Major0190/Biber.
Hallo zusammen,
auf Wunsch von "Biber" habe ich aus einem meiner Kommentaren ein Tutorial erzeugt. Diese Frage taucht in letzter Zeit einfach öfters auf.
Situation
Wer kennt es nicht: Man betreut ein Netzwerk mit mehreren Clients und ist es Leid, immer nach dem Image-Verteilen bzw. nach einer Neuinstallation zu jedem Rechner zu laufen, um den Computernamen zu ändern und danach in die Domäne einzubinden. Aber dafür gibt es eine Lösung!
Grundlagen im LAN (Allgemein)
Voraussetzung für dieses Vorhaben ist, dass sich mindestens eine Domäne im Netzwerk (LAN) befindet. Zusätzlich zum AD (Active Directory) muss ein DHCP - Server und ein RIS - Server laufen. Diese Dienste können entweder auf der gleichen Maschine laufen oder aber auf einzelne verteilt werden, je nach Auslastung und Clientanzahl!
Ab wann lohnt sich der Aufwand?
Also das kann man allgemein nicht sagen, aber ich denke, so ab 10 Clients würde ich den Aufwand treiben. Nach oben hin sehe ich keine Grenzen. Dort wird es dann eher eine Frage der Hardwarebegrenzung sein.
Wie wird der entsprechende Computername zugeordnet?
Als Grundlage dient die MAC – Adresse der Netzwerkkarte (NIC), da diese weltweit einmalig und somit prima als Basis für die Problemlösung geeignet ist.
Wo wird der Computername und die MAC - Adresse hinterlegt (+ Vorteile / Nachteile)?
Hier gibt es 2 Möglichkeiten: Grundsätzlich kann so was immer mit einer Datei (z.B. Textdatei) gelöst werden. Somit reicht ein einfacher Editor aus und die Datei ist später auch sehr anwenderfreundlich. Doch bei mehreren Computern (so ab 100 Clients) könnte die Datei unübersichtlich werden. Nicht nur das, wenn mehrere Leute an der Datei arbeiten, könnten unter bestimmten Umständen irgendwann mal mehrere Dateien existieren, und dann ist das Chaos vorprogrammiert.
Daher habe ich noch ein anderes Verfahren (war wahrscheinlich der 1000. Mensch, der auf die Idee gekommen ist) entwickelt. Voraussetzung ist ein Webserver (mit PHP Unterstützung) und ein MySQL-Server. Und zwar habe ich in einer SQL-Tabelle den Computer mit dazugehöriger MAC - Adresse gespeichert. Dadurch hat man die Chance, sich ein Webinterface zu programmieren. Dies setzt jedoch einige Kenntnisse in PHP und SQL voraus. Aber über diese Webanwendung können Datensätze hinzugefügt / geändert / gesucht / gelöscht werden. Je nach Belieben!
Vorbereitungen auf dem Server
Für das Aufnehmen eines Computers in die Domäne würde ich einen extra AD - Benutzer anlegen. Danach sollte der Benutzer noch der Gruppe „Kontooperatoren“ hinzugefügt werden.
Im Profil zusätzlich den Haken setzen, dass das Passwort nicht geändert werden kann! Somit wird die Sicherheit nicht ganz vernachlässigt!
Vorbereitungen auf dem Server für die Datei-Variante
Am einfachsten ist es vom Clientzugriff her gesehen, extra eine verstecke Freigabe zu erstellen, auf die „JEDER“ => „Lesezugriff“ hat (sowohl Freigaberechte als auch NTFS - Rechte). Damit ist die Freigabe vor Veränderungen aus dem Netzwerk geschützt! Dort kann nun eine Datei mit dem Namen „xyz.txt“ anlegt werden. Beim Eintragen von MAC – Adresse und dem dazugehörigen Computernamen genau ein Leerzeichen dazwischen lassen. Dadurch gibt es später beim Suchen keine Probleme. Für jede MAC - Adresse muss eine extra Zeile benutzt werden.
Beispiel:
Bitte diese Schreibweise beibehalten, da sonst der Batch (unten) das falsche Ergebnis ausgibt!
Vorbereitungen auf dem Server für die Datenbank-Variante
Zuerst sollten auf einem x-beliebigen Server ein Webserver mit PHP und ein MySQL-Server laufen. Zum Verwalten des MySQL-Servers eignet sich am Besten „phpMyAdmin“.
Downloads:
Für das Einrichten von PHP und MySQL gibt es genügend Tutorials im Internet.
Nun muss zuerst eine Datenbank erstellt werden. „DATENBANKNAME“ könnt Ihr durch Euren Wunschnamen ersetzen. Das SQL – Statement zum Erstellen der Datenbank sieht wie folgt aus:
Danach muss in der Datenbank noch eine Tabelle erstellt werden. In dieser werden dann später die entsprechenden Daten gespeichert. In einer Datenbank können beliebig viele Tabellen erstellt werden. „mac-adressen“ ist der Tabellename und kann von Euch beliebig verändert werden. Hier das SQL – Statement für das Erstellen der Tabelle:
Da später eine Tabellenabfrage (Datenbankabfrage) stattfindet, wird ein Benutzer benötigt. Nun könnte man sagen: „Ich benutze den MySQL root – Benutzer“, jedoch steht das PW später in der Batchdatei im Klartext drin!! Eine bessere Lösung ist, einen weiteren Benutzer anzulegen, der NUR Leserechte auf die Tabelle hat.
Dazu den phpMyAdmin aufrufen und als „root“ einloggen. Auf der Übersichtsseite den Punkt „Rechte“ (Mitte unten) anklicken.
Nun erscheint eine Übersicht mit den vorhandenen Benutzern. Darunter gibt es die Option, einen neuen Benutzer einzurichten => anklicken. Im darauf erscheinenden Formular die entsprechenden Daten eingeben und auf „OK“ klicken. Den Rest braucht Ihr zu diesem Zeitpunkt nicht beachten!
Auf der darauf erscheinenden Seite können nun Berechtigungen (global und / oder lokal) vergeben werden. In unserem Fall interessieren uns nur die Lokalen Berechtigungen! Dazu ungefähr in die Mitte scrollen (Datenbankspezifische Rechte) und im DropDown – Menü die Datenbank angeben, die vorher oben erstellt wurde. Nach der Auswahl wird automatisch die nächste Seite geladen. Hier muss der vorherige Schritt wiederholt werden, nur muss dieses Mal die vorher erstellte Tabelle ausgewählt werden. Die nächste Seite wird wieder automatisch geladen. Jetzt erscheint eine Übersicht mit „SELECT“ / „INSERT“… Bei „SELECT“ bitte alle Einträge markieren (SHIFT – Taste gedrückt halten) und dann mit „OK“ abschicken.
Voraussetzungen auf den Clients
Leider reichen die Windowsboardmittel nicht aus (egal bei welcher Variante). Aber Gott sei Dank gibt es die Windows Supporttools von WindowsXP (Download: http://www.microsoft.com/downloads/detail .... Daraus wird die netdom.exe benötigt. Die heruntergeladene Datei entpacken und aus der support.cab die EXE „netdom“ extrahieren. Diese EXE ermöglicht den Domänenbeitritt per Kommandozeile.
Für die Datenbank-Variante wird noch die EXE „mysql.exe“ gebraucht. Diese befindet sich im „bin“ – Ordner von MySQL.
Beide Dateien sollten beim Client im Verzeichnis „C:\WINDOWS\system32“ liegen. Bei der Imagevariante dürfte das kein Problem sein. Bei der RIS Variante gibt es auch eine Lösung (http://www.windows-unattended.de/unattend ....
1.Schritt: Einbinden der Datei
Ich habe die Variante mit dem Autostartordner gewählt. Beim Image dürfte es keine Probleme geben. Beim RIS - Server ist es etwas anders. Dazu muss in die *.sif Datei der entsprechende Eintrag getätigt werden:
Die „start.bat“ (Inhalt dieser Datei sind die folgenden Codezeilen) muss nach „$OEM$\$$“ gespeichert werden.
Nach der Installation per RIS bzw. nach dem Image wird der Rechner neugestartet. Nun wird wahrscheinlich automatisch ein Benutzer (braucht natürlich Adminrechte) angemeldet, sodass automatisch das Script gestartet wird.
2. Schritt: Dafür sorgen, dass die Batchdatei nur einmal ausgeführt wird
Dazu lasse ich eine leere Textdatei auf C: erzeugen und überprüfe dann immer, ob diese bereits existiert.
3. Schritt: Auslesen der MAC – Adresse
Nun wird mit einer einfachen FOR – Schleife die MAC – Adresse ausgelesen und in eine Variable geschrieben.
4a. Schritt: Auslesen des Computernamens anhand der MAC - Adresse (Dateivariante)
In der Variable "%pc%" steht nun der Computername. Der Pfad zur MAC-Datei muss natürlich durch Euren Pfad ersetzt werden.
4b. Schritt: Auslesen des Computernamens an Hand der MAC - Adresse (DB - Variante)
Hier kommt nun die mysql.exe zum Einsatz. In der Variable "%pc%" steht nun der Computername, der in der MySQL – Tabelle für diese MAC – Adresse hinterlegt ist.
Die groß geschriebenen Wörter sind durch Eure Werte zu ersetzen!
Erweiterung Dez. 2007 - Handling mehrerer MAC-Adressen in der IPConfig-Ausgabe.
Falls mehrere MAC-Adressen je Rechner vorkommen können, statt Schritt 3 und 4b diese Mimik:
siehe Kommentar/Querverweis von Biber weiter unten.
5. Schritt: Computernamen ändern
Jetzt kann der Computername geändert werden. In den folgenden Zeilen braucht nichts verändert zu werden, da dort die Variable "%pc%" eingebaut ist!
6. Schritt: Neustart einleiten
7. Schritt: Überprüfung, ob Domainabschnitt schon einmal ausgeführt wurde.
8. Schritt: Computer in die Domäne aufnehmen
Nachdem alle Netzlaufwerke getrennt sind, wird per netdom.exe der Computer in die Domäne aufgenommen. Die entsprechenden Stellen müssen natürlich wieder durch Eure Werte ersetzt werden.
Als Benutzer könnt ihr den oben erstellten AD - Benutzer verwenden! Zusätzlich habt Ihr die Option, den Computer gleich in eine OU zu verschieben.
9. Schritt: Ende
Nun noch die letzte Abfrage:
Bemerkung zur Datenbank-Variante:
Hierzu lässt sich noch per PHP ein Webinterface programmieren. Leider darf ich meines nicht herausgeben.
Anmerkung:
Ich möchte mich bei „Biber“ und „bastla“ bedanken. Sie haben auch einen Teil beigetragen!
Gruß
Dani
Wer kennt es nicht: Man betreut ein Netzwerk mit mehreren Clients und ist es Leid, immer nach dem Image-Verteilen bzw. nach einer Neuinstallation zu jedem Rechner zu laufen, um den Computernamen zu ändern und danach in die Domäne einzubinden. Aber dafür gibt es eine Lösung!
Grundlagen im LAN (Allgemein)
Voraussetzung für dieses Vorhaben ist, dass sich mindestens eine Domäne im Netzwerk (LAN) befindet. Zusätzlich zum AD (Active Directory) muss ein DHCP - Server und ein RIS - Server laufen. Diese Dienste können entweder auf der gleichen Maschine laufen oder aber auf einzelne verteilt werden, je nach Auslastung und Clientanzahl!
Ab wann lohnt sich der Aufwand?
Also das kann man allgemein nicht sagen, aber ich denke, so ab 10 Clients würde ich den Aufwand treiben. Nach oben hin sehe ich keine Grenzen. Dort wird es dann eher eine Frage der Hardwarebegrenzung sein.
Wie wird der entsprechende Computername zugeordnet?
Als Grundlage dient die MAC – Adresse der Netzwerkkarte (NIC), da diese weltweit einmalig und somit prima als Basis für die Problemlösung geeignet ist.
Wo wird der Computername und die MAC - Adresse hinterlegt (+ Vorteile / Nachteile)?
Hier gibt es 2 Möglichkeiten: Grundsätzlich kann so was immer mit einer Datei (z.B. Textdatei) gelöst werden. Somit reicht ein einfacher Editor aus und die Datei ist später auch sehr anwenderfreundlich. Doch bei mehreren Computern (so ab 100 Clients) könnte die Datei unübersichtlich werden. Nicht nur das, wenn mehrere Leute an der Datei arbeiten, könnten unter bestimmten Umständen irgendwann mal mehrere Dateien existieren, und dann ist das Chaos vorprogrammiert.
Daher habe ich noch ein anderes Verfahren (war wahrscheinlich der 1000. Mensch, der auf die Idee gekommen ist) entwickelt. Voraussetzung ist ein Webserver (mit PHP Unterstützung) und ein MySQL-Server. Und zwar habe ich in einer SQL-Tabelle den Computer mit dazugehöriger MAC - Adresse gespeichert. Dadurch hat man die Chance, sich ein Webinterface zu programmieren. Dies setzt jedoch einige Kenntnisse in PHP und SQL voraus. Aber über diese Webanwendung können Datensätze hinzugefügt / geändert / gesucht / gelöscht werden. Je nach Belieben!
Vorbereitungen auf dem Server
Für das Aufnehmen eines Computers in die Domäne würde ich einen extra AD - Benutzer anlegen. Danach sollte der Benutzer noch der Gruppe „Kontooperatoren“ hinzugefügt werden.
Im Profil zusätzlich den Haken setzen, dass das Passwort nicht geändert werden kann! Somit wird die Sicherheit nicht ganz vernachlässigt!
Vorbereitungen auf dem Server für die Datei-Variante
Am einfachsten ist es vom Clientzugriff her gesehen, extra eine verstecke Freigabe zu erstellen, auf die „JEDER“ => „Lesezugriff“ hat (sowohl Freigaberechte als auch NTFS - Rechte). Damit ist die Freigabe vor Veränderungen aus dem Netzwerk geschützt! Dort kann nun eine Datei mit dem Namen „xyz.txt“ anlegt werden. Beim Eintragen von MAC – Adresse und dem dazugehörigen Computernamen genau ein Leerzeichen dazwischen lassen. Dadurch gibt es später beim Suchen keine Probleme. Für jede MAC - Adresse muss eine extra Zeile benutzt werden.
Beispiel:
01.
00-cd-34-56-78-r0-1a TEST01 02.
34-32-vc-5b-42-33-5h TEST02Bitte diese Schreibweise beibehalten, da sonst der Batch (unten) das falsche Ergebnis ausgibt!
Vorbereitungen auf dem Server für die Datenbank-Variante
Zuerst sollten auf einem x-beliebigen Server ein Webserver mit PHP und ein MySQL-Server laufen. Zum Verwalten des MySQL-Servers eignet sich am Besten „phpMyAdmin“.
Downloads:
| PHP | http://www.php.net/downloads.php |
| MySQL | http://dev.mysql.com/downloads/mysql/5.0. ... |
| phpMyAdmin | http://www.phpmyadmin.net/home_page/index ... |
Für das Einrichten von PHP und MySQL gibt es genügend Tutorials im Internet.
Nun muss zuerst eine Datenbank erstellt werden. „DATENBANKNAME“ könnt Ihr durch Euren Wunschnamen ersetzen. Das SQL – Statement zum Erstellen der Datenbank sieht wie folgt aus:
01.
CREATE DATABASE 'DATENBANKNAME';01.
CREATE TABLE 'mac_adressen' ( 02.
'id' INT( 255 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , 03.
'mac' TEXT NOT NULL , 04.
'pc_name' TEXT NOT NULL 05.
) ENGINE = MYISAM ;Dazu den phpMyAdmin aufrufen und als „root“ einloggen. Auf der Übersichtsseite den Punkt „Rechte“ (Mitte unten) anklicken.

Nun erscheint eine Übersicht mit den vorhandenen Benutzern. Darunter gibt es die Option, einen neuen Benutzer einzurichten => anklicken. Im darauf erscheinenden Formular die entsprechenden Daten eingeben und auf „OK“ klicken. Den Rest braucht Ihr zu diesem Zeitpunkt nicht beachten!
Auf der darauf erscheinenden Seite können nun Berechtigungen (global und / oder lokal) vergeben werden. In unserem Fall interessieren uns nur die Lokalen Berechtigungen! Dazu ungefähr in die Mitte scrollen (Datenbankspezifische Rechte) und im DropDown – Menü die Datenbank angeben, die vorher oben erstellt wurde. Nach der Auswahl wird automatisch die nächste Seite geladen. Hier muss der vorherige Schritt wiederholt werden, nur muss dieses Mal die vorher erstellte Tabelle ausgewählt werden. Die nächste Seite wird wieder automatisch geladen. Jetzt erscheint eine Übersicht mit „SELECT“ / „INSERT“… Bei „SELECT“ bitte alle Einträge markieren (SHIFT – Taste gedrückt halten) und dann mit „OK“ abschicken.
Voraussetzungen auf den Clients
Leider reichen die Windowsboardmittel nicht aus (egal bei welcher Variante). Aber Gott sei Dank gibt es die Windows Supporttools von WindowsXP (Download: http://www.microsoft.com/downloads/detail .... Daraus wird die netdom.exe benötigt. Die heruntergeladene Datei entpacken und aus der support.cab die EXE „netdom“ extrahieren. Diese EXE ermöglicht den Domänenbeitritt per Kommandozeile.
Für die Datenbank-Variante wird noch die EXE „mysql.exe“ gebraucht. Diese befindet sich im „bin“ – Ordner von MySQL.
Beide Dateien sollten beim Client im Verzeichnis „C:\WINDOWS\system32“ liegen. Bei der Imagevariante dürfte das kein Problem sein. Bei der RIS Variante gibt es auch eine Lösung (http://www.windows-unattended.de/unattend ....
Batchdatei
1.Schritt: Einbinden der Datei
Ich habe die Variante mit dem Autostartordner gewählt. Beim Image dürfte es keine Probleme geben. Beim RIS - Server ist es etwas anders. Dazu muss in die *.sif Datei der entsprechende Eintrag getätigt werden:
01.
... 02.
[GuiRunOnce] 03.
%windir%\start.bat 04.
...
Nach der Installation per RIS bzw. nach dem Image wird der Rechner neugestartet. Nun wird wahrscheinlich automatisch ein Benutzer (braucht natürlich Adminrechte) angemeldet, sodass automatisch das Script gestartet wird.
2. Schritt: Dafür sorgen, dass die Batchdatei nur einmal ausgeführt wird
Dazu lasse ich eine leere Textdatei auf C: erzeugen und überprüfe dann immer, ob diese bereits existiert.
01.
@echo off & setlocal 02.
03.
::Wartezeit von 2 Minuten 04.
ping 127.0.0.1 –n 120 >nul 05.
06.
if exist "C:\computer.txt" goto domain 07.
....3. Schritt: Auslesen der MAC – Adresse
Nun wird mit einer einfachen FOR – Schleife die MAC – Adresse ausgelesen und in eine Variable geschrieben.
01.
... 02.
for /f "tokens=2 delims=:" %%a in ('ipconfig /all ^| find "Physi"') do set mac=%%a 03.
...4a. Schritt: Auslesen des Computernamens anhand der MAC - Adresse (Dateivariante)
In der Variable "%pc%" steht nun der Computername. Der Pfad zur MAC-Datei muss natürlich durch Euren Pfad ersetzt werden.
01.
... 02.
for /f "tokens=2 delims= " %%b in ('type "\\server\freigabe$\mac.txt" ^|findstr "%mac%"') do set pc=%%b 03.
...4b. Schritt: Auslesen des Computernamens an Hand der MAC - Adresse (DB - Variante)
Hier kommt nun die mysql.exe zum Einsatz. In der Variable "%pc%" steht nun der Computername, der in der MySQL – Tabelle für diese MAC – Adresse hinterlegt ist.
01.
... 02.
for /f %%b in ('mysql.exe -h HOST -u BENUTZER -pPASSWORT -D DATENBANK --execute="select * from TABELLE where mac=trim(leading ' ' from lcase('%mac%'));" -s') DO SET pc=%%b 03.
...Erweiterung Dez. 2007 - Handling mehrerer MAC-Adressen in der IPConfig-Ausgabe.
Falls mehrere MAC-Adressen je Rechner vorkommen können, statt Schritt 3 und 4b diese Mimik:
siehe Kommentar/Querverweis von Biber weiter unten.
01.
... 02.
set "Mac=" 03.
04.
:: Es werden alle MAC-Adressen des PC's ermittelt 05.
for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find "Physi"') do call :setmac %%i 06.
07.
08.
:: SQL-Query wird erstellt 09.
Set "Stmt=select inventarnummer,mac_adresse from inventar where ucase(mac_adresse) in (%mac%)" 10.
11.
for /f %%b in ('mysql.exe -h localhost -u root -D LIZENZ --execute="%stmt%" -s') DO SET pc=%%b 12.
... 13.
.... 14.
goto :eof 15.
16.
:setmac 17.
:: Es wird alle MAC-Adressen aneinandergereiht 'MAC1', 'MAC2', 'MAC3' usw. 18.
:: und es wird dann wieder zum Caller-Aufruf zurückgesprungen 19.
If "%mac%"=="" (set "Mac='%1'") else set "Mac=%mac%, '%1'" 20.
goto :eof5. Schritt: Computernamen ändern
Jetzt kann der Computername geändert werden. In den folgenden Zeilen braucht nichts verändert zu werden, da dort die Variable "%pc%" eingebaut ist!
01.
... 02.
REG add "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f 03.
REG add "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f 04.
REG add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f 05.
REG add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f 06.
...6. Schritt: Neustart einleiten
01.
... 02.
echo ok >> „C:\computer.txt“ 03.
SHUTDOWN -r -f -t 10 04.
GOTO ende 05.
...7. Schritt: Überprüfung, ob Domainabschnitt schon einmal ausgeführt wurde.
01.
... 02.
:domain 03.
IF EXIST "C:\domain.txt" GOTO ende 04.
...8. Schritt: Computer in die Domäne aufnehmen
Nachdem alle Netzlaufwerke getrennt sind, wird per netdom.exe der Computer in die Domäne aufgenommen. Die entsprechenden Stellen müssen natürlich wieder durch Eure Werte ersetzt werden.
01.
... 02.
net use * /d /y 03.
04.
NETDOM join %computername% /Domain:DOMÄNE /UserD:BENUTZER /PasswordD:PASSWORT /OU:"OU=Computer,OU=TEST,DC=dt,DC=local" 05.
...9. Schritt: Ende
Nun noch die letzte Abfrage:
01.
... 02.
echo ok >>"C:\domain.txt" 03.
shutdown -r -f -t 10 04.
:ende 05.
...Hierzu lässt sich noch per PHP ein Webinterface programmieren. Leider darf ich meines nicht herausgeben.
Anmerkung:
Ich möchte mich bei „Biber“ und „bastla“ bedanken. Sie haben auch einen Teil beigetragen!
Gruß
Dani
kugelschreiber schreibt am 11.05.2007 um 17:51:43 Uhr
Hallo Ihr Lieben.
Aufgrund des schönen Artikels hier, habe ich mich dazu entschlossen auch mal was vernünftiges zu tun und dachte mir, hier das Webinterface "zu programmieren", da dieses ja hier noch fehlt. Ich habe es klein und einfach gehalten.
Ausbaufähig ist ja gewöhnlich alles!
Ihr benötigt dazu wie schon oben beschrieben einen PHP und MySQL fähigen Webserver.
Für lokale Zwecke empfehle ich das XAMPP Paket welches man unter http://www.apachefriends.org erhält. (Seite manchmal recht lahm). Es geht aber auchjeder andere Kombination die PHP,Mysql fähig ist.
Dann nur noch die Datei, die ich angehangen habe entpacken und den Ordner "macadressen" auf den Server ins Verzeichnis "htdocs" kopieren. Eine Datenbank anlegen. Meine heisst hier mac_adressen wo auch gleich die Tabelle "mac_adressen" drin zu finden ist mit den drei Feldern: "id", "mac" und "pc_name" wie oben schon im Beitrag erwähnt.
Eine Vorschau des Webinterfaces erhaltet Ihr unter:
http://www.ronnydrechsler.com/macadressen
(Dort könnt IHr auch schon ein bissel probieren.)
UND: Für Kritik bin ich gerne zu haben!
Mit freundlichem Gruß
Der Kugelschreiber
Download
Aufgrund des schönen Artikels hier, habe ich mich dazu entschlossen auch mal was vernünftiges zu tun und dachte mir, hier das Webinterface "zu programmieren", da dieses ja hier noch fehlt. Ich habe es klein und einfach gehalten.
Ausbaufähig ist ja gewöhnlich alles!
Ihr benötigt dazu wie schon oben beschrieben einen PHP und MySQL fähigen Webserver.
Für lokale Zwecke empfehle ich das XAMPP Paket welches man unter http://www.apachefriends.org erhält. (Seite manchmal recht lahm). Es geht aber auchjeder andere Kombination die PHP,Mysql fähig ist.
Dann nur noch die Datei, die ich angehangen habe entpacken und den Ordner "macadressen" auf den Server ins Verzeichnis "htdocs" kopieren. Eine Datenbank anlegen. Meine heisst hier mac_adressen wo auch gleich die Tabelle "mac_adressen" drin zu finden ist mit den drei Feldern: "id", "mac" und "pc_name" wie oben schon im Beitrag erwähnt.
Eine Vorschau des Webinterfaces erhaltet Ihr unter:
http://www.ronnydrechsler.com/macadressen
(Dort könnt IHr auch schon ein bissel probieren.)
UND: Für Kritik bin ich gerne zu haben!
Mit freundlichem Gruß
Der Kugelschreiber
Download
Biber schreibt am 02.12.2007 um 22:25:35 Uhr
...und noch eine Erweiterung ist hier im Forum angesprochen und ergänzt worden:
Details siehe in diesem Beitrag: MAC auslesen und in mySQL abfragen
Grüße
Biber
- Der Umgang mit mehr als einer MAC-Adresse pro PC
Details siehe in diesem Beitrag: MAC auslesen und in mySQL abfragen
Grüße
Biber
TobyCAD schreibt am 10.03.2011 um 19:21:03 Uhr
Moin,
danke für die Vorarbeit - ihr habt mir hilfreiche Tipps gegeben.
Ich hab mal versucht, das Ganze (mit einer Textdatei mit den MAC-Adressen) vollautomatisiert unter Windows 7 64-bit Enterprise (32 Clients) und Windows Server 2008 R2 zum Laufen zu bringen. Das Ganze läuft nach dem Klonen (mit Acronis TrueImage) nach einem automatischen Neustart der Rechner ab, die IP-Adressen gibts über DHCP. Ziel der Aktion ist, nach jedem Klonen (Softwareverteilung) die Rechnernamen reproduzierbar zu vergeben. Außerdem wird noch ein Client-spezifisches Hintergrundbild kopiert und Windows aktiviert (wir haben einen KMS-Server in der Umgebung). Nach dem Vorgang zerstören die Rechner die Dateien mit den Passwörtern und fahren sich herunter.
Wie schon erwähnt, habe ich für die 32 Clients auf eine Textdatei mit den MAC-Adressen und Rechnernamen gesetzt, aber für alle Findigen dürfte es ja kein Problem sein, die oben gezeigte Datenbank-Variante einzubauen.
Was ich dazu brauche:
Die Neustarts erfolgen immer mit großer Verzögerung, damit man zur Fehlersuche auch mal noch schnell nachschauen kann, was denn jetzt nicht funktioniert hat
Und hier die Dateien:
danke für die Vorarbeit - ihr habt mir hilfreiche Tipps gegeben.
Ich hab mal versucht, das Ganze (mit einer Textdatei mit den MAC-Adressen) vollautomatisiert unter Windows 7 64-bit Enterprise (32 Clients) und Windows Server 2008 R2 zum Laufen zu bringen. Das Ganze läuft nach dem Klonen (mit Acronis TrueImage) nach einem automatischen Neustart der Rechner ab, die IP-Adressen gibts über DHCP. Ziel der Aktion ist, nach jedem Klonen (Softwareverteilung) die Rechnernamen reproduzierbar zu vergeben. Außerdem wird noch ein Client-spezifisches Hintergrundbild kopiert und Windows aktiviert (wir haben einen KMS-Server in der Umgebung). Nach dem Vorgang zerstören die Rechner die Dateien mit den Passwörtern und fahren sich herunter.
Wie schon erwähnt, habe ich für die 32 Clients auf eine Textdatei mit den MAC-Adressen und Rechnernamen gesetzt, aber für alle Findigen dürfte es ja kein Problem sein, die oben gezeigte Datenbank-Variante einzubauen.
Was ich dazu brauche:
- NETDOM (ist unter Win 7 etwas umständlicher, gut und knapp beschrieben unter http://techblog.wanierke.de/2009/11/04/ho ... Der zweite dort gezeigte Schritt wird in der Batch-Datei ausgeführt s.u.
- CPAU http://www.joeware.net/freetools/tools/cp ...
- Optional: Um das Hintergrundbild dann automatisch zu aktivieren z.B. das Programm WALLPAPER http://mystuff.clarke.co.nz/MyStuff/wallp ...
Ablauf
- Zur Vorbereitung des Klonens/Image-Erstellen melde ich den Rechner von der Domäne ab und gebe ihm den Namen "NEU".
- Auf dem Rechner gibt es einen lokalen Admin ("ADMINLOKAL", Passwort "PASSWORTADMINLOKAL").
- In der Domäne "DOMÄNE" ist ein Domänencontroller "SERVER" mit der IP 111.111.111.111. Dort gibt es einen Administrator "DOMÄNENADMINUSER" mit dem Kennwort "DOMÄNENADMINPASSWORT" (Dieser muss Domänen-Administrator sein, um die Anmeldung durchführen zu können)
- In die Datei XYZ.TXT die MAC-Adressen und die Rechnernamen eintragen.
- Auf dem Client KOPIEREN.BAT ausführen:
- Dabei wird auf den Rechner START.BAT, CPAU.EXE, XYZ.TXT, DEL.BAT kopiert in meinem Beispiel auf E:\DOM\ Es empfiehlt sich, kein Verzeichnis auf C: (oder wo sonst Windows installiert ist) zu nehmen, da es ggf. mit den Rechten Probleme gibt.
- Außerdem müssen ein paar Registry-Einträge gesetzt werden, der eine geht leider nur per REG-Datei (wegen der Anführungszeichen), das Ganze in einer Batch-Datei sieht so aus:
- Jetzt nur noch den Rechner herunterfahren und das Image zum Klonen anfertigen. Nach der Verteilung des Images sollten die SIDs der Rechner geändert werden (macht bei mir Acronis True Image) und alle Rechner neu starten.
- Die Rechner starten ein paar Mal neu mit START.BAT, nach ca. 10-15 Minuten ist alles vorbei
Dabei wird in einem - Schritt als lokaler Admin angemeldet, der Rechnername an Hand der MAC-Adresse herausgefunden und geändert
- Schritt als lokaler Admin angemeldet, der Rechner an der Domäne angemeldet
- Schritt als Admin in der Domäne angemeldet, das Hintergrundbild kopiert und Windows aktiviert, schließlich die "Selbstzerstörungsroutine" gesetzt
- Schritt das Verzeichnis mit den ganzen Daten (u.a. Admin-Passwörter usw.!!!) gelöscht und der Rechner heruntergefahren
Die Neustarts erfolgen immer mit großer Verzögerung, damit man zur Fehlersuche auch mal noch schnell nachschauen kann, was denn jetzt nicht funktioniert hat
Und hier die Dateien:
XYZ.TXT
Die Datei mit den Mac-Adressen und Rechnernamen, getrennt mit einem Leerzeichen.01.
00-26-55-43-AE-02 RECHNERNAME1 02.
00-26-55-43-AE-03 RECHNERNAME2 03.
00-26-55-43-AE-04 RECHNERNAME3KOPIEREN.BAT
Diese Datei muss auf dem Client vor dem letzten Herunterfahren als Administrator ausgeführt werden (Kontextmenü -> Als Administrator ausführen...)01.
md e:\dom 02.
03.
copy \\server\images\dom\start.bat e:\dom /Y 04.
copy \\server\images\dom\cpau.exe e:\dom /Y 05.
copy \\server\images\dom\xyz.txt e:\dom /Y 06.
copy \\server\images\dom\del.bat e:\ /Y 07.
08.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "1" /f 09.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "ADMINLOKAL" /f 10.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "NEU" /f 11.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserPassword /t REG_SZ /d "PASSWORTADMINLOKAL" /f 12.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "PASSWORTADMINLOKAL" /f 13.
14.
REG import \\server\images\dom\run.regRUN.REG
01.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] 02.
"START"="e:\\dom\\cpau.exe -u ADMINLOKAL -p PASSWORTADMINLOKAL -ex \"e:\\dom\\start.bat >> e:\\dom\\ausgabe.txt\""START.BAT
Diese Datei wird mehrfach ausgeführt. Um Fehler zu finden und den Ablauf zu steuern, wird ein kleines Protokoll in der Datei MAC.TXT geführt. In der Datei AUSGABE.TXT findet sich dann das komplette Batch-Protokoll.01.
set log=e:\dom\mac.txt 02.
03.
04.
REM Fallauswahl 05.
if exist "%log%" (for /f "tokens=1 delims=," %%s in ('type "%log%" ^|findstr "domainbeitritt"') do goto ende) 06.
if exist "%log%" (for /f "tokens=1 delims=," %%s in ('type "%log%" ^|findstr "namegeaendert"') do goto domain) 07.
08.
::Nameermitteln 09.
if exist "%log%" del %log% 10.
11.
echo Ping durchführen (Wartezeit 2') 12.
::Wartezeit von 2 Minuten 13.
ping 127.0.0.1 -n 120 >nul 14.
REM im FOlgenden den Server anpingen zwecks Netzwerkverbindung 15.
ping 111.111.111.111 16.
ping SERVER 17.
18.
:: Es werden alle MAC-Adressen des PC's ermittelt 19.
for /f "tokens=2 delims=: " %%a in ('ipconfig /all ^| find "Physi"') do echo %%a>> %log% 20.
echo *******MAC ermitteln******** 21.
echo alle MAC-Adressen %mac% 22.
for /f "tokens=2 delims=: " %%a in ('ipconfig /all ^| find "Physi"') do echo %%a 23.
24.
25.
echo *******Rechnername ermitteln******** 26.
for /f "tokens=1 delims=," %%s in ('type "%log%"') do (for /f "tokens=2 delims= " %%b in ('type "e:\dom\xyz.txt" ^|findstr "%%s"') do if not "%%b"=="" set pc=%%b) 27.
if "%pc%"=="" goto macfehler 28.
echo Rechnername ist %pc% 29.
echo Rechnername ist %pc% >> "%log%" 30.
31.
32.
echo *******Rechnername ändern******** 33.
REG add "HKLM\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f 34.
REG add "HKLM\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f 35.
REG add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f 36.
REG add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f 37.
echo namegeaendert %date% %time%>> "%log%" 38.
39.
40.
::neu starten 41.
SHUTDOWN -r -f -t 30 42.
GOTO :EOF 43.
44.
45.
46.
:domain 47.
REM Abschnitt für Beitritt zur Domäne 48.
::Wartezeit von 2 Minuten 49.
ping 127.0.0.1 -n 120 >nul 50.
REM im FOlgenden den Server anpingen zwecks Netzwerkverbindung 51.
ping 111.111.111.111 52.
ping SERVER 53.
54.
echo Der Domäne beitreten... 55.
net use * /d /y 56.
start /w pkgmgr /iu:RemoteServerAdministrationTools-Roles-AD-DS-SnapIns;RemoteServerAdministrationTools-Roles-AD-DS;RemoteServerAdministrationTools-Roles-AD;RemoteServerAdministrationTools-Roles;RemoteServerAdministrationTools 57.
NETDOM join %computername% /Domain:DOMÄNE /UserD:DOMÄNENADMINUSER /PasswordD:DOMÄNENADMINPASSWORT 58.
59.
echo domainbeitritt %date% %time%>> "%log%" 60.
61.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "1" /f 62.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v ForceAutoLogon /t REG_SZ /d "1" /f 63.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "DOMÄNENADMINUSER" /f 64.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "DOMÄNE" /f 65.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "DOMÄNENADMINPASSWORT" /f 66.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserPassword /t REG_SZ /d "DOMÄNENADMINPASSWORT" /f 67.
68.
::Autostart löschen 69.
REG delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v START /f 70.
REG add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v loeschen /t REG_SZ /d "e:\del.bat" /f 71.
72.
73.
74.
:: ******** Hintergrundbild 75.
copy e:\dom\desktopbilder\%computername%.bmp c:\windows\desktop.bmp 76.
77.
:: ********* Windows aktivieren 78.
cscript %windir%\system32\slmgr.vbs /ipk WINDOWS-KEY 79.
ping 127.0.0.1 -n 5 >nul 80.
cscript %windir%\system32\slmgr.vbs /skms KMSSERVER:1688 81.
ping 127.0.0.1 -n 5 >nul 82.
cscript %windir%\system32\slmgr.vbs /ato 83.
84.
85.
86.
SHUTDOWN -r -f -t 30 87.
GOTO :ende 88.
89.
90.
91.
:macfehler 92.
echo MAC wurde in Liste nicht gefunden 93.
echo MAC wurde in Liste nicht gefunden>>%log% 94.
goto ende 95.
96.
97.
:ende 98.
echo Alles erledigt!DEL.BAT
Die Datei zum Löschen der ganzen anderen Dateien (mit den Admin-Passwörtern!!!!).01.
rd e:\dom /S /Q 02.
03.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v AutoAdminLogon /t REG_SZ /d "0" /f 04.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v ForceAutoLogon /t REG_SZ /d "0" /f 05.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName /t REG_SZ /d "" /f 06.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultDomainName /t REG_SZ /d "DOMÄNE" /f 07.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserPassword /t REG_SZ /d "" /f 08.
REG add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultPassword /t REG_SZ /d "" /f 09.
10.
:ende 11.
::Autostart löschen 12.
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v loeschen /f 13.
14.
SHUTDOWN -s -f -t 30
Ravelux schreibt am 25.03.2011 um 14:32:09 Uhr
Habe folgendes getan:
Jedoch startet bei mir der PC dann nicht mehr bzw will die ganze Zeit Starthilfe ausführen.
Hat sich erledigt. Mein Computername war länger als 15 Zeichen..
@echo off
set /p PC="Computername eingeben:"
REG add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f
REG add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f
REG add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f
REG add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f
echo "Computer bitte neu starten"
set /p PC="Computername eingeben:"
REG add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f
REG add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f
REG add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t REG_SZ /d %pc% /f
REG add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pc% /f
echo "Computer bitte neu starten"
Jedoch startet bei mir der PC dann nicht mehr bzw will die ganze Zeit Starthilfe ausführen.
Hat sich erledigt. Mein Computername war länger als 15 Zeichen..














