Computers afsluiten over netwerk

Status
Niet open voor verdere reacties.

Gyraxo

Nieuwe gebruiker
Lid geworden
7 okt 2010
Berichten
2
Hallo,
Ik ben een netwerkbeheerder op een school en ik moet iedere dag alle computers handmatig afsluiten. Dus ik dacht ik maak een .bat om dit voor mij te doen. Het ziet er als volgt uit:

Code:
shutdown -s -f -m \\MD01
shutdown -s -f -m \\MD02
shutdown -s -f -m \\MD03
shutdown -s -f -m \\MD04
shutdown -s -f -m \\MD05
shutdown -s -f -m \\MD06
shutdown -s -f -m \\MD07
shutdown -s -f -m \\MD08
shutdown -s -f -m \\MD09
shutdown -s -f -m \\MD10
shutdown -s -f -m \\MD11
shutdown -s -f -m \\MD12
shutdown -s -f -m \\MD13
shutdown -s -f -m \\MD14
shutdown -s -f -m \\MD15
shutdown -s -f -m \\MD16
shutdown -s -f -m \\C01
shutdown -s -f -m \\C02
shutdown -s -f -m \\C03
shutdown -s -f -m \\C04
shutdown -s -f -m \\C05
shutdown -s -f -m \\C06
shutdown -s -f -m \\C07
shutdown -s -f -m \\C08
shutdown -s -f -m \\C09
shutdown -s -f -m \\C10
shutdown -s -f -m \\C11
shutdown -s -f -m \\C12
shutdown -s -f -m \\C13
shutdown -s -f -m \\C14
shutdown -s -f -m \\C15
shutdown -s -f -m \\C16
shutdown -s -f -m \\C17

Maar nu is het probleem dat wanneer bijvoorbeeld MD06 al uit staat, dan gaan MD01 tot 05 uit en MD07-16 en C01-17 blijven aanstaan omdat het MD06 niet kan uitzetten. Is er toevallig een manier om dit te omzeilen?

Ik weet niet zeker of dit het goede forum is, maar ik dacht van wel.

Gyraxo
 
Laatst bewerkt door een moderator:
Ik denk dat dat programma hetzelfde doet als wat mijn .bat doen in command prompt. Automatisch wordt al 30 seconden als tijd ingesteld, maar mijn manier stopt wanneer er een computer al uit staat. Alles wat daarna komt wordt niet meer afgesloten.
 
Met jou batch activeer je Shutdown.exe, dus wel logisch dat het hetzelfde doet.:)
Maar nou nog eens je vraag gelezen te hebben, denk ik dat het meer een "scriptje", gezien je iets moet overslaan indien het niet uitgevoerd kan worden.
 
Teamviewer

Is misschien teamviewer een optie? Je kan er presentatie, bestandsoverdracht, ... vanop afstand mee doen. Je kan het gratis downloaden, na een tijdje krijg een melding niet voor commercieel gebruik, klik op OK en je kan weer verder .
 
Je zult eerst moeten kijken of een machine online is bv door middel van het ping commando.
Nu is dat mogelijk in batch scripting maar via VBS gaat het iets makkelijker...

Voorbeeld script wat ik tegen kwam op Experts-exchange je zult even een bestandje c:\computers.txt moeten maken met de computers die je wil afsluiten om onderstaande te laten werken

Ik heb het script zelf nog niet getest maar afgezien van het feit dat het niet mijn programmeer stijl is lijkt hij code technisch in orde. Maar als iets niet helemaal werkt, geeft dan even aan wat de fouten zijn en dan kijk ik er naar.

Code:
' Opens up text file for reading
Const For_Reading = 1
g_strHostFile = "c:\computers.txt"
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
If objFSO.FileExists(g_strHostFile) Then
	Set objTextStream = objFSO.OpenTextFile(g_strHostFile, For_Reading)
Else
	WScript.Echo "Input File " & g_strHostFile & " not found."
	WScript.Quit
End If
 
'Loops the string for all lines in the text
Do Until objTextStream.AtEndOfStream
	g_strComputer = objTextStream.ReadLine
	blnPing = PingHost
	
If blnPing = True Then
'runs the shutdown if the ping is true
	Set objWSHShell = WScript.CreateObject("WScript.shell")
	objWSHShell.Run "shutdown.exe /s /f /m \\" & g_strComputer & " /t 15"
Else
'do nothing
End If
Loop
objTextStream.Close
 
'Ping function Scripting (allows ping to be performed)	
Function PingHost
 
Set objShell = CreateObject("WScript.shell")
Set objExec = objShell.Exec("ping -n 1 -w 1000 " & g_strComputer)
strPingResults = LCase(objExec.StdOut.ReadAll)
 
If InStr(strPingResults, "reply from") Then
	PingHost = True
Else
	PingHost = False
End If
 
End Function
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan