Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Computername von Clients per Script ändern und in die Domäne bringen

Frage Microsoft Windows Server

Mitglied: Abrelatas

Abrelatas (Level 1) - Jetzt verbinden

14.04.2007, aktualisiert 16.04.2007, 7228 Aufrufe, 7 Kommentare

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!
Mitglied: Dani
14.04.2007 um 20:17 Uhr
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:
01.
@echo off & setlocal 
02.
 
03.
IF EXIST "C:\computer.txt" GOTO domain 
04.
...
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.
01.
.... 
02.
::Computername aus der Liste auslesen 
03.
FOR /f "tokens=2 delims=:" %%a IN ('IPCONFIG /all ^| FIND "Physi"') DO SET mac=%%a 
04.
 
05.
::Sucht den passenden COmputernamen aus der Tabelle heraus. 
06.
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 
07.
....
3.Schritt:
Jetzt muss bloß noch noch der Computername geändert werden. Dort wird bereits die Variable "%pc%" verwendet!! Dies passiert hier:
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.
...
4. Schritt:
Nun muss ein Neustart erfolgen.
01.
.... 
02.
SHUTDOWN -r -f -t 10 
03.
GOTO ende 
04.
....
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:
01.
.... 
02.
IF EXIST "C:\domain.txt" GOTO neustart 
03.
...
6. Schritt:
Alle Netzlaufwerke trenne und dann kann mit netdom.exe der Computer in die Domäne aufgenommen 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.
....
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:
01.
.... 
02.
ECHO OK >> "C:\domain.txt" 
03.
SHUTDOWN -r -f -t 10 
04.
:ende
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
Bitte warten ..
Mitglied: Biber
14.04.2007 um 20:28 Uhr
@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
Bitte warten ..
Mitglied: Abrelatas
14.04.2007 um 20:35 Uhr
Richtig Also ich bin schon ein wenig bewandert im Umgang mit MySQL und so... aber das da auf meine Anforderungen umzuschreiben... hui
Bitte warten ..
Mitglied: Dani
14.04.2007 um 20:42 Uhr
@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.
01.
CREATE DATABASE `test`;
Nun musst du die Tabelle anlegen:
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 ;
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
Bitte warten ..
Mitglied: Abrelatas
14.04.2007 um 20:59 Uhr
Ok, also die MySQL Tabelle hab ich damit ja... nun die Liste für die Computer !? ^^
Bitte warten ..
Mitglied: Dani
14.04.2007 um 21:22 Uhr
Jo...da wirst du wohl ein bisschen Handarbeit machen müssen. Einmal die MAC-Adressen auslesen. Der Rest wäre viel zu Zeitaufwendig.


Gruß
Dani
Bitte warten ..
Mitglied: Abrelatas
16.04.2007 um 08:51 Uhr
Also erstmal vielen Dank für deine Bemühungen und die schnelle Lösung.
Leider hab ich immer noch keine Ahnung, wie ich das nun anstellen soll.
Bzw. ich weiss ja nun das ich ne MySQL Tabelle brauche und da die MAC - Adressen reinschreiben muss und so, nur das mit dem Script, ist mir noch zu... naja undurchsichtig aufgrund deiner Beschreibung. Kannst du das anders hinbekommen?^^
Wäre sehr nett, danke!
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Domänencontroller als DC in neue Domäne bringen (13)

Frage von redhorse zum Thema Windows Server ...

Batch & Shell
gelöst Variablen in bash-script ändern (3)

Frage von cptkrabbe zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...