Batch - Remote Shutdown
PC's im Netzwerk anzeigen und Herunterfahren
Hallo
Ich habe hier ein kleines netztwerk aus 8 Rechnern.
Ich würde gerne vollgende Befehle, Funktionen kennen:
1. PC's im Netzwerk Anzeigen.
z.B.:
NOWO-82930523
LUKAS-92352364
PETER-23527352
...
2. Gewählten PC herunterfahren.
Der gewählte PC muss dann halt irgendwie als Variable angezeigt werden.
Habt ihr dafür eine lösung :- ( ??
Ich weis es gibt programme, aber ich würde das liebendgerne mitner bat machen.
( gibt glaubich den befehl schutdown.. kann man den nicht mit admin rechten senden?)
Hallo
Ich habe hier ein kleines netztwerk aus 8 Rechnern.
Ich würde gerne vollgende Befehle, Funktionen kennen:
1. PC's im Netzwerk Anzeigen.
z.B.:
NOWO-82930523
LUKAS-92352364
PETER-23527352
...
2. Gewählten PC herunterfahren.
Der gewählte PC muss dann halt irgendwie als Variable angezeigt werden.
Habt ihr dafür eine lösung :- ( ??
Ich weis es gibt programme, aber ich würde das liebendgerne mitner bat machen.
( gibt glaubich den befehl schutdown.. kann man den nicht mit admin rechten senden?)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 54261
Url: https://administrator.de/forum/batch-remote-shutdown-54261.html
Ausgedruckt am: 23.12.2024 um 11:12 Uhr
23 Kommentare
Neuester Kommentar
Spontan, ungetestet und ohne Fehler abzufangen würde ich es so versuchen:
miniversum
@echo off
setlocal enabledelayedexpansion
set wahl=0
net view /all>%temp%\netusers.txt
FOR /F "skip=3 delims=" %%A in (%temp%\netusers.txt) do (
set /a wahl=!wahl!+1
echo !wahl!: %%A
)
set /p wahl=Bitte Computer wählen (1-%wahl%):
set "auswahl="
set /a wahl=%wahl%+2
FOR /F "skip=%wahl% delims=" %%A in (%temp%\netusers.txt) do if not defined %auswahl% set auswahl=%%A
shutdown /m %auswahl%
miniversum
Hallo Nowologix!
So könnte es gehen:
Wird bei der Eingabe der Computernummer nur die Eingabetaste gedrückt, werden der Bildschirm gelöscht und die Computerliste neu angezeigt.
Zum Testen bietet es sich an, den Shutdown mit dem Zusatz "-t 60" zu verzögern. Zum Abbrechen des Shutdown-Vorganges vom Prompt eingeben:
Grüße
bastla
[Edit] -m ergänzt [/Edit]
[Edit2] Computernamen unter Anführungszeichen gesetzt [/Edit2]
So könnte es gehen:
@echo off & setlocal
set "Comp=%Temp%\Computers.txt
echo : Ende>"%Comp%"
for /f "tokens=1-2 delims=:\ " %%i in ('net view^|more +3^|findstr /n "\\"') do @echo [%%i] : %%j>>"%Comp%"
:Liste
cls
type "%Comp%"
echo.
:Eingabe
set Eingabe=
set /p Eingabe=Welchen Computer herunterfahren?
if [%Eingabe%]== goto :Liste
if [%Eingabe%]== goto :eof
for /f "tokens=2 delims=: " %%r in ('findstr /c:"[%Eingabe%]" "%Comp%"') do shutdown -s -m "\\%%r"
goto :Eingabe
Zum Testen bietet es sich an, den Shutdown mit dem Zusatz "-t 60" zu verzögern. Zum Abbrechen des Shutdown-Vorganges vom Prompt eingeben:
shutdown -a -m "\\Computername"
Grüße
bastla
[Edit] -m ergänzt [/Edit]
[Edit2] Computernamen unter Anführungszeichen gesetzt [/Edit2]
Hallo Nowologix!
Falls Du immer die gleiche Nummer für Deine PC verwenden willst, kannst Du ja die Liste (siehe Datei "%temp%\Computers.txt") auch fix erstellen (und an anderer Stelle speichern; im Batch dazu die Zeile 2 anpassen und die Zeilen 3 und 4 entfernen) - Nachteil: Es werden dann auch Rechner angezeigt, die bereits ausgeschaltet sind.
Noch genauer steuern kannst Du übrigens den Shutdown mit PsShutdown.
Grüße
bastla
1.Listet er Alle PC's auf die im Netzwerk sind ?
... sofern sie aktuell erreichbar sind ...Und fügt auch automatisch die Nummer hinzu ?
Ja; wird immer für die aktuell erreichbaren Rechner von 1 beginnend hochgezählt.Falls Du immer die gleiche Nummer für Deine PC verwenden willst, kannst Du ja die Liste (siehe Datei "%temp%\Computers.txt") auch fix erstellen (und an anderer Stelle speichern; im Batch dazu die Zeile 2 anpassen und die Zeilen 3 und 4 entfernen) - Nachteil: Es werden dann auch Rechner angezeigt, die bereits ausgeschaltet sind.
2.Wenn ich mich selbst damit Herunterfahre erscheint eine ShutDown Meldung
Defaultmäßig wird 30 s Delay verwendet und auf den Shutdown hingewiesen - der mit "-c" anzugebende Kommentar ist nur als Zusatzinformation für das Meldungsfenster gedacht.Noch genauer steuern kannst Du übrigens den Shutdown mit PsShutdown.
Grüße
bastla
Hallo Nowologix!
Vorweg: ohne Adminrechte wird's wohl nicht gehen ...
Es könnte sein, dass der "-" im Computernamen stört - ändere zur Sicherheit den Shutdown-Befehl auf
Ich hole das im Listing oben auch nach.
Grüße
bastla
Vorweg: ohne Adminrechte wird's wohl nicht gehen ...
Oder findet er den Pfad wirklich nicht ?
Das kannst Du feststellen, indem Du im Batch das "@echo off" weg lässt und Dir ansiehst, wie der shutdown-Befehl vom Batch aus geschrieben wird. Zur Kontrolle kannst Du außerdem den gleichen Befehl selbst eingeben.Es könnte sein, dass der "-" im Computernamen stört - ändere zur Sicherheit den Shutdown-Befehl auf
... shutdown -s -m "\\%%r"
Ich hole das im Listing oben auch nach.
Grüße
bastla
Hallo Nowologix!
(nach der oben angesprochenen Änderung hinsichtlich der Anführungszeichen).
Welches System verwendest Du eigentlich, und was liefert der Befehl "net view"? Unter 2000 / XP erhalte ich eine Ausgabe nach folgendem Muster:
Grüße
bastla
Sollte das nicht:
shutdown -s -m PETER-BB2151353\Peter
heißen ??
Das sollte heißenshutdown -s -m PETER-BB2151353\Peter
heißen ??
shutdown -s -m "\\PETER-BB2151353"
Welches System verwendest Du eigentlich, und was liefert der Befehl "net view"? Unter 2000 / XP erhalte ich eine Ausgabe nach folgendem Muster:
Servername Beschreibung
-------------------------------------------------------------------------------
\\SERVERNAME1
\\SERVERNAME2
\\WSNAME1
...
\\WSNAME24
Der Befehl wurde erfolgreich ausgeführt.
Grüße
bastla
Jetzt nochmal meine überarbeitete Version udn auch unter nem win xp pro getestet...
miniversum
@echo off
setlocal enabledelayedexpansion
set maxwahl=0
net view>%temp%\netusers.txt
FOR /F "skip=3 delims=" %%A in (%temp%\netusers.txt) do set /a maxwahl=!maxwahl!+1
set wahl=0
FOR /F "skip=3 delims=" %%A in (%temp%\netusers.txt) do (
set /a wahl=!wahl!+1
if !wahl! lss %maxwahl% echo !wahl!: %%A
)
set /a wahl=%wahl%-1
set /p wahl=Bitte Computer wählen (1-%wahl%):
set "auswahl="
set /a wahl=%wahl%+2
FOR /F "skip=%wahl% delims=" %%A in (%temp%\netusers.txt) do if not defined auswahl set auswahl=%%A
ECHO shutdown /s /m %auswahl%
miniversum
hallo Nowologix,
es liegt bei dir nicht am router, du musst in der windows-firewall die "datei- und druckerfreigabe" freigeben,
dann sollte der pc schon mal erreichbar sein.
aber wenn nicht der gleiche benutzer auf dem anderen rechnern läuft, kannst du diese auch nicht runterfahren.
möglich wäre es nur wenn du den telnet-server auf jedem rechner starten würdest!
mfg
D.I.G
es liegt bei dir nicht am router, du musst in der windows-firewall die "datei- und druckerfreigabe" freigeben,
dann sollte der pc schon mal erreichbar sein.
aber wenn nicht der gleiche benutzer auf dem anderen rechnern läuft, kannst du diese auch nicht runterfahren.
möglich wäre es nur wenn du den telnet-server auf jedem rechner starten würdest!
mfg
D.I.G