Stop-Process

Menghentikan satu atau beberapa proses yang sedang berjalan.

Sintaks

Stop-Process
    [-Id] <Int32[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Process
    -Name <String[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]
Stop-Process
    [-InputObject] <Process[]>
    [-PassThru]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Deskripsi

Stop-Process Cmdlet menghentikan satu atau beberapa proses yang sedang berjalan. Anda dapat menentukan proses berdasarkan nama proses atau ID proses (PID), atau meneruskan objek proses ke Stop-Process. Stop-Process hanya berfungsi pada proses yang berjalan di komputer lokal.

Pada Windows Vista dan versi sistem operasi Windows yang lebih baru, untuk menghentikan proses yang tidak dimiliki oleh pengguna saat ini, Anda harus memulai PowerShell dengan menggunakan opsi Jalankan sebagai administrator. Selain itu , Anda tidak dimintai konfirmasi kecuali Anda menentukan parameter Konfirmasi .

Contoh

Contoh 1: Menghentikan semua instans proses

PS C:\> Stop-Process -Name "notepad"

Perintah ini menghentikan semua instans proses Notepad di komputer. Setiap instans Notepad berjalan dalam prosesnya sendiri. Ini menggunakan parameter Nama untuk menentukan proses, yang semuanya memiliki nama yang sama. Jika Anda menggunakan parameter Id untuk menghentikan proses yang sama, Anda harus mencantumkan ID proses dari setiap instans Notepad.

Contoh 2: Menghentikan instans tertentu dari proses

PS C:\> Stop-Process -Id 3952 -Confirm -PassThru

Confirm
Are you sure you want to perform this action?
Performing operation "Stop-Process" on Target "notepad (3952)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help
(default is "Y"):y
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
41       2      996       3212    31            3952 notepad

Perintah ini menghentikan instans tertentu dari proses Notepad. Ini menggunakan ID proses, 3952, untuk mengidentifikasi proses. Parameter Konfirmasi mengarahkan PowerShell untuk meminta Anda sebelum menghentikan proses. Karena prompt menyertakan nama proses sebagai tambahan untuk ID-nya, ini adalah praktik terbaik. Parameter PassThru meneruskan objek proses ke pemformat untuk ditampilkan. Tanpa parameter ini, tidak akan ada tampilan setelah perintah Stop-Process .

Contoh 3: Hentikan proses dan deteksi bahwa proses telah berhenti

calc
$p = Get-Process -Name "calc"
Stop-Process -InputObject $p
Get-Process | Where-Object {$_.HasExited}

Rangkaian perintah ini memulai dan menghentikan Calc proses, lalu mendeteksi proses yang telah berhenti.

Perintah pertama memulai instans kalkulator.

Perintah kedua menggunakan Get-Process mendapatkan objek yang mewakili Calc proses, lalu menyimpannya dalam $p variabel.

Perintah ketiga menghentikan Calc proses. Ini menggunakan parameter InputObject untuk meneruskan objek ke Stop-Process.

Perintah terakhir mendapatkan semua proses pada komputer yang sedang berjalan tetapi sekarang dihentikan. Ini menggunakan Get-Process untuk mendapatkan semua proses di komputer. Operator alur (|) meneruskan hasil ke Where-Object cmdlet, yang memilih yang mana nilai properti HasExited $True. HasExited hanyalah satu properti objek proses. Untuk menemukan semua properti, ketik Get-Process | Get-Member.

Contoh 4: Menghentikan proses yang tidak dimiliki oleh pengguna saat ini

PS> Get-Process -Name "lsass" | Stop-Process

Stop-Process : Cannot stop process 'lsass (596)' because of the following error: Access is denied
At line:1 char:34
+ Get-Process -Name "lsass" | Stop-Process <<<<

[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process

Warning!
Are you sure you want to perform this action?
Performing operation 'Stop-Process' on Target 'lsass(596)'
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

[ADMIN]: PS> Get-Process -Name "lsass" | Stop-Process -Force
[ADMIN]: PS>

Perintah ini menunjukkan efek penggunaan Force untuk menghentikan proses yang tidak dimiliki oleh pengguna.

Perintah pertama menggunakan Get-Process untuk mendapatkan proses Lsass. Operator alur mengirimkan proses untuk Stop-Process menghentikannya. Seperti yang ditunjukkan dalam output sampel, perintah pertama gagal dengan pesan Akses ditolak, karena proses ini hanya dapat dihentikan oleh anggota grup Administrator di komputer.

Saat PowerShell dibuka dengan menggunakan opsi Jalankan sebagai administrator, dan perintah diulang, PowerShell meminta konfirmasi kepada Anda.

Perintah kedua menentukan Force untuk menekan prompt. Akibatnya, proses dihentikan tanpa konfirmasi.

Parameter

-Confirm

Meminta Anda mengonfirmasi sebelum menjalankan cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Menghentikan proses yang ditentukan tanpa meminta konfirmasi. Secara default, Stop-Process meminta konfirmasi sebelum menghentikan proses apa pun yang tidak dimiliki oleh pengguna saat ini.

Untuk menemukan pemilik proses, gunakan Get-CimInstance cmdlet untuk mendapatkan objek Win32_Process yang mewakili proses, lalu gunakan metode GetOwner objek.

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

-Id

Menentukan ID proses yang akan dihentikan. Untuk menentukan beberapa ID, gunakan koma untuk memisahkan ID. Untuk menemukan PID proses, ketik Get-Process.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Menentukan objek proses yang akan dihentikan. Masukkan variabel yang berisi objek, atau ketik perintah atau ekspresi yang mendapatkan objek.

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

-Name

Menentukan nama proses yang akan dihentikan. Anda dapat mengetik beberapa nama proses, dipisahkan oleh koma, atau menggunakan karakter kartubebas.

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

-PassThru

Mengembalikan objek yang mewakili proses. Secara default, cmdlet ini tidak menghasilkan output apa pun.

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

-WhatIf

Menunjukkan apa yang akan terjadi jika cmdlet berjalan. Cmdlet tidak dijalankan.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

Process

Anda dapat menyalurkan objek proses ke cmdlet ini.

Output

None

Secara default, cmdlet ini tidak mengembalikan output.

Process

Saat Anda menggunakan parameter PassThru, cmdlet ini mengembalikan objek Proses yang mewakili proses yang dihentikan.

Catatan

Windows PowerShell menyertakan alias berikut untuk Stop-Process:

  • kill

  • spps

    Anda juga dapat menggunakan properti dan metode objek Win32_Process Windows Management Instrumentation (WMI) di Windows PowerShell. Untuk informasi selengkapnya, lihat Get-CimInstance dan WMI SDK.

  • Saat menghentikan proses, menyadari bahwa menghentikan proses dapat menghentikan proses dan layanan yang bergantung pada prosesnya. Dalam kasus ekstrem, menghentikan proses dapat menghentikan Windows.