Powershell:退出程序是否比Stop-Process更安全

时间:2017-09-18 19:21:01

标签: powershell crash

通常当我想关闭崩溃的应用程序时,我采用两步法。比方说,我想退出RStudio,我会这样做

PS C:\Users\Admin\> Get-Process rstudio

Handles NPM(K)  PM(K)     WS(K)  VM(K)  CPU(s)    Id ProcessName
    210    89  158144    133840   570    2.67   4508 rstudio

PS C:\Users\Admin\> Stop-Process 4508

这有效地杀死了该计划。

我担心的是:如果有人错误地输入了错误的Id并且所提供的价值恰好与导致严重损害的其他一些过程同时发生了什么?是否有安全网可以用来防止这种情况?

1 个答案:

答案 0 :(得分:3)

Stop-Process相当低级且简单明了,但是,与许多PowerShell cmdlet一样,您可以指定Confirm通用参数来为您提供一些安全网:

PS C:\Users\example> Stop-Process -Confirm 11644

Confirm
Are you sure you want to perform this action?
Performing the operation "Stop-Process" on target "notepad (11644)".
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

上面的示例通过其PID来杀死notepad.exe进程,但是通过添加-Confirm,PowerShell会在杀死进程之前提示您并显示进程名称,以便您可以验证它确实是你要终止的过程。