[英]Kill only a specific Command Prompt Process Remotely with PowerShell
我正在尝试编写脚本以远程终止特定的命令提示符过程。 如果我在本地运行get-process,我可以看到可以通过在“ MainWindowTitle”字段中设置的内容来缩小CMD.exe进程的范围。
如果我使用Get-Process -computer name或CIMInstance,则字段“ MainTitleWindow”将返回为空白。
$ses = New-CimSession -ComputerName $computer -Credential $cred
$process = Get-CimInstance -ClassName CIM_process -CimSession $ses -filter "name = 'cmd.exe'"
$process | Select-Object name,MainWindowTitle
Remove-CimSession -CimSession $ses
name MainWindowTitle
---- ---------------
cmd.exe
从MSDN提取:
仅当流程具有图形界面时,流程才具有与之关联的主窗口。 如果关联的进程没有主窗口(因此MainWindowHandle为零),则MainWindowTitle为空字符串(“”)。
更多信息在这里 。
我试图与其他过程进行比较,但结果是相同的...
$ Process = Get-CimInstance CIM_Process -CimSession $ Ses | Where-Object {$ ProcessNames-包含$ _。Name}
使用此方法,您还可以获得ProcessID和ParentProcessID。 然后,您可以使用类似的命令来查找使用主脚本的ParentProcessID的CMD进程。 您必须同时关闭脚本的主要过程和命令提示符,否则脚本将继续运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.