Top-Themen

Aktuelle Themen (A bis Z)

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
GELÖST

Server abschalten, wenn alle Clients offline sind?

Frage Microsoft Windows Server

Mitglied: Kamper

Kamper (Level 1) - Jetzt verbinden

04.01.2012 um 18:44 Uhr, 5005 Aufrufe, 8 Kommentare

Hilfe bei der Erstellung eines shutdown Skriptes unter Windows Server 2008 R2

Hallo zusammen,

ich habe bei mir Zuhause einen kleinen Server eingerichtet, welchen ich als File-, Print-, Backupserver nutze. Da ich Student bin, habe ich die Möglichkeit genutzt über das Hochschulprogramm mir Windows Server 2008 r2 zu beschaffen. Ich betreibe den Server also zum Testen, Lernen und verzweifeln ;)
In Zukunft wird unser Hausnetzwerk weiter ausgebaut. Derzeit versorgt der Server etwa 10 Geräte mit Daten.

Da ich aber den Server nicht den ganzen Tag laufen lassen möchte, habe ich mich an die Programmierung eines kleines Batchskripts gemacht.

Ich habe mir als erstes überlegt, wie ich überprüfen kann, ob alle Clients offline sind. Hier zu nutze ich erst mal einen simplen Pingtest:

01.
ping 192.168.2.10 || ping 192.168.2.20 [...] || ping 192.168.2.90 || shutdown -s -f -t 00
Dieser klappt an sich auch. Jedoch gibt es 2 Laptops, welchen ich keine feste IP vergeben kann.

Hier zu meinem Problem:
Danach dachte ich, net view gibt eine Liste aller im Netzwerk verfügbaren Computer aus. Wie kann ich diese ausgegebenen Infos in einem Skript verwenden UND eine Ping-Anfrage an eine feste IP Adresse schicken.


Also nochmal in Kurzform:

Server soll Netzwerk nach PCs und Netzwerkgeräten scannen. Falls keines erreichbar ist, soll der Server nach der Zeit X abschalten. Das Skript soll alle Y Minuten durchlaufen (Dieses könnte man ja einfach über die Taskaufgaben regeln).

Gestartet wir dieser wieder normal über WOL.


Ich würde mich über Hilfe sehr freuen. Google und die Forensuche habe ich bereits gequält, jedoch komme ich nicht hinter die Abfrage des net view Ergebnisses.
Bitte Steinigt mich nicht, wenn ich die Frage im falschen Unterforum gestellt habe. Dies ist mein erster Post. Ich nutze diese Site aber immer wieder gerne um Probleme zu lösen.

Vielen Dank im Voraus.
Mitglied: LordXearo
04.01.2012 um 19:36 Uhr
Hallo,

und was ist mit dem Vorschlag einen DNS Server einzurichten und den Computernamen anzupingen?

Gruß

Xearo
Bitte warten ..
Mitglied: 39916
04.01.2012 um 22:36 Uhr
Hallo Kamper,

nmap für Windows ist hier das richtige für Dich.

Viele Grüße,
Martin
Bitte warten ..
Mitglied: bastla
05.01.2012 um 14:32 Uhr
Hallo Kamper und willkommen im Forum!

Um aus einer "net view"-Ausgabe alle gefundenen Geräte(namen) zu erhalten, könnntest Du eine Schleife der Art
for /f "delims=\" %%i in ('net view^|findstr "\\"') do
verwenden.

Um eine beliebige Anzahl von Namen bzw Adresssen per "ping" zu überprüfen, würde ich einen Schalter und je eine Schleife etwa so verwenden:
01.
@echo off & setlocal 
02.
set "Server=Servername" 
03.
set "AlleAus=true" 
04.
for %%i in (192.168.2.10 192.168.2.20 192.168.2.90) do ping -n 1 %%i>nul && set "AlleAus=" 
05.
for /f "delims=\" %%i in ('net view^|findstr "\\"^|findstr /i /v "%Server%"') do ping -n 1 %%i>nul && set "AlleAus=" 
06.
if defined AlleAus shutdown -s -f -t 00
In Zeile 2 ist "Servername" durch den Namen Deines Servers zu ersetzen - benötigt wird der Name, da der Server im "net view"-Ergebnis aufscheint.

Es schadet übrigens nicht, wenn ein Rechner mit statischer Adresse auch "namentlich" noch mal geprüft wird - mit "ping -n 1" wird nur 1 Datenpaket anstatt der defaultmäßigen 4 verschickt, wodurch die oben skizzierte (ungetestete) Variante noch immer schnneller sein sollte, als Deine ursprüngliche Version ...

Grüße
bastla
Bitte warten ..
Mitglied: Kamper
05.01.2012 um 15:36 Uhr
Vielen Danke für die schnellen Antworten. Ich werde die Lösungsvorschläge am Wochenende ausprobieren.
Bitte warten ..
Mitglied: Kamper
08.01.2012 um 15:11 Uhr
Hallo bastla,

ich habe soeben dein Skript unter unterschiedlichen Bedingungen ausprobiert.


Senario 1: min 1 Client verfügbar:

01.
C:\Users\Administrator\Desktop>set "Server=server" 
02.
C:\Users\Administrator\Desktop>set "AlleAus=true" 
03.
C:\Users\Administrator\Desktop>for %i in (192.168.2.10 192.168.2.20 192.168.2.80) do ping -n 1 %i  1>nul  && set "AlleAus=" 
04.
C:\Users\Administrator\Desktop>ping -n 1 192.168.2.10  1>nul  && set "AlleAus=" 
05.
C:\Users\Administrator\Desktop>ping -n 1 192.168.2.20  1>nul  && set "AlleAus=" 
06.
C:\Users\Administrator\Desktop>ping -n 1 192.168.2.80  1>nul  && set "AlleAus=" 
07.
C:\Users\Administrator\Desktop>for /F "delims=\" %i in ('net view|findstr "\\"|findstr /i /v "server"') do ping -n 1 %i  1>nul  && set "AlleAus=" 
08.
Systemfehler 6118 aufgetreten. 
09.
Die Liste der Server in dieser Arbeitsgruppe ist zurzeit nicht verfügbar. 
10.
C:\Users\Administrator\Desktop>if defined AlleAus shutdown -s -f -t 00 
11.
C:\Users\Administrator\Desktop>pause 
12.
Drücken Sie eine beliebige Taste . . .
Er setzt trotz erfolgreichem anpingen der ersten ip auf "AllesAus"
Und hat bei netview möglicherweise ein Firewallproblem. In die Richtung muss ich noch suchen.


Senario 2: Server ist komplett vom Netzwerk getrennt:

01.
C:\Users\Administrator\Desktop>set "Server=server" 
02.
C:\Users\Administrator\Desktop>set "AlleAus=true" 
03.
C:\Users\Administrator\Desktop>for %i in (192.168.2.10 192.168.2.20 192.168.2.80) do ping -n 1 %i  1>nul  && set "AlleAus=" 
04.
C:\Users\Administrator\Desktop>ping -n 1 192.168.2.10  1>nul  && set "AlleAus=" 
05.
C:\Users\Administrator\Desktop>ping -n 1 192.168.2.20  1>nul  && set "AlleAus=" 
06.
C:\Users\Administrator\Desktop>ping -n 1 192.168.2.80  1>nul  && set "AlleAus=" 
07.
C:\Users\Administrator\Desktop>for /F "delims=\" %i in ('net view|findstr "\\"|findstr /i /v "server"') do ping -n 1 %i  1>nul  && set "AlleAus=" 
08.
C:\Users\Administrator\Desktop>if defined AlleAus shutdown -s -f -t 00 
09.
C:\Users\Administrator\Desktop>pause 
10.
Drücken Sie eine beliebige Taste . . .
Hier tritt kein Fehler auf. Herunterfahren tut er aber trotzdem nicht :S
Irgendwo muss noch ein Fehler sein.

Das was ich an dem Skript geändert habe:
"@echo off" auf "on"
"Servername" ersetzt
und zum Schluss noch ein Pause eingefügt, als ich merkte das es nicht funktioniert um den Log zu erstellen.

Da ich mich leider mit netview gar nicht und mit batch skripts nur einwenig auskenne wäre ich um weitere Hilfe sehr dankbar.

Gruß
Kamper
Bitte warten ..
Mitglied: Kamper
08.01.2012 um 15:18 Uhr
Hallo Xearo,

der DNS leuft über einen normalen Router. Das würde ich auch gerne so lassen, da eben der Server nicht immer verfügbar sein muss/ist.
Das mit den PC Namen werde ich noch ausprobieren.

Vielen Dank für die Antwort.

Gruß,
Kamper
Bitte warten ..
Mitglied: bastla
08.01.2012 um 15:35 Uhr
Hallo Kamper!
Er setzt trotz erfolgreichem anpingen der ersten ip auf "AllesAus"
Eigentlich wird nicht auf "AllesAus" gesetzt, sondern die Variable %AlleAus% gelöscht (da eben der erfolgreiche "ping" beweist, dass nicht "alle aus" sind ...

Zur Kontrolle kannst Du vor und nach der Zeile 5 jeweils eine Zeile
set AlleAus
einfügen, um den Status der Variablen anzuzeigen.
Herunterfahren tut er aber trotzdem nicht :S
Wenn der "shutdown"-Befehl in der vorherigen Variante funktioniert hat, sollte er es auch jetzt tun (dass der Batch mit Admin-Rechten ausgeführt wird, setze ich mal voraus) - der Grund für das "Nicht-Herunterfahren" kann also eigentlich nur der Inhalt der Variablen %AlleAus% sein - kontrolliere den bitte anhand der oben gezeigten zusätzlichen Zeilen!

Eine andere Schreibweise für
ping -n 1 %%i>nul && set "AlleAus="
wäre noch
ping -n 1 %%i|findstr "TTL">nul && set "AlleAus="
- damit wird nicht anhand des Errorlevels (der allerdings ab XP funktionieren sollte) geprüft, sondern die Ausgabe auf den Textteil "TTL" (den es nur bei einem erfolgreichen "ping" gibt) hin untersucht ...

Grüße
bastla
Bitte warten ..
Mitglied: Kamper
10.01.2012 um 18:30 Uhr
Hallo, wollte mich nochmal zurückmelden und ein großes Dankeschön los werden.

Im besonderen Maße gilt der Dank bastla. Ohne Ihn würde ich wahrscheinlich immer noch rumdoktern.

Habe am Sonntagabend das Skript lauffähig bekommen.
Hier die bei mir funktionierende Version:

01.
@echo on & setlocal 
02.
set "Server=server" 
03.
set "AlleAus=true" 
04.
for %%i in (192.168.2.10 192.168.2.20 192.168.2.80) do ping -n 1 %%i|findstr "TTL">nul && set "AlleAus=" 
05.
for /f "delims=\" %%i in ('net view^|findstr "\\"^|findstr /i /v "%Server%"') do ping -n 1 %%i|findstr "TTL">nul && set "AlleAus=" 
06.
if defined AlleAus shutdown -s -f -t 00
Warum die Prüfung nicht über das Errorlevel geht, weiß ich nicht. Es ist ja auch jetzt nicht mehr wichtig. Führen ja mehrere Wege nach Rom

Grüße Kamper
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Suchen nach offline client
Frage von VerruecktesPferdBatch & Shell7 Kommentare

Hallo zusammen, ich suche nach einen PC, der derzeit offline ist, gibt es per powershell die Möglichkeit auszulesen wer ...

JavaScript
Offline Clients im Socketserver erkennen
Frage von 94451JavaScript

Hallo, ich habe mir auf Ubuntu einen Socketserver aufgebaut (node.js 4.1.0 und socket.io 1.3.6). Mit Arduinos habe ich eine ...

Windows Server
Domäne Server abschalten - entgültig
Frage von yami22Windows Server11 Kommentare

Hallo, ich weiß - das Thema wurde bestimmt schon X mal durchgekaut, wollte aber noch mal eine Meinung von ...

Windows 10
Win10 Client kann sich nicht anmeldet wenn DC Offline
Frage von dafdagWindows 105 Kommentare

Hallo zusammen, ich habe das Problem dass sich die Windows 10 Clients nicht mehr mit einem Domänen-Benutzer anmelden lassen ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 4 StundenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 8 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Cloud-Dienste
PIM als SaaS Nutzungsgebühr
Frage von vanTastCloud-Dienste8 Kommentare

Moin, wir haben uns ein PIM (Product Information Management) nach unseren Ansprüchen für viel Geld als SaaS-Lösung bauen lassen. ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware7 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...