Get-Process

Pobiera procesy uruchomione na komputerze lokalnym.

Składnia

Get-Process
   [[-Name] <String[]>]
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   [[-Name] <String[]>]
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -Id <Int32[]>
   -IncludeUserName
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   [-Module]
   [-FileVersionInfo]
   [<CommonParameters>]
Get-Process
   -InputObject <Process[]>
   -IncludeUserName
   [<CommonParameters>]

Opis

Polecenie Get-Process cmdlet pobiera procesy na komputerze lokalnym lub zdalnym.

Bez parametrów to polecenie cmdlet pobiera wszystkie procesy na komputerze lokalnym. Można również określić określony proces według nazwy procesu lub identyfikatora procesu (PID) lub przekazać obiekt procesu za pośrednictwem potoku do tego polecenia cmdlet.

Domyślnie to polecenie cmdlet zwraca obiekt procesu zawierający szczegółowe informacje o procesie i obsługuje metody, które umożliwiają rozpoczęcie i zatrzymanie procesu. Możesz również użyć parametrów Get-Process polecenia cmdlet, aby uzyskać informacje o wersji pliku dla programu uruchamianego w procesie i pobrać moduły załadowane przez proces.

Przykłady

Przykład 1: Pobieranie listy wszystkich aktywnych procesów na komputerze lokalnym

Get-Process

To polecenie pobiera listę wszystkich aktywnych procesów uruchomionych na komputerze lokalnym. Aby uzyskać definicję każdej kolumny, zobacz sekcję Uwagi .

Przykład 2. Pobieranie wszystkich dostępnych danych dotyczących co najmniej jednego procesu

Get-Process winword, explorer | Format-List *

To polecenie pobiera wszystkie dostępne dane dotyczące procesów Winword i Explorer na komputerze. Używa parametru Name do określenia procesów, ale pomija opcjonalną nazwę parametru. Operator potoku (|) przekazuje dane do Format-List polecenia cmdlet, które wyświetla wszystkie dostępne właściwości (*) obiektów procesu Winword i Explorer.

Możesz również zidentyfikować procesy według ich identyfikatorów procesów. Na przykład Get-Process -Id 664, 2060.

Przykład 3. Pobieranie wszystkich procesów z zestawem roboczym większym niż określony rozmiar

Get-Process | Where-Object {$_.WorkingSet -gt 20000000}

To polecenie pobiera wszystkie procesy, które mają zestaw roboczy większy niż 20 MB. Używa polecenia cmdlet do pobierania Get-Process wszystkich uruchomionych procesów. Operator potoku (|) przekazuje obiekty procesu do Where-Object polecenia cmdlet, które wybiera tylko obiekt o wartości większej niż 20 000 000 bajtów dla właściwości WorkingSet .

WorkingSet jest jedną z wielu właściwości obiektów procesu. Aby wyświetlić wszystkie właściwości, wpisz Get-Process | Get-Member. Domyślnie wartości wszystkich właściwości ilości są w bajtach, mimo że domyślne wyświetlanie wyświetla je w kilobajtach i megabajtach.

Przykład 4: Wyświetlanie listy procesów na komputerze w grupach na podstawie priorytetu

$A = Get-Process
$A | Get-Process | Format-Table -View priority

Te polecenia zawierają listę procesów na komputerze w grupach na podstawie ich klasy priorytetu. Pierwsze polecenie pobiera wszystkie procesy na komputerze, a następnie zapisuje je w zmiennej $A .

Drugie polecenie potokuje obiekt Process przechowywany w zmiennej $A do Get-Process polecenia cmdlet, a następnie do Format-Table polecenia cmdlet, który formatuje procesy przy użyciu widoku Priorytet .

Widok Priorytet i inne widoki są definiowane w plikach formatu PS1XML w katalogu głównym programu PowerShell ($pshome).

Przykład 5. Dodawanie właściwości do standardowego wyświetlania danych wyjściowych Get-Process

Get-Process pwsh | Format-Table `
    @{Label = "NPM(K)"; Expression = {[int]($_.NPM / 1024)}},
    @{Label = "PM(K)"; Expression = {[int]($_.PM / 1024)}},
    @{Label = "WS(K)"; Expression = {[int]($_.WS / 1024)}},
    @{Label = "VM(M)"; Expression = {[int]($_.VM / 1MB)}},
    @{Label = "CPU(s)"; Expression = {if ($_.CPU) {$_.CPU.ToString("N")}}},
    Id, MachineName, ProcessName -AutoSize

NPM(K) PM(K) WS(K) VM(M) CPU(s)   Id MachineName ProcessName
------ ----- ----- ----- ------   -- ----------- -----------
     6 23500 31340   142 1.70   1980 .           pwsh
     6 23500 31348   142 2.75   4016 .           pwsh
    27 54572 54520   576 5.52   4428 .           pwsh

Ten przykład pobiera procesy z komputera lokalnego i komputera zdalnego (S1). Pobrane procesy są przesyłane potokami do Format-Table polecenia, które dodaje właściwość MachineName do standardowego Get-Process wyświetlania danych wyjściowych.

Przykład 6. Pobieranie informacji o wersji dla procesu

Get-Process pwsh -FileVersionInfo

ProductVersion   FileVersion      FileName
--------------   -----------      --------
6.1.2            6.1.2            C:\Program Files\PowerShell\6\pwsh.exe

To polecenie używa parametru FileVersionInfo , aby uzyskać informacje o pwsh.exe wersji pliku, który jest głównym modułem procesu programu PowerShell.

Aby uruchomić to polecenie z procesami, które nie są własnością w systemie Windows Vista i nowszych wersjach systemu Windows, należy otworzyć program PowerShell z opcją Uruchom jako administrator .

Przykład 7. Pobieranie modułów załadowanych przy użyciu określonego procesu

Get-Process SQL* -Module

To polecenie używa parametru Module do pobrania modułów, które zostały załadowane przez proces. To polecenie pobiera moduły dla procesów, które mają nazwy rozpoczynające się od SQL.

Aby uruchomić to polecenie w systemie Windows Vista i nowszych wersjach systemu Windows z procesami, których nie jesteś właścicielem, należy uruchomić program PowerShell z opcją Uruchom jako administrator .

Przykład 8. Znajdowanie właściciela procesu

Get-Process pwsh -IncludeUserName

Handles      WS(K)   CPU(s)     Id UserName            ProcessName
-------      -----   ------     -- --------            -----------
    782     132080     2.08   2188 DOMAIN01\user01     pwsh

To polecenie pokazuje, jak znaleźć właściciela procesu. W systemie Windows parametr IncludeUserName wymaga podwyższonego poziomu uprawnień użytkownika (Uruchom jako administrator). Dane wyjściowe ujawniają, że właścicielem jest Domain01\user01.

Przykład 9: Używanie zmiennej automatycznej do identyfikowania procesu hostowania bieżącej sesji

Get-Process pwsh

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21     105.95       4.33    1192  10 pwsh
    79    83.81     117.61       2.16   10580  10 pwsh

Get-Process -Id $PID

NPM(K)    PM(M)      WS(M)     CPU(s)      Id  SI ProcessName
------    -----      -----     ------      --  -- -----------
    83    96.21      77.53       4.39    1192  10 pwsh

Te polecenia pokazują, jak używać zmiennej automatycznej $PID do identyfikowania procesu, który hostuje bieżącą sesję programu PowerShell. Ta metoda umożliwia odróżnienie procesu hosta od innych procesów programu PowerShell, które można zatrzymać lub zamknąć.

Pierwsze polecenie pobiera wszystkie procesy programu PowerShell w bieżącej sesji.

Drugie polecenie pobiera proces programu PowerShell hostujący bieżącą sesję.

Przykład 10: Pobieranie wszystkich procesów, które mają tytuł głównego okna i wyświetlanie ich w tabeli

Get-Process | Where-Object {$_.mainWindowTitle} | Format-Table Id, Name, mainWindowtitle -AutoSize

To polecenie pobiera wszystkie procesy, które mają tytuł głównego okna, i wyświetla je w tabeli z identyfikatorem procesu i nazwą procesu.

Właściwość mainWindowTitle jest tylko jedną z wielu przydatnych właściwości zwracanego obiektu Get-ProcessProcess. Aby wyświetlić wszystkie właściwości, przekaż wyniki Get-Process polecenia do Get-Member polecenia cmdlet Get-Process | Get-Member.

Parametry

-FileVersionInfo

Wskazuje, że to polecenie cmdlet pobiera informacje o wersji pliku dla programu, który jest uruchamiany w procesie.

W systemie Windows Vista i nowszych wersjach systemu Windows należy otworzyć program PowerShell z opcją Uruchom jako administrator , aby użyć tego parametru w procesach, których nie jesteś właścicielem.

Aby uzyskać informacje o wersji pliku dla procesu na komputerze zdalnym, użyj Invoke-Command polecenia cmdlet .

Użycie tego parametru jest równoważne pobieraniu właściwości MainModule.FileVersionInfo każdego obiektu procesu. Jeśli używasz tego parametru, Get-Process zwraca obiekt FileVersionInfoSystem.Diagnostics.FileVersionInfo, a nie obiekt procesu. W związku z tym nie można przekazać danych wyjściowych polecenia cmdlet do polecenia cmdlet, które oczekuje obiektu procesu, takiego jak Stop-Process.

Type:SwitchParameter
Aliases:FV, FVI
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Id

Określa co najmniej jeden proces według identyfikatora procesu (PID). Aby określić wiele identyfikatorów, użyj przecinków, aby oddzielić identyfikatory. Aby znaleźć identyfikator PID procesu, wpisz Get-Process.

Type:Int32[]
Aliases:PID
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-IncludeUserName

Wskazuje, że wartość UserName obiektu Process jest zwracana z wynikami polecenia.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

Określa co najmniej jeden obiekt procesu. Wprowadź zmienną zawierającą obiekty lub wpisz polecenie lub wyrażenie, które pobiera obiekty.

Type:Process[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False

-Module

Wskazuje, że to polecenie cmdlet pobiera moduły, które zostały załadowane przez procesy.

W systemie Windows Vista i nowszych wersjach systemu Windows należy otworzyć program PowerShell z opcją Uruchom jako administrator , aby użyć tego parametru w procesach, których nie jesteś właścicielem.

Aby pobrać moduły, które zostały załadowane przez proces na komputerze zdalnym, użyj Invoke-Command polecenia cmdlet .

Ten parametr jest odpowiednikiem pobierania właściwości Modules każdego obiektu procesu. Jeśli używasz tego parametru, to polecenie cmdlet zwraca obiekt ProcessModule System.Diagnostics.ProcessModule, a nie obiekt procesu. W związku z tym nie można przekazać danych wyjściowych polecenia cmdlet do polecenia cmdlet, które oczekuje obiektu procesu, takiego jak Stop-Process.

Jeśli używasz zarówno parametrów Module, jak i FileVersionInfo w tym samym poleceniu, to polecenie cmdlet zwraca obiekt FileVersionInfo z informacjami o wersji pliku wszystkich modułów.

Type:SwitchParameter
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

-Name

Określa co najmniej jeden proces według nazwy procesu. Można wpisać wiele nazw procesów (oddzielonych przecinkami) i używać symboli wieloznacznych. Nazwa parametru (Name) jest opcjonalna.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True

Dane wejściowe

Process

Do tego polecenia cmdlet można przekazać obiekt procesu.

Dane wyjściowe

System.Diagnostics.Process, System.Diagnostics.FileVersionInfo, System.Diagnostics.ProcessModule

Domyślnie to polecenie cmdlet zwraca obiekt System.Diagnostics.Process . Jeśli używasz parametru FileVersionInfo , zwraca obiekt System.Diagnostics.FileVersionInfo . Jeśli używasz parametru Module bez parametru FileVersionInfo , zwraca obiekt System.Diagnostics.ProcessModule .

Uwagi

  • Możesz również odwołać się do tego polecenia cmdlet za pomocą wbudowanych aliasów ps i gps. Aby uzyskać więcej informacji, zobacz about_Aliases.
  • Na komputerach z 64-bitową wersją systemu Windows 64-bitowa wersja programu PowerShell otrzymuje tylko 64-bitowe moduły procesu, a 32-bitowa wersja programu PowerShell pobiera tylko 32-bitowe moduły procesu.
  • Można użyć właściwości i metod obiektu instrumentacji zarządzania Windows (WMI) Win32_Process w programie PowerShell. Aby uzyskać informacje, zobacz Get-WmiObject i zestaw WMI SDK.
  • Domyślnym wyświetlaniem procesu jest tabela zawierająca następujące kolumny. Opis wszystkich właściwości obiektów procesu można znaleźć w temacie Właściwości procesu.
    • Uchwyty: liczba otwartych dojść.
    • NPM(K): ilość niestronicowanej pamięci używanej przez proces w kilobajtach.
    • PM(K): Ilość pamięci stronicowalnej używanej przez proces w kilobajtach.
    • WS(K): rozmiar zestawu roboczego procesu w kilobajtach. Zestaw roboczy składa się ze stron pamięci, do których ostatnio odwołuje się proces.
    • VM(M): ilość pamięci wirtualnej używanej przez proces w megabajtach. Pamięć wirtualna obejmuje magazyn w plikach stronicowania na dysku.
    • Procesory CPU: czas procesora używany przez proces we wszystkich procesorach w sekundach.
    • IDENTYFIKATOR: identyfikator procesu (PID) procesu.
    • ProcessName: nazwa procesu. Aby uzyskać wyjaśnienia pojęć związanych z procesami, zobacz Słownik w Centrum pomocy i obsługi technicznej oraz Pomoc dla Menedżera zadań.
  • Możesz również użyć wbudowanych alternatywnych widoków procesów dostępnych w Format-Tableusługach , takich jak StartTime i Priority, i możesz zaprojektować własne widoki.