如何创建在任务管理器或服务列表中不可见的进程

可能重复:
从任务管理器隐藏C#程序?

我需要创建一个企业级活动监视器进程,其中用户不应该使用任务管理器或其他方法终止。 也许它应该是一个隐藏的过程。 这可能吗? 有没有解决方法? 我更喜欢使用C#然后使用C# C++ (使用Visual C ++编译器)。

谢谢你

有关:

从任务管理器隐藏C#程序?

https://stackoverflow.com/questions/759466/is-it-possible-to-hide-console-c-application-from-task-manager

简短的回答是:不,你不能(合法地)将它隐藏在任务管理器中,除非你用Windows服务包装它。 有多种方法可以阻止您的应用程序关闭。

关于“我如何阻止用户做X”的主题,答案是安全性。 如果您希望用户拥有对其计算机的完全访问权限,则无法限制他们。 如果要限制用户,请相应地更改安全策略。

“但是我的员工不会喜欢我们不相信他们的完全管理员权利的想法” – 老实说,你不相信他们; 这就是你实现这个的原因。 你不希望员工欺骗你,他们也应该期待你。

除了别人说的, 一个更简单的解决方案是创建两个进程 – 一个REAL进程,一个“sentinel”。 基本上,每100ms左右,只需快速检查一下,看看其他过程是否健康,如果不是,请启动它。 这很容易解决(例如使用kill.exe ),但考虑到您的用户是完全管理员,其他所有解决方案也是如此。

真正阻止他们杀死您的应用程序的合法解决方案是通过典型的Windows安全限制访问 – 限制用户访问该进程。 不是通过廉价的隐藏和混淆。