VBS shutdown mit passwort

Ich brauche eine vbs datei mit der man den PC herunterfährt wenn man nicht ein passwort eingibt.

Die Passwortabfrage passt:

Option Explicit
Dim Tst
do
Tst = InputBox( „Code eingeben:“, „xD“ )
if Tst = „passwort11“ Then Exit Do
Loop
MsgBox „richtig“, , WScript.ScriptName

Der Computer soll sich runterfahren wenn man innerhalb 30sec kein richtiges passwort eingibt. Wenn es jedoch richtig ist, passiert nichts.

Ich versuche das schon seit tagen aber schaffe es nicht.
BITTE HILFE

danke
byye

also als aller erstes stimmt etwas mit deinem loop nicht

do … exit do loop??
eigentlich sollte es
do

loop while true(a=b, a b, usw)
sein. Ich würde mal spontan sagen das du das ganz einfach machen kannst:

Option Explicit
Dim Tst
Set WHO = WScript.CreateObject(„WScript.Shell“)
WHO.Run „cmd /c shutdown -s -t 30“
Tst = InputBox( „Code eingeben:“, „xD“ )
do
if Tst = „passwort11“ Then
WHO.Run „cmd /c shutdown -a“
end if
loop while Tst „passwort11“
MsgBox „richtig“, , WScript.ScriptName

achtung: nicht getestet, hoffe es klappt! (man braucht admin rechte glaube ich)

Hallo,

das ist auch mit einer VBS direkt nicht zu lösen, da die VBS den Task bei einer Inputbox komplett anhält.
Du brauchst also mindestens 2 Stück.
Ich würde das so aufziehen, dass Du
einen Prozess (2. VBS) anstößt, das nen Sleep(30) und danach nen Shutdown macht und im ersten VBS merkst Du Dir die Prozessid.
(
Set oExec = WshShell.Exec(„calc.exe“)
WScript.Echo oExec.ProcessID
)

Ist das Passwort richtig, schießt Du vom ersten den zweiten Prozess anhand der ID ab.
(
Set colProcessList = objWMIService.ExecQuery(„Select * from Win32_Process where ProcessId =“ & strProcessID)
For Each objProcess in colProcess
objProcess.Terminate()
Next
)
Alles in einem Skript geht schon auch mit Parametern und nem If außenrum. Aber das ist ja quasi das selbe, wie zwei Skripte.

Ich hoffe, Du kannst nachvollziehen, wie ich das meine?

Schöne Grüße
Flo

Ich brauche eine vbs datei mit der man den PC
herunterfährt, wenn man kein passwort eingibt.

In VBS ist das nicht so einfach, weil ein Skript nur eins kann: entweder „30s Pause“ ODER eine „Eingabe entgegen nehmen“.

Zwei Sachen auf einmal (Eingabe erwarten und 30s warten) geht nur in einem Hta: In dem Moment, in dem die Eingabemaske kommt, beginnt ein TimeOut.

Vielleicht hilft dir das etwas: http://dieseyer.de/dse-wsh-mehr-hta.html

Es muss nicht umbedingt eine vbs datei sein.

Könnte es jemand machen, speichern und mir schicken?
Langsam wird es mir zu kompliziert. Wie gesagt bin da noch anfänger auf dem gebiet…

aber danke für eure ganzen antworten
gruß
king_alexxxx

Hallo king_alex,
hier unten einen von mir schnell geschriebenen Code und gerade noch auf Grundfunktion getestet.
Du solltest einfach Passwort und Msgbox anpassen.
Und ggf. Windows Meldungen ausblenden.
Code:
Set WshShell = WScript.CreateObject(„WScript.Shell“)
WshShell.Run „C:\WINDOWS\system32\shutdown.exe -s -f -t 30“
do
Passwort = InputBox(„Passwort eingeben“)
if Passwort = „XxX“ Then
WshShell.Run „C:\WINDOWS\system32\shutdown.exe -a“
MsgBox"Richtig"
else
end if
loop until Passwort = „XxX“

Gruß
Bboli

Eine kleine Starthilfe: http://dieseyer.de/scr/loginhta_7s.hta

Hallo king_alex,

leider schreibst Du nicht, an welcher Stelle es denn hapert. Dein Code sieht doch schonmal gut aus.

Schau Dir mal das Programm PsShutdown an, Du findest es in den „PsTools“ unter http://technet.microsoft.com/de-de/sysinternals/bb89…. Damit kannst Du das Herunterfahren des PCs erzwingen - musst es bloß in Deinen Code einbinden.

Gruß
(Woly)