Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBS Prozess anhand Fenstername beenden

Frage Entwicklung Batch & Shell

Mitglied: goodbytes

goodbytes (Level 2) - Jetzt verbinden

08.12.2014, aktualisiert 15:40 Uhr, 1540 Aufrufe, 5 Kommentare

Hallo,
wie kann ich eine Batch mittels vbs anhand des Fenstertitels beenden? Die cmd.exe zeigt als Fenstertitel an: "Administrator: Test", da ich in der Batch "Title Test" verwendet habe.

Gruß
Torsten
Mitglied: emeriks
LÖSUNG 08.12.2014, aktualisiert um 15:40 Uhr
Hi,
Du könntest über WMI die Befehlszeilen der laufenden Prozesse abfragen und dann den entsprechenden Prozess beenden.
01.
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\CIMV2")  
02.
Set oProcesses = oWMI.ExecQuery("SELECT * FROM Win32_Process WHERE Name = 'cmd.exe'",,48)  
03.
For Each oProcess in oProcesses  
04.
  if instr(oProcess.CommandLine, {Pfad zur Batch}) > 0 then 
05.
    oProcess.Terminate 
06.
  end if  
07.
Next
E.
Bitte warten ..
Mitglied: 114757
08.12.2014 um 12:05 Uhr
Moin Torsten,
würde die Methode von Emeriks auch bevorzugen. Hier aber noch ein "dirty"-Trick wenn Word installiert ist und tatsächlich der Fenster-Titel verwendet werden soll. Ich weiß das das nicht universell ist, aber eben einfach noch eine Möglichkeit.
01.
Const APP_TITLE = "Administrator: Test" 
02.
Set objWord = CreateObject("Word.Application") 
03.
objWord.Visible = False 
04.
Set tasks = objWord.Tasks 
05.
If tasks.Exists(APP_TITLE) Then 
06.
    tasks(APP_TITLE).Close 
07.
End If 
08.
objWord.Quit()
Gruß jodel32
Bitte warten ..
Mitglied: goodbytes
08.12.2014 um 15:36 Uhr
@emeriks
Ja,so bekomme ich alle Prozesse mit "cmd.exe", aber ich möchte nur einen davon killen. Ich müsste doch mittels WMI auch irgendwie an den Fenstertitel kommen denke ich, oder?

@114757
Word ist leider nicht installiert, da es sich um einen Server handelt, da brauche ich sonst kein Word...
Trotzdem danke!

Torsten
Bitte warten ..
Mitglied: goodbytes
08.12.2014 um 15:39 Uhr
Nachtrag...
@emeriks
Aaaaaach sooooo, da hab ich jetzt aber nicht richtig hingeguckt. Natürlich, indem ich nach dem Pfad zu der gestarteten Batch filtere! Menno, manchmal sollte man erstmal richtig lesen..

Vielen Dank!!!
Torsten
Bitte warten ..
Mitglied: goodbytes
09.12.2014 um 12:37 Uhr
So funktioniert es jetzt bestens...
01.
Set WMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2") 
02.
Set objProzesse = WMI.ExecQuery("Select * from Win32_Process") 
03.
 
04.
For Each objProzess in objProzesse 
05.
		 
06.
  If instr(objProzess.CommandLine, "Testbatch.cmd") Then  
07.
	objProzess.Terminate (0)  
08.
  End If  
09.
Next
Danke nochmal !!!

Torsten
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Base64 Decode (Batch,VBS) (26)

Frage von clragon zum Thema Batch & Shell ...

Windows 10
Vbs getobject auf per Task gestartete Anwendung (4)

Frage von schauan zum Thema Windows 10 ...

Windows 10
gelöst Remotedesktop beim Client via CMD beenden (4)

Frage von Rolf-Hanka.ITD zum Thema Windows 10 ...

Visual Studio
Eigener Prozess ist schneller als Thread (13)

Frage von Aicher1998 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Router & Routing
Tipps für Router (ca. 100 clients, VPN) (18)

Frage von oel-auge zum Thema Router & Routing ...

TK-Netze & Geräte
gelöst Convert von TAPI auf CAPI gesucht (13)

Frage von StefanKittel zum Thema TK-Netze & Geräte ...