Odpowiedzi:
Praca z cmd.exe:
Jeśli masz PowerShell :
Przez WMI:
proces WMIC
(możesz również odpytywać zdalne komputery /node:ComputerOrIP
, a istnieje wiele sposobów na dostosowanie tego polecenia: link )
Istnieje narzędzie o nazwie Narzędzie wiersza polecenia Instrumentacji zarządzania Windows (wmic.exe) .
Możesz zadzwonić, wmic process list
aby zobaczyć wszystkie procesy.
Chciałem wspomnieć, że WMIC (wpis pam) może zrobić znacznie więcej. Rzuć okiem na moją stronę z fragmentami WMIC, która jest ściągą pokazującą wiele typowych sposobów używania WMIC (z pokazanymi przykładowymi danymi wyjściowymi) tutaj
Lista zadań
WMIC /OUTPUT:C:\ProcessList.txt PROCESS get Caption, Commandline, Processid
lub
WMIC /OUTPUT:C:\ProcessList.txt path win32_process get Caption,Processid,Commandline
Próbowałem w systemie Windows 7. Polecenie to: TASKLIST /FI "IMAGENAME eq application_name"
Na przykład: c:\>TASKLIST /FI "IMAGENAME eq notepad.exe"
Aby wyświetlić cały proces ze szczegółami portów:
c:\> TASKLIST
Również, aby zabić proces, którego możesz użyć c:\> pskill or tskill processname
Na przykład: c:\> tskill notepad
TASKLIST /FI "IMAGENAME eq explorer.exe"
zwraca jedną linię jako wynik. Czy w ogóle można uzyskać sam PID?
taskkill
jest równoznaczne ztskill
tskill
tylko taskkill
i pskill
jest dostarczany przez SysInternals, ale nie przez Windows. (@KiritoBepsibane)
tasklist lub pslist z sysinternals. Poza tym get-process jest niesamowity z PowerShell .
Jeśli używasz programu PowerShell , ma polecenie „ps” (jest aliasowane do Get-Process)
Użyj tego polecenia, aby zobaczyć wszystkie procesy na komputerze z systemem Windows
tasklist / svc
tasklist|findstr "firefox.exe"
. Jeśli zwraca errorlevel
1, proces został znaleziony na liście procesów.
findstr
nie potrzebuje cudzysłowów wokół igły, chyba że zawiera spację lub znak specjalny, taki jak i chociaż find
tak jest, i obie zwracają 1 za NIE znalezione (0 za znalezione).
Aby zabić proces, użyj:
TASKKILL /F /IM processname.exe
Na przykład:
TASKKILL /F /IM firefox.exe
Miałem następujący problem w systemie Windows 2003 SP2: Tasklist nie zwrócił żadnych danych wyjściowych na stdout lub stderr, gdy został wywołany z procesu uruchomionego jako usługa systemu Windows (nawet pod kontem lokalnym). Tasklist powrócił z (nieudokumentowanym) kodem 128.
Wywołany z tego samego programu, uruchomiony jako normalny proces (nie jako usługa), uruchomił się.
Brak pomocy, aby to zmienić. Nie mogłem znaleźć żadnego powodu ani rozwiązania, ale zamiast tego używam „pslist / accepteula” sysinternal.
Ten sam problem z Taskkillem: musiałem go zastąpić pskill.
Zrobiłem msproject (kod źródłowy c), archiwum jest dostępne pod: archiwum projektu lsproc.zip
i plik exe: plik binarny lsproc.exe
to wyjście narzędzia wiersza poleceń:
lsproc
Thierry Bremard
t.bremard@gmail.com
list binary files and driver with their local path on disks
most of code retreived from msdn site
--------------------
Process ID: 0
--------------------
Process ID: 4
<unknown> (PID: 4)
<unknown>
PageFaultCount : 0x00002E4B
PeakWorkingSetSize : 0x00419000
WorkingSetSize (Mem usage) : 0x0003A000 (232 ko)
QuotaPeakPagedPoolUsage : 0x00000000
QuotaPagedPoolUsage : 0x00000000
QuotaPeakNonPagedPoolUsage : 0x00000000
QuotaNonPagedPoolUsage : 0x00000000
PagefileUsage : 0x00000000
PeakPagefileUsage : 0x00000000
--------------------
Process ID: 764
smss.exe (PID: 764)
\SystemRoot\System32\smss.exe
PageFaultCount : 0x000000D6
PeakWorkingSetSize : 0x00082000
WorkingSetSize (Mem usage) : 0x0006C000 (432 ko)
QuotaPeakPagedPoolUsage : 0x00006C34
QuotaPagedPoolUsage : 0x00001854
QuotaPeakNonPagedPoolUsage : 0x000004D8
QuotaNonPagedPoolUsage : 0x00000280
PagefileUsage : 0x0002C000
PeakPagefileUsage : 0x00030000
--------------------
Process ID: 816
--------------------
Process ID: 844
winlogon.exe (PID: 844)
\??\C:\WINDOWS\system32\winlogon.exe
PageFaultCount : 0x0000261D
PeakWorkingSetSize : 0x00B58000
WorkingSetSize (Mem usage) : 0x0029B000 (2668 ko)
QuotaPeakPagedPoolUsage : 0x0001B054
QuotaPagedPoolUsage : 0x000185A4
QuotaPeakNonPagedPoolUsage : 0x0000C988
QuotaNonPagedPoolUsage : 0x0000B6A0
PagefileUsage : 0x005EC000
PeakPagefileUsage : 0x006C6000
--------------------
...
PeakPagefileUsage : 0x03277000
--------------------
Process ID: 2712
lsproc.exe (PID: 2712)
C:\Documents and Settings\LoginX\Bureau\lsproc.exe
PageFaultCount : 0x000000EC
PeakWorkingSetSize : 0x000F1000
WorkingSetSize (Mem usage) : 0x000E4000 (912 ko)
QuotaPeakPagedPoolUsage : 0x000032B4
QuotaPagedPoolUsage : 0x000032B4
QuotaPeakNonPagedPoolUsage : 0x00000400
QuotaNonPagedPoolUsage : 0x00000398
PagefileUsage : 0x00042000
PeakPagefileUsage : 0x0005C000
There are 131 drivers:
--------------------
1: ntkrnlpa.exe
\WINDOWS\system32\ntkrnlpa.exe
--------------------
2: hal.dll
\WINDOWS\system32\hal.dll
--------------------
3: KDCOM.DLL
\WINDOWS\system32\KDCOM.DLL
--------------------
4: BOOTVID.dll
\WINDOWS\system32\BOOTVID.dll
...
--------------------
129: HTTP.sys
\SystemRoot\System32\Drivers\HTTP.sys
--------------------
130: hiber_WMILIB.SYS
\SystemRoot\System32\Drivers\hiber_WMILIB.SYS
--------------------
131: ntdll.dll
\WINDOWS\system32\ntdll.dll
--------------
Witaj, jeśli chcesz wyświetlić listę uruchomionych identyfikatorów procesów na komputerze z systemem Windows, otwórz cmd
ekran i wpisz:
netstat -aon | more
użyj Enterklawisza do przewijania.