Jump to content

BKL517

Members
  • Gesamte Inhalte

    1
  • Registriert seit

  • Letzter Besuch

Letzte Besucher des Profils

Der "Letzte Profil-Besucher"-Block ist deaktiviert und wird anderen Benutzern nicht angezeit.

Fortschritt von BKL517

Newbie

Newbie (1/14)

  • Erster eigener Beitrag

Neueste Abzeichen

0

Reputation in der Community

  1. Hallo und Guten Morgen in die Runde. Da sich meine VBScript - Kenntnisse leider auf einem bescheidenen Stand befinden, bitte ich um Unterstützung bei der Anpassung / Erweiterung dieses Anmeldescripts. Ziel ist es den PC automatisiert, bei nicht erreichen beider „checkPC01 + checkPC02“ Ip-Adressen, herunterzufahren. 1. PC startete automaisch (Bioseinstellung) 2. VBA Startscript wird über Autostart abgerufen 3. es sollte eine kontinuierliche Prüfung auf Erreichbarkeit beider IP’s stattfinden 4. so bald beide IP’s zusammen über einen Zeitraum von x Minuten nicht erreichbar sind, sollte PC herunterfahren Vielen Dank im Voraus Set WSHShell = WScript.CreateObject("WScript.Shell") Dim checkPC01, checkPC02 Dim objResult ' Überprüfungsrechner checkPC01 = "192.xxx.xxx.xxx" 'PC01 checkPC02 = "192.xxx.xxx.xxx" 'PC02 ' Überprüfe ob checkPC01 online ist Do Until Ping_Network(checkPC01) objResult = WSHShell.sendkeys("{NUMLOCK}{NUMLOCK}") WScript.Sleep(60000) ' Eine Minute warten Loop ' checkPC01 ist online WScript.Sleep(60000) ' Warte eine weitere Minute ' Überprüfe ob checkPC02 online ist Do Until Ping_Network(checkPC02) objResult = WSHShell.sendkeys("{NUMLOCK}{NUMLOCK}") WScript.Sleep(60000) ' Eine Minute warten Loop ' checkPC02 ist online WScript.Sleep(60000) ' Eine Minute warten ' Einschlafen verhindern... Do While Ping_Network(checkPC01) '...solange der checkPC01 online ist If Ping_Network(checkPC02)= False Then ' checkPC02 ist offline gegangen Do Until Ping_Network(checkPC02) ' Überprüfe fortwährend ob checkPC02 online ist objResult = WSHShell.sendkeys("{NUMLOCK}{NUMLOCK}") ' Aktion ausführen WScript.Sleep(60000) ' Eine Minute warten Loop ' checkPC02 ist online WScript.Sleep(60000) ' Eine Minute warten, bis alle Dienste geladen sind Else objResult = WSHShell.sendkeys("{NUMLOCK}{NUMLOCK}") ' Aktion ausführen End If Wscript.Sleep(300000) ' Fünf Minuten warten Loop ' checkPC01 ist nicht mehr online => PC herunterfahren Dim strShutdown ' -s = shutdown, -t 10 = 10 Sekunden, -f = Proramm beenden erzwungen strShutdown = "shutdown.exe -s -t 10 -f" WSHShell.Run strShutdown, 0, false Function Ping_Network(sHost) Dim oPing, oRetStatus Set oPing = GetObject("winmgmts:").ExecQuery ("select * from Win32_PingStatus where address = '" & sHost & "'") For Each oRetStatus In oPing If IsNull(oRetStatus.StatusCode) Or oRetStatus.StatusCode <> 0 Then Ping_Network= False Else Ping_Network= True End If Next Set oPing = Nothing End Function
×
×
  • Neu erstellen...