我们正在为所有用户开发一个在启动时运行的 .net 应用程序。现在我们想从任务管理器-> 进程列表中隐藏这个应用程序,这样登录的用户就不能删除它。我们使用的是 windows-xp
请让我知道这是否可行
我们正在为所有用户开发一个在启动时运行的 .net 应用程序。现在我们想从任务管理器-> 进程列表中隐藏这个应用程序,这样登录的用户就不能删除它。我们使用的是 windows-xp
请让我知道这是否可行
绝对可以隐藏一个进程;你说的是设计一个rootkit。如果这实际上是您想要做的,请参阅这个问题。
然而,这通常不是解决此问题的正确方法:如果您是一台机器的管理员并且您不希望其他用户终止某个进程,那么您根本不授予他们执行此操作的权限。
让您的用户使用受限的用户帐户登录,并让您的应用程序在不同的帐户下运行。
要可靠地获得登录时间,您可以使用一些 Windows 安全日志,或者如果您在域中,则可以使用 Active Directory 服务:
获得空闲时间更复杂,因为它取决于您认为“空闲”是什么,但如果您认为GetLastInputInfo()
足够,这个问题描述了一种很好的方法,用户进程向系统进程报告:
由于用户无法终止系统进程,因此您可以让其监视用户进程并在必要时重新创建它。
将其隐藏起来:使其作为服务运行,名称看起来应该是 Windows 的一部分。
然后让另一个服务监视这个关闭并重新启动它。
这就是 Windows 安全性的用途。以他/她无法管理服务或终止进程的方式定义用户帐户的权限。
如果情况如您在 Colin 的回答下的评论中描述的那样,那么您可以运行一个服务级进程,该进程在每次被杀死(由用户)时重新生成用户进程。这种方式甚至更简单。您可以使用 WinApi 中的 CreateProcessAsUser 代表用户执行流程:http: //msdn.microsoft.com/en-us/library/ms682429%28v=vs.85%29.aspx