Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

VBS - Eigene Process ID

Frage Entwicklung VB for Applications

Mitglied: MSchyska

MSchyska (Level 1) - Jetzt verbinden

14.02.2007, aktualisiert 16.02.2007, 6159 Aufrufe, 3 Kommentare

Hallo,

gibt es eine Möglichkeit, in einem Visual Basic Script die eigene Process ID (des Scripts) abzufragen?

Danke für eine gute Antwort
Mitglied: bastla
14.02.2007 um 16:54 Uhr
Hallo MSchyska und willkommen im Forum!

Über WMI lässt sich eine Auflistung der laufenden Prozesse erhalten. In einer "For Each"-Schleife können die passenden Prozesse näher untersucht und zB die Eigenschaft "CommandLine", welche den ScriptName enthält, zur Identifizierung verwendet werden. Schematisch sähe das etwa so aus:
01.
strComputer = "." 
02.
strProcess = "script.exe" 
03.
strComm = LCase(WScript.ScriptName) 
04.
 
05.
Set objWMIService = GetObject("winmgmts:" _ 
06.
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
07.
Set colProcesses = objWMIService.ExecQuery _ 
08.
    ("Select * from Win32_Process Where Name Like '%" & strProcess & "%'") 
09.
 
10.
msg = "" 
11.
For Each objProcess In colProcesses 
12.
	If Instr(LCase(objProcess.CommandLine), strComm) Then 
13.
		If msg = "" Then 
14.
			msg = objProcess.ProcessID & " - " & objProcess.CommandLine 
15.
		Else 
16.
			msg = msg & vbCrLF & objProcess.ProcessID & " - " & objProcess.CommandLine 
17.
		End If 
18.
	End If 
19.
Next 
20.
WScript.Echo msg
Die Ausgabe ist auf mehrere gefundene Instanzen hin ausgelegt. Bei Bedarf ließen diese sich zumindest zeitlich einordnen (Eigenschaft "CreationDate").

Gefunden werden sowohl über "WScript.exe" als auch über "CScript.exe" gestartete Scripts.

Grüße
bastla

[Edit] Abfrage auf "Like" umgestellt, sodass unabhängig vom Script-Interpreter; Hinweis auf "CreationDate" ergänzt [/Edit]
Bitte warten ..
Mitglied: MSchyska
16.02.2007 um 08:51 Uhr
Hallo bastla,

vielen Dank für die schnelle Antwort.

Das Skript funktioniert unter Windows 2003, aber nicht unter Windows 2000 (Abbruch mit Exception). Gibt es eine Variante für Windows 2000?

Grüße

MSchyska
Bitte warten ..
Mitglied: bastla
16.02.2007 um 09:12 Uhr
Hallo MSchyska!

Sieht so aus, als würde W2000 die Eigenschaft ".CommandLine" noch nicht bereitstellen - ".ExecutablePath" liefert nur den Pfad des Interpreters zurück, sodass Du also alle laufenden Scripts finden kannst, aber Dir vermutlich zur Identifizierung (zB des als letztes gestarteten) nur noch ".CreationDate" bleiben würde ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Apple
Account für Apple-ID löschen (3)

Tipp von goRaini zum Thema Apple ...

Windows Server
Ereignis ID 13 und 12292 (2)

Frage von Judgelg zum Thema Windows Server ...

Batch & Shell
gelöst Hilfe Bei einem vbs Script (19)

Frage von Hattori-Hanzo zum Thema Batch & Shell ...

PHP
User ID über GET übertragen? (2)

Frage von Yanmai zum Thema PHP ...

Neue Wissensbeiträge
Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(1)

Information von DerWoWusste zum Thema Microsoft ...

Humor (lol)

Wohnt jemand in Belgien und kann nicht mehr ruhig ausschlafen?

(6)

Information von LordGurke zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (16)

Frage von liquidbase zum Thema Voice over IP ...

TK-Netze & Geräte
TK-Anlage VoIP - DECT Erweiterung (15)

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