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

Netzwerkänderung und Eintritt in eine Domäne per Batchscript

Frage Microsoft Windows Netzwerk

Mitglied: DragonKM

DragonKM (Level 1) - Jetzt verbinden

28.03.2012 um 13:46 Uhr, 2163 Aufrufe, 8 Kommentare

Hallöchen,

ich versuche mich gerade im Batchscriptung (hab das vor Jahren mal gemacht) und sitze an meinem kleinen VM Netzwerk vor folgendem Problem:

Ich möchte einen Client per Batchdatei in das VM Netz (Server 2003 mit DHCP, DNS usw. steht bereits) aufnehmen. Da der Server in einem eigenen Netz ist, müssen natürlich die Netzwerkeinstellungen geändert werden und dabei hängt es.

Ich habe folgende Batchdatei geschrieben:

01.
@ECHO OFF 
02.
ECHO *********************************************** 
03.
ECHO * Script um Rechner in die Domäne aufzunehmen * 
04.
ECHO *********************************************** 
05.
ECHO. 
06.
ECHO. 
07.
ECHO Ändere Netzwerkeinstellungen des Rechners 
08.
ECHO. 
09.
ECHO Neue IP-Adresse:    192.168.0.254 
10.
ECHO Neue Subnet-Maske:  255.255.255.0 
11.
ECHO Neues Gateway:      192.168.0.1 
12.
ECHO. 
13.
ECHO. 
14.
netsh interface ip set address name="LAN-Verbindung" source=static addr=192.168.0.254 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1 
15.
ECHO. 
16.
ECHO. 
17.
ECHO Prüfe ob Netzwerkdaten korrekt geändert wurden: 
18.
@for /F "tokens=10,*" %%i in ('ipconfig /all^|find "IP-Adresse"') do @set IP=%%i 
19.
if %IP% == 192.168.0.254 goto SET IPA = OK ELSE SET IPA = NOK 
20.
@for /F "tokens=10,*" %%i in ('ipconfig /all^|find "Subnetmaske"') do @set Subnet=%%i 
21.
if %Subnet% == 255.255.255.0 SET SUBNET = OK ELSE Set Subnet = NOK 
22.
@for /F "tokens=10,*" %%i in ('ipconfig /all^|find "Standardgateway"') do @set Gateway=%%i 
23.
if %Gateway% == 192.168.0.1 set Gateway = OK ELSE Set Gateway = NOK 
24.
 
25.
 
26.
IF %IP% == NOK ECHO "IP Adresse wurde nicht geändert" 
27.
IF %SUBNET% == NOK ECHO "Subnetmaske wurde nicht geändert" 
28.
IF %GATEWAY% == NOK ECHO "Standardgateway wurde nicht geändert" 
29.
IF %IP% == OK ECHO "IP Adresse wurde geändert" 
30.
IF %SUBNET% == OK ECHO "Subnetmaske wurde geändert" 
31.
IF %GATEWAY% == OK ECHO "Standardgateway wurde geändert" 
32.
PAUSE
Die Netzwerkdaten werden geändert, doch bei der Überprüfung bekomme ich die Meldung das "Set syntaktisch falsch wäre" Ich vermute, dass ich in der IF Abrage in Zeile 19 einen Fehler habe. Ich hoffe mir kann jemand weiterhelfen
Mitglied: bastla
28.03.2012 um 13:57 Uhr
Hallo DragonKM!

So sollte es besser gehen:
if %IP%==192.168.0.254 (SET IPA=OK) ELSE (SET IPA=NOK)
Generell: Leerzeichen in Batch nur dort verwenden, wo sie wirklich erforderlich sind ...

Grüße
bastla
Bitte warten ..
Mitglied: DragonKM
28.03.2012 um 14:20 Uhr
Vielen Dank für die schnelle Antwort,

nun bekomme ich folgende Meldung:

01.
"(SET" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Bitte warten ..
Mitglied: bastla
28.03.2012 um 14:27 Uhr
Hallo DragonKM!

Der Fehler solltet aber doch nur auftauchen, wenn %IP% leer ist (den ganzen Batch hatte ich mir nicht angesehen) ...

Vermeiden lässt sich der Fehler entweder mit
if "%IP%"=="192.168.0.254" (SET IPA=OK) ELSE (SET IPA=NOK)
oder mit
if defined IP if %IP%==192.168.0.254 (SET IPA=OK) ELSE (SET IPA=NOK)
- ansetzen musst Du aber sicher schon bei der Ermittlung der IP, zB (unter XP) per
for /F "tokens=14" %%i in ('ipconfig /all^|find "IP-Adresse"') do "set IP=%%i"
Grüße
bastla
Bitte warten ..
Mitglied: DragonKM
28.03.2012 um 14:33 Uhr
Hab den Fehler gefunden, es liegt an dem Gleichzeichen in der Abfrage,

habe die Abfrage nun so geschrieben

01.
if %IP% EQU "192.168.0.254" THEN do @SET IPA=OK ELSE do @SET IPA=NOK
und sie geht ;) Dabei ist mir aufgefallen, dass hier noch ein Fehler drin ist

01.
@for /F "tokens=10,*" %%i in ('ipconfig /all^|find "IP-Adresse"') do @set IP=%%i
Bitte warten ..
Mitglied: bastla
28.03.2012 um 14:41 Uhr
Hallo DragonKM!
und sie geht ;)
Dass keine Fehlermeldung ausgegeben wird, bedeutet aber nicht, dass die Zeile funktioniert (was leicht daran zu erkennen ist, dass %IPA% so keinen (neuen) Wert zugewiesen bekommt) ...

Grüße
bastla
Bitte warten ..
Mitglied: DragonKM
28.03.2012 um 14:44 Uhr
habs gemerkt :D

aber nun hab ich es auch ;) Ist eine Mischung aus deiner und meiner Lösung und das geringe Verständins meinerseits mit der geheimnisvollen Token Zahl :D

01.
@for /F "tokens=14" %%i in ('ipconfig /all^|find "IP-Adresse"') do @set IP=%%i 
02.
if %IP% EQU 193.168.0.254 (SET IPA=OK) ELSE (SET IPA=NOK)
Ich lass das hier mal auf "nicht gelöst" falls ich noch mehr Fragen zu der restlichen Batch habe :D

Vielen Dank erstmal
Bitte warten ..
Mitglied: bastla
29.03.2012 um 12:30 Uhr
Hallo DragonKM!

Die "geheimnisvolle Token Zahl" bekommst Du durch einfaches Abzählen - wenn das Trennzeichen (= Delimiter) nicht angegeben wird, trennt "for /f" bei jedem Leerzeichen / jedem TAB (wobei unmittelbar aufeinander folgenden Trennzeichen nur als eines gezählt werden) - daher ist aus der Zeile
        IP-Adresse. . . . . . . . . . . . : 193.168.0.254
"IP-Adresse" das Token #1, und das Token #13 der Doppelpunkt ...

Grüße
bastla
Bitte warten ..
Mitglied: DragonKM
29.03.2012 um 20:40 Uhr
ah danke ich hab nun das Script angepasst und es funktioniert auch

01.
@ECHO OFF 
02.
ECHO *********************************************** 
03.
ECHO * Script um Rechner in die Domäne aufzunehmen * 
04.
ECHO *********************************************** 
05.
ECHO. 
06.
ECHO. 
07.
ECHO Ändere Netzwerkeinstellungen des Rechners 
08.
ECHO. 
09.
ECHO Neue IP-Adresse:    192.168.0.254 
10.
ECHO Neue Subnet-Maske:  255.255.255.0 
11.
ECHO Neues Gateway:      192.168.0.1 
12.
ECHO. 
13.
ECHO. 
14.
netsh interface ip set address name="LAN-Verbindung" source=static addr=192.168.0.254 mask=255.255.255.0 gateway=192.168.0.1 gwmetric=1 
15.
ECHO. 
16.
ECHO. 
17.
ECHO Prüfe ob Netzwerkdaten korrekt geändert wurden: 
18.
for /F "tokens=14" %%i in ('ipconfig /all^|find "IP-Adresse"') do @set IP=%%i 
19.
if %IP% EQU 192.168.0.254 (SET IPA=OK) ELSE (SET IPA=NOK) 
20.
for /F "tokens=13" %%i in ('ipconfig^|find "Subnetzmaske"') do @set SN=%%i 
21.
if %SN% EQU 255.255.255.0 (SET SNA=OK) ELSE (Set SNA=NOK) 
22.
for /F "tokens=12" %%i in ('ipconfig^|find "Standardgateway"') do @set GW=%%i 
23.
if %GW% EQU 192.168.0.1 (SET GWA=OK) ELSE (Set GWA=NOK) 
24.
 
25.
 
26.
IF %IPA%==NOK ECHO IP Adresse wurde nicht geändert 
27.
IF %IPA%==OK ECHO IP Adresse wurde geändert 
28.
IF %SNA%==NOK ECHO Subnetmaske wurde nicht geändert 
29.
IF %SNA%==OK ECHO Subnetmaske wurde geändert 
30.
IF %GWA%==NOK ECHO Standardgateway wurde nicht geändert 
31.
IF %GWA%==OK ECHO Standardgateway wurde geändert 
32.
 
33.
 
34.
net use * /d /y 
35.
netdom.exe JOIN %COMPUTERNAME% /domain:dkm /UserD:Administrator /PasswordD:PASSW0rD! 
36.
 
Jetzt müsste nur noch ne Überprüfung erfolgen, ob der Rechner in die Domäne aufgenommen wurde. Also ohne Neustart ;)
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Userverwaltung
gelöst Programmupdates ohne Adminrechte für die User einer Domäne (3)

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

Exchange Server
Exchange 2010 Akzeptierte Domäne löschen (4)

Frage von Rob1982 zum Thema Exchange Server ...

Windows Netzwerk
USB-Gerät ins Netzwerk (Domäne) einbinden (4)

Frage von griss0r zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...