TerminateProcess 不适用于已验证的进程 ID
Posted
技术标签:
【中文标题】TerminateProcess 不适用于已验证的进程 ID【英文标题】:TerminateProcess doesnt work for verified process id 【发布时间】:2011-10-23 21:27:43 【问题描述】:我正在开发应该终止具有给定名称的进程的应用程序。 我使用的操作系统是windows 7。问题是,对于任务管理器中列出的具有非空白用户名字段的所有进程,它都可以正常工作。但是,当一个进程的用户名为空时,即使任务管理器也无法杀死。
谁能告诉我为什么有些进程没有用户名。就我而言,它是 csrss.exe winlogon.exe,不幸的是,我想杀死一个旧应用程序。我检查的所有其他进程都有一个正确的用户名。
有没有办法给现有进程添加用户名?
谁能推荐我比杀死应用程序更好的解决方案 终止进程()?
【问题讨论】:
GetLastError
的结果是什么?
当我使用 GetLastError 时,我总是得到 0x6
【参考方案1】:
这些进程无法终止,因为您没有这样做的特权。您必须以提升的权限执行您的应用程序才能正常工作。没有别的办法。
【讨论】:
我试过提升,但没有帮助。我什至尝试在任务管理器中为我的进程(用户名为空)点击结束进程按钮,尽管我是管理员,但我收到拒绝访问错误。我可以终止所有其他对系统有害的系统进程,但那些没有用户名的系统进程 - 没办法。这对我来说很奇怪,我不知道这是怎么回事 您可能需要将自己提升到系统权限,而不仅仅是管理员权限。尝试使用 psexec -s 运行程序,然后看看它是否有效。该应用程序是从常规用户帐户启动的问题,还是特殊的?可能有一个内核模式组件来保护它,比如杀毒软件?以上是关于TerminateProcess 不适用于已验证的进程 ID的主要内容,如果未能解决你的问题,请参考以下文章
具有 Azure AD 身份验证的 Azure 函数 - 允许的令牌受众不适用于 Microsoft Graph