sabine79 10 Geschrieben 11. Juni 2008 Melden Teilen Geschrieben 11. Juni 2008 Hallo Zusammen, ich hab query process * Ausgabe der Spalten: Benutzer, Sitzungsname, ID, PID, Prozess Gibt es einen Befehl bei dem zusätzlich die Spalte Speichernutzung für die einzelnen Prozesse angezeigt wird? Ich benötige folgende Spalten: Benutzer, Sitzungsname, Prozess, Speichernutzung Der Befehl tasklist und pslist hilft mir da nicht weiter, da hier nur der Sitzungsname aber nicht der Benutzer aufgelistet wird. Gruß, Sabine Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 12. Juni 2008 Melden Teilen Geschrieben 12. Juni 2008 Im Scriptcenter sollte etwas für Dich zu finden sein: Script Repository: Processes Community-Submitted Scripts Center: Script Repository Zitieren Link zu diesem Kommentar
sabine79 10 Geschrieben 12. Juni 2008 Autor Melden Teilen Geschrieben 12. Juni 2008 danke für den tip. ich habe eben sie seite durchforstet, leider ist nichts für meine anforderung dabei. Zitieren Link zu diesem Kommentar
ZeroKnowledge 11 Geschrieben 12. Juni 2008 Melden Teilen Geschrieben 12. Juni 2008 Wie wäre es hiermit Dim oWMI, oItems, oItem, sUser, sDomain Set oWMI = GetObject("winmgmts:\\.\root\CIMV2") Set colItems = oWMI.ExecQuery("SELECT * FROM Win32_Process") For Each oItem in colItems If 0 = oItem.GetOwner(sUser, sDomain) Then WScript.Echo oItem.Name & ", " & sDomain & "\" & sUser & ", " & _ oItem.SessionID & ", " & (oItem.WorkingSetSize / 1024) End If Next Zitieren Link zu diesem Kommentar
sabine79 10 Geschrieben 15. Juni 2008 Autor Melden Teilen Geschrieben 15. Juni 2008 Hallo ZeroKnowledge, dein Script öffnet mir für jeden Prozess ein Fenster mit den Infos. Das ist nicht das was ich mir vorstelle. Ich brauche die Informationen in einer Datei gesammelt. Ich hab mich mal an Perl ran gewagt: use Win32::OLE('in'); $computer = "."; $objWMIService = Win32::OLE->GetObject ("winmgmts:\\\\$computer\\root\\CIMV2") or die "WMI connection failed.\n"; $colItems = $objWMIService->ExecQuery ("SELECT * FROM Win32_Process"); foreach my $objItem (in $colItems) { print "SessionId: $objItem->{SessionId}, "; print "ProcessId: $objItem->{ProcessId}, "; print "Description: $objItem->{Description}\n"; print "WorkingSetSize: $objItem->{WorkingSetSize}\n"; print "\n"; } Jetzt fehlt mir nur noch der Benutzername, der den Prozess ausführt. Auf der MSDN-Seite Win32_Process Class (Windows) steht was von getowner um den Benutzer eines Prozesses zubekommen. Leider kann ich damit nicht viel anfangen. Kann mir jemand sagen wie ich das in Perl einbinden kann. Gruß, Bine Zitieren Link zu diesem Kommentar
blub 115 Geschrieben 15. Juni 2008 Melden Teilen Geschrieben 15. Juni 2008 Hallo Sabine, Hast du dir mal überlegt dich an Powershell heranzuwagen. Damit gehts m.E. sehr elegant cu blub #powershell 1.0 #15.6.2008 #blub@mcseboard.de $processes=get-wmiobject -query "select * from win32_process" foreach ($process in $processes) { $process.name + " "+ $process.WorkingSetSize + " " + $process.getowner().user } ...... svchost.exe 6885376 SYSTEM vssrvc.exe 9572352 NETWORK SERVICE svchost.exe 4313088 SYSTEM explorer.exe 28004352 Administrator CLI.exe 10190848 Administrator ... Zitieren Link zu diesem Kommentar
ZeroKnowledge 11 Geschrieben 15. Juni 2008 Melden Teilen Geschrieben 15. Juni 2008 Mal zu meinem Lösungsvorschlag. Ruf das Script wie folgt auf cscript.exe [script] Gibt alles in einem Konsolenfenster aus cscript.exe [script]>[dateiname] Leitet die Ausgabe in eine Datei um Wenn du natürlich die Powershell verwenden kannst, wäre das die einfachste Möglichkeit. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.