Veröffentlicht 7. September 200421 j Hallo Ich denk mal ihr könnt mir helfen! Ich muss eine Batch Datei schreiben, die zu einer bestimmten Zeit ausgeführt wird. Die dan zwei Dosfenster schließt und den Rechner neustartet. Ist da möglich? Mfg ABehm
7. September 200421 j Welches BS? Bei Windows XP reicht shutdown -r -t <zeit in sek>. Da werden auch die beiden DOS-Fenster automatisch geschlossen.
7. September 200421 j also bei nem Zeitpunkt is die AT funktion wohl nich ganz unangebracht... (muss aber NTreskit drauf sei) und dann so singemäß at 12:00 shutdown.exe(u.u. noch n paar parameter mitgeben) damit wird das event dann um 12Uhr ausgeführt... hilfe im DOS (at ?)
7. September 200421 j Das Problem ist nicht unbedingt das der Rechner neustartet, sondern das die Dosfenster geschlossen werden. Da man bei den Fenstern bestimmte Tasten Kombinationen braucht um sie zu schließen!
7. September 200421 j sind das DOS-Hintergrundapplikationen, die da laufen oder sind das richtige Programme?(Weil du von Tastenkombinationen sprichst). Ist es z.B. schlimm, wenn der Prozeß einfach abgeschossen wird?
7. September 200421 j kennst du denn den unterschied ob abgeschossen oder richtig beendet? wenn ja teste das ganze doch mal mit der shutdown.exe (erstmal manuell) und schau mal wie die fenster geschlossen werden, vielleicht schießt die exe die gar nicht ab, sondern beendet die auf irgendeine art und weise richtig :confused:
7. September 200421 j Ich hab das jetzt mal mit shutdown ausprobiert, geht leider nicht, dann kommt "Please terminate Windows Application"! Also einfach so beenden is nich! Der Rechner muss irgendwie vorher die Tastenkombination Alt+F7 ausführen!
7. September 200421 j ich hab mal was über nen befehl gelesen der irgendwas mit "exit xxx" war... ich such den auf alle fälle mal und poste dann nochmal wenn ich was gefunden habe!
8. September 200421 j In Win 2000 gibt es den Konsolenbefehl Kill mit dem man einen Prozess terminieren kann. Das selbe erledigt Taskkill in Win XP. Dabei kann sowohl eine PID (ProzessId) oder der Windowtitle verwendet werden.
8. September 200421 j Danke,hilft mir aber nicht weiter, da die zwei Anwendungen keine PID besitzen, die Programme liegen auf einem Server und werden nur auf dem Client ausgeführt!
8. September 200421 j Bitte? Wenn sie auf dem Client ausgeführt werden, müssen sie auf dem Client auch ne PID haben. Ansonsten erklär mir mal, wie das ohne geht *wirr*
8. September 200421 j dann öffne im Client mal den Taskmanager und schau mal, ob du im Reiter Prozesse deine beiden Applikationen findest. Daneben steht dann idR eine PID. Alternativ kannst du in der Kommandozeile auch "qprocess *" eingeben (zumindest bein WinXP, vielleicht heißt es bei W2k etwas anders) und siehst es auch. Dadurch hast du zusätzlich die Möglichkeit mit ner Windows-Version von awk die PID auszulesen und für den kill zu verwenden.
8. September 200421 j pmon listet alle laufenden Prozesse auf. Neben der PID kann man dort auch den Windowtitle lesen. Der bleibt im Gegensatz zur PID konstant, und sollte sich daher besser eignen den jeweiligen Prozess zu beenden.
9. September 200421 j was muss man den da jetzt genau eingeben um den kill befehl auszuführen um einen Task mit hilfe der PID zu killen???
10. September 200421 j Mal ein anderer Vorschlag, probier folgendes Script ( als VBScript mit Endung .vbs abspeichern ) Option Explicit Dim objWMI, objProcess, strWQL, colResult, colInstances Dim objInstance Set objWMI = GetObject("winmgmts:{(Shutdown)}") strWQL = "select * from win32_process where name='cmd.exe'" Set colResult = objWMI.ExecQuery(strWQL) For each objProcess in colResult objProcess.Terminate 0 Next Set colInstances = objWMI.InstancesOf("win32_operatingsystem") For Each objInstance In colInstances objInstance.Win32Shutdown 0,0 next hier wird der User nur abgemeldet, den Shutdownmodus bestimmt die erste Zahl in der Zeile "objInstance.Win32Shutdown 0,0", mögliche Optionen sind: 0 = abmelden 1 = herunterfahren 2 = neustart 4 = forciert 8 = abschalten 16 = Kill das geht aber nur bei Windows2000 8 allein reicht zum abmelden-runterfahren-ausschalten. 16 wäre ein versuch wert, wenn sich deine Konsolenfenster doch nicht geschlossen haben mit "objProcess.Terminate 0", sei es weil sie hartnäckig sind, oder nicht von cmd.exe stammen. Da hast du aber noch die Möglichkeit in Zeile 8 "strWQL = "select * from win32_process where name='cmd.exe'" das cmd.exe durch einen anderen Namen zu ersetzen. Gruss Thoralf
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.