Zum Inhalt springen

Batchscript Hilfe gesucht: Computernamen automatisch remote ändern


dannyr21

Empfohlene Beiträge

Hallo Leute,

mir viel gerade echt kein besser Titel ein, sorry.

Ich hoffe Ihr könnt mir ein wenig weiterhelfen, ich stecke irgendwie gerade fest. Btw. ist nicht alles allein mein Code, ist von einigen Codeschnipseln.

Also was ich bisher habe:

Txt-Datei mit vorgegebenen Computernamen und neuen Computernamen.

Inhalt der Txt-Datei:

altercomputername,neuercomputername

altercomputername2,neuercomputername2

Ich hätte es gerne so, dass er erst einen Ping abgibt an den alten Computernamen, ob der PC auch gerade online ist und dann den Computernamen ändert und halt in die Logdatei schreibt. Dann soll er natürlich auch weiter die 2. Zeile aus der txt-Datei abarbeiten und natürlich auch den Computernamen ändern usw.

Wenn der Ping fehl schlägt soll er in die nächste Zeile der Txt-Datei gehen und da weiter machen.

Hier mal mein bisheriger Code:



:: Konfiguration

setlocal

set MachineFile=c:\testdatei.txt

set logfile=c:\Logdatei.txt


:datei

:: Datei auslesen

echo Datei %MachineFile% auslesen ....

for /f "tokens=1,2 delims=," %%a in ('type "%MachineFile%"') do (

set OldName=%%~a

set NewName=%%~b

set passworddc=passwort

set user=domaine\administrator

)

call :ping %OldName% %NewName%


:netdom

echo Computer %OldName% umbenennnen in %NewName% ...

NETDOM RENAMECOMPUTER %OldName% /newname:%NewName% /userd:%user% /passwordd:%passworddc% /usero:%user% /passwordo:%passworddc% /force

IF Errorlevel 1 (

call :Renamefailed %OldName% %NewName%

)

IF Errorlevel 0 (

:: Umbenennung erfolgreich, in Logdatei protokollieren

echo Computer %OldName% erfolgreich in %NewName% umbenannt.

echo %date% %time% umbenennen %OldName% in %NewName% erfolgreich >> %logfile%

exit

)


:ping

:: Warten auf Pingreaktion

echo ping Computer %OldName% ...

ping -n 3 %OldName%

If Errorlevel 1 call :pingfailed %OldName% %NewName%

call :netdom %OldName% %NewName%


:pingfailed


echo Ping fehlgeschlagen ....

echo.

echo %date% %time% Computer %NewName% NICHT erreichbar! >> %logfile%

echo Computer %NewName% NICHT erreichbar!

echo Siehe %logfile%

echo.

echo.

pause

exit


:Renamefailed

echo Umbenennen fehlgeschlagen ....

echo.

echo.

echo %date% %time% umbenennen %OldName% in %NewName% ist fehlgeschlagen! >> %logfile%

echo Computer Umbenennung %OldName% in %NewName% ist fehlgeschlagen!

echo siehe %logfile%

echo.

echo.

pause

exit

Gruß

Danny

Bearbeitet von dannyr21
Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

also 1. führt er das Script zwar aus aber nur für die 1. Zeile und dann nicht für die anderen Zeilen. Und, wenn er den Computer anpingt und er nicht erreichbar ist, soll er in die nächste Zeile von der Txt-Datei gehen und da weiter machen und nicht einfach aufhören > das macht er bisher nicht, er wiederholt und wiederholt die 1. Zeile.

Dachte vielleicht einige könnten mal kurz drüberschauen ob das logisch so funktionieren könnte und wenn nicht, wie ich da was dran ändern könnte, dass es meinen Wünschen entspräche.

Danke schon mal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe schon im ersten Abschnitt ": Datei" die Variable %OLDNAME% nicht mit "ECHO" ausgeben können... Und die Batch kurzerhand zusammengestrichen:


CLS

@ECHO OFF

TITLE=Rename Comuter



:: Konfiguration

SET USER=Administrator

SET PASSWORD=GEHEIM

SET LOGFILE=Logdatei.txt

SET MACHINEFILE=Testdatei.txt


ECHO.

ECHO Starte Rename Computer...

> %LOGFILE% ECHO %DATE% %TIME% Starte Rename Computer...


FOR /F "Tokens=1,2 Delims=," %%i IN (%MACHINEFILE%) DO (


	ECHO.

	ECHO Ping Computer %%i...

	PING -n 1 %%i | FIND "TTL">NUL

	IF ERRORLEVEL 1 (


		ECHO FEHLER! Computer %%i ist NICHT erreichbar! Siehe %LOGFILE%

		>> %LOGFILE% ECHO.

		>> %LOGFILE% ECHO %DATE% %TIME% Computer %%i ist NICHT erreichbar!


	) ELSE IF ERRORLEVEL 0 (


		ECHO Starte Computer umbenennnen von %%i in %%j...

		>> %LOGFILE% ECHO.

		>> %LOGFILE% ECHO %DATE% %TIME% Computer %%i ist erreichbar.

		>> %LOGFILE% ECHO %DATE% %TIME% Starte Computer umbenennnen von %%i in %%j...


		PING -n 1 127.0.0.1 | FIND "TTL">NUL

		>> %LOGFILE% ECHO NETDOM RENAMECOMPUTER %%i /NEWNAME:%%j /userd:%USER% /passwordd:%PASSWORD% /usero:%USER% /passwordo:%PASSWORD% /force

		IF Errorlevel 1 (


			ECHO.

			ECHO Computer Umbenennung von %%i in %%j ist fehlgeschlagen! Siehe %LOGFILE%

			>> %LOGFILE% ECHO %DATE% %TIME% Umbenennen von %%i in %%j ist fehlgeschlagen!


		) ELSE IF Errorlevel 0 (


			ECHO Computer %%i erfolgreich in %%j umbenannt.

			>> %LOGFILE% ECHO %DATE% %TIME% umbenennen von %%i in %%j erfolgreich.

		)

	)

)


ECHO.

ECHO Batch Ende.

>> %LOGFILE% ECHO.

>> %LOGFILE% ECHO %DATE% %TIME% Ende.


PAUSE

START Notepad %LOGFILE%

EXIT

Du musst noch den 2. PING-Befehl
PING -n 1 127.0.0.1 | FIND "TTL">NUL
und
>> %LOGFILE% ECHO
vor
NETDOM RENAMECOMPUTER %%i /NEWNAME:%%j /userd:%USER% /passwordd:%PASSWORD% /usero:%USER% /passwordo:%PASSWORD% /force

rauslöschen.

Gruss,

tester2k5

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Vielen Dank für dein Script(Änderungen). Hätte fast geklappt, musste noch was am Code ändern.

Meine Änderung war:

FOR /F "Tokens=1,2 Delims=," %%i IN ('type %MACHINEFILE%') DO (

ohne dieses 'type %MachineFile%' ging es nicht, mit aber schon :) .

Vielen Dank noch mal tester2k5

Bearbeitet von dannyr21
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...