Script für Reboot
Geizhals » Forum » Programmierung » Script für Reboot (10 Beiträge, 457 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: Script für Reboot
12.10.2011, 09:27:11
Verstehe ich das richtig? Der Server startet, funktioniert aber nicht richtig (kein Netz) und soll in diesen Fall neu gestartet werden?

Ich habe ein VBS-Script-Template, welches ich verwende wann ich etwas auf verschiedene Rechner machen muss. Dabei teste ich zuerst ob der Rechner überhaupt da ist:
On Error Resume Next

Set oWshNet = CreateObject("Wscript.Network") 

'Variables
strTimeDate = YEAR(Now) & Right("0" & Month(Now),2) & Right("0" & DAY(Now),2) & "-" & Right("0" & Hour(Now),2) & Right("0" & Minute(Now),2) & Right("0" & Second(Now),2)

infile = "computers.txt"

outFile = "Log_" & inFile & "-" & strTimeDate & ".txt"
Set objFSO = CreateObject("scripting.filesystemobject")

intCounter = 1

Const HKLM = &H80000002 
sProfileRegBase = "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" 


'We want to have a logfile. When ready, it will rot on the disk for all eternity.
Set outFile = objFSO.OpenTextFile(outFile, 2, True)
outFile.writeline (Now & vbTab & "Starting script...")

'Loop through all servers listed in the inFile
Set inFile = objFSO.OpenTextFile(inFile, 1, True) 'Open the list of serevers to work on

While Not inFile.AtEndOfStream
	'Do Stuff
	strServer = inFile.ReadLine

	outFile.WriteLine Now & vbtab & "===============================================" 'Let's have a nice looking logfile. At least try to.
	outFile.WriteLine Now & vbtab & "Starting on " & strServer & " (#" & intCounter & " in list)"

	'Check if server reachable
	Set objPing = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_PingStatus where address = '" & strServer & "'")
	For Each objStatus in objPing
		If IsNull(objStatus.StatusCode) or objStatus.StatusCode<>0 Then
			outFile.WriteLine Now & VBTab & "***Error*** " & strServer & " is not reachable at IP " & objStatus.ProtocolAddress
		Else
			outFile.WriteLine  Now & VBTab & strServer & " is reachable at IP "& objStatus.ProtocolAddress

			'Connect to server
			'Set objWMIService = GetObject("winmgmts:\\" & strServer & "\root\cimv2")
			Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strServer & "\root\cimv2")
			If Err <> 0 Then
				outFile.WriteLine Now & VBTab & strServer & "***Error*** System unreachable: GetObject failed"
				Err.Clear
			Else
			
				'*********************************************
				'*
				'*   Put the actions here
				'*
				'*   Writing to Log: outFile.WriteLine Now & VBTab & "Message to Write"
				'
				'*   Variables:
				'*   strServer = Current server, without slashes, just the s-loc-wi-000
				'*
				'*********************************************

				outfile.WriteLine Now & vbtab & "Ready with " & strServer
			End If
		End If

		intCounter = intCounter + 1

	Next
	wscript.sleep 5000
Wend

'Aufräumen
outFile.WriteLine Now & vbtab & "==============================================="
outFile.writeline Now & vbTab & "Ending script..."
inFile.close
outFile.close

MsgBox "Script completed successfully."

WScript.Quit

'Ready! WOOHOO!!!
Das Script geht durch alle Rechner in 'computers.txt', pingt sie an, und fürhrt, wenn anpingbar, eine bestimmte Aktion aus. Das kannst du selber in der Mitte einfügen. Du kannst natürlich das Script 'auskleiden' bis es nur für der lokale Server gilt. Es schreibt auch ein Logfile, jedesmal wenn es durchlauft:
04/10/2011 01:00:57	===============================================
04/10/2011 01:00:57	Starting on WS06-118 (#8 in list)
04/10/2011 01:01:01	***Error*** WS06-118 is not reachable at IP 
04/10/2011 01:01:06	===============================================
04/10/2011 01:01:06	Starting on WS06-121 (#9 in list)
04/10/2011 01:01:06	WS06-121 is reachable at IP 192.168.0.146
04/10/2011 01:01:08	Ready with WS06-121
04/10/2011 01:01:13	===============================================
04/10/2011 01:01:13	Starting on WS06-128 (#10 in list)
04/10/2011 01:01:16	***Error*** WS06-128 is not reachable at IP 
04/10/2011 01:01:21	===============================================
Hier habe ich gesehen das der Rechner 'WS06-121' in der Nacht gelaufen ist...

HTH.


Save the Earth... it's the only planet with chocolate.
Wir sollten die Fekter aus- oder einweisen...



Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung