2016-05-03 13 views
0

Momentan arbeite ich mit einer Business-Automatisierungssoftware, die Idee ist, Roboter simulieren Benutzeraktionen. Gibt es eine Möglichkeit, über die Powershell auf den Task-Manager zuzugreifen, da die Roboter den Task-Manager manipulieren sollen. Geben Sie beispielsweise einen Wert ein, um eine neue Task zu starten, einen Prozess zu beenden und die Leistung der CPU anzuzeigen. Ich weiß, dass dies mit Powershell-Skripten oder noch besser mit Vb-Skript erreicht werden kann. Bitte wie erreiche ich das?Abrufen von Informationen aus dem Task-Manager mithilfe von Powershell

Für die Datensätze verwende ich eine Windows 7-Maschine mit Powershell-Version 3.0.

+2

Welche Art von Robotern? –

+0

@ MathiasR.Jessen Mehr wie virtuelle Maschinen. Das Robotersystem heißt Blue Prism – Tola

Antwort

0

Versuchen Sie get-process für eine Liste der laufenden Prozesse.

Mit d. H. get-process myprocess |stop-process können Sie myprocess stoppen.

Für neue Prozesse können Sie sie (& C:\Windows\System32\taskmgr.exe) oder benutzen & die start-process (überprüfen Get-help Start-Process for help) Cmdlets. Sie können auch Invoke-WmiMethod für diesen Einsatz:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList taskmgr.exe'

1

Liste laufende Prozesse und Rechner beenden.

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") 

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process") 

For Each objItem in colItems 
    msgbox objItem.ProcessID & " " & objItem.CommandLine 
    If objItem.name = "Calculator.exe" then objItem.terminate 
Next 

Monitor für Notizblock Beenden und neu starten.

Ebenfalls erhältlich ist Win32_ProcessStartTrace und Win32_ProcessStartStopTrace

Set WshShell = WScript.CreateObject("WScript.Shell") 
Set objWMIService = GetObject("winmgmts:\\.\root\CIMV2") 
Set objEvents = objWMIService.ExecNotificationQuery _ 
    ("SELECT * FROM Win32_ProcessStopTrace") 

Do 
    Set objReceivedEvent = objEvents.NextEvent 
    msgbox objReceivedEvent.ProcessName 
    If lcase(objReceivedEvent.ProcessName) = lcase("Notepad.exe") then 
     Msgbox "Process exited with exit code " & objReceivedEvent.ExitStatus 
     WshShell.Run "c:\Windows\notepad.exe", 1, false 
    End If 
Loop 

Das WMIC-Befehlszeile-Programm verwendet gleichen Klassen wie vbscript (und Powershell), so dass Sie es für die Hilfe nutzen können.

wmic /? 
wmic path win32_process /? 

oder die nur unter Verwendung von in wmic Aliase process alias für win32_process

wmic process /? 
wmic process call /? 
wmic process get /? 

und für andere Verwendungen von wmic

wmic /node /? 
wmic /format /?