Neustart nach Startup-Script
Hallo,
ich versuche unseren IP-Adressen-Pool zu "defragmentieren".
Dazu habe ich ein Batch-Script aus einzelnen Teilen aus dem Internet zusammenkopiert und angepasst. Grundsätzlich läuft das Script (s.u.)
Das Script soll dann via GPO ausgerollt/aktiviert werden. Auch das funktioniert grundsätzlich.
Zum Abschluss des Scripts würde ich gerne das Script n Sekunden warten und dann den Rechner neu starten lassen. Leider funktioniert aber nicht, was ich ausprobiert habe, nämlich:
gesamter Code:
Warum wird die Pause nicht gemacht und der Rechner nicht neu gestartet?
Neugierige Grüße,
Andreas
ich versuche unseren IP-Adressen-Pool zu "defragmentieren".
Dazu habe ich ein Batch-Script aus einzelnen Teilen aus dem Internet zusammenkopiert und angepasst. Grundsätzlich läuft das Script (s.u.)
Das Script soll dann via GPO ausgerollt/aktiviert werden. Auch das funktioniert grundsätzlich.
Zum Abschluss des Scripts würde ich gerne das Script n Sekunden warten und dann den Rechner neu starten lassen. Leider funktioniert aber nicht, was ich ausprobiert habe, nämlich:
choice /N /C 1 /T 5 /D 1 /M "Bitte warten..." >NUL
shutdown /r /t 0
gesamter Code:
@echo off
for /F "skip=3 tokens=1,2,3* delims= " %%G in ('netsh interface show interface') DO (
IF "%%H"=="Disconnected" netsh interface set interface "%%J" disabled
IF "%%H"=="Getrennt" netsh interface set interface "%%J" disabled
)
for /F "skip=3 tokens=1,2,3* delims= " %%G in ('netsh interface show interface') DO (
IF "%%H"=="Disconnected" echo interface "%%J" disconected
IF "%%H"=="Getrennt" echo interface "%%J" getrennt
IF "%%H"=="Connected" echo interface "%%J" conected
IF "%%H"=="Verbunden" echo interface "%%J" verbunden
)
set boot=false
for /f "delims= tokens=2" %%a in ('ping -4 -n 1 %ComputerName% ^| findstr [') do set NetworkIP=%%a
echo Network IP: %NetworkIP%
set result=false
IF "%NetworkIP:~0,10%"=="192.168.xx." set result=true
Set CName=PCName
set NewIP=192.168.xx.xx
if "%result%"=="true" if "%computername%" equ "%CName%" if "%NewIP%" neq "%NetworkIP%" (
echo .
echo Anpassung wird vorgenommen
echo .
netsh interface ipv4 set address name="LAN-Verbindung" static %NewIP% 255.255.255.0 192.168.xx.xx
netsh interface ipv4 delete dnsservers name="LAN-Verbindung" all
rem netsh interface ipv4 set dns name="YOUR INTERFACE NAME" static DNS_SERVER
netsh interface ipv4 set dnsservers name="LAN-Verbindung" static 192.168.xx.xx primary
rem netsh interface ipv4 add dns name="YOUR INTERFACE NAME" addr=DNS_SERVER index=X
netsh interface ipv4 add dns name="LAN-Verbindung" addr=192.168.xx.xx
netsh interface ipv4 add dns name="LAN-Verbindung" addr=1.1.1.1
netsh interface ipv4 add dns name="LAN-Verbindung" addr=1.0.0.1
set boot=true
) else (
echo .
echo keine Anpassung notwendig
echo .
)
EDIT war falsch kopiert: if "%boot%"=="boot" (
if "%boot%"=="true" (
echo .
echo Reboot
echo .
choice /N /C 1 /T 5 /D 1 /M "Bitte warten..." >NUL
shutdown /r /t 0
) else (
echo .
echo kein Reboot
echo .
)
Warum wird die Pause nicht gemacht und der Rechner nicht neu gestartet?
Neugierige Grüße,
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 419314
Url: https://administrator.de/contentid/419314
Ausgedruckt am: 22.11.2024 um 06:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo ahstax,
wird denn
Die Zeile 49 (
Letztendlich ist sie nur eine komplizierte Variante von
und auch das ist unnötig, wenn Du den Timeout hinsetzt wo er hingehört, also in Zeile 50:
und wenn Du keine Meldung zuvor ausgibst, die auf den Shutdown hinweist, dann brauchst Du den Timeout überhaupt nicht, womit wir wieder beim
wären, aber ohne vorhergehendes
Gruß Frank
wird denn
echo Reboot
oder echo kein Reboot
ausgeführt, also eine der beiden Meldungen ausgegeben oder passiert weder noch?Die Zeile 49 (
choice ...
) kannst Du getrost weglassen, da Du dem Betrachter eigentlich keine Wahl lässt.Letztendlich ist sie nur eine komplizierte Variante von
timeout /t 5 > nul
und auch das ist unnötig, wenn Du den Timeout hinsetzt wo er hingehört, also in Zeile 50:
shutdown /r /t 5
und wenn Du keine Meldung zuvor ausgibst, die auf den Shutdown hinweist, dann brauchst Du den Timeout überhaupt nicht, womit wir wieder beim
shutdown /r /t 0
wären, aber ohne vorhergehendes
choice
oder timeout
.Gruß Frank
Hallo ahstax
das würde ich eigentlich auch erwarten, weiß es aber auch nicht.
Du könntest testweise einen Einzeiler als Startup-Skript laufen lassen, bei dem dessen Ausgaben und Fehlermeldungen in eine log.txt umgeleitet werden.
Dann könntest Du darin nachlesen, ob das System dazu etwas zu melden hat.
Gruß Frank
das würde ich eigentlich auch erwarten, weiß es aber auch nicht.
Du könntest testweise einen Einzeiler als Startup-Skript laufen lassen, bei dem dessen Ausgaben und Fehlermeldungen in eine log.txt umgeleitet werden.
shutdown /r /t 0 1>log.txt 2>&1
Gruß Frank