Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在操作系统加固的计算机中使用c#禁用任务管理器_C# - Fatal编程技术网

在操作系统加固的计算机中使用c#禁用任务管理器

在操作系统加固的计算机中使用c#禁用任务管理器,c#,C#,我正在使用下面的代码为一个工作正常的kiosk应用程序禁用任务管理器 public void DisableTaskManager() { RegistryKey regkey; string keyValueInt = "1"; string subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System"; try

我正在使用下面的代码为一个工作正常的kiosk应用程序禁用任务管理器

    public void DisableTaskManager()
    {
        RegistryKey regkey;
        string keyValueInt = "1";
        string subKey = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";

        try
        {
            regkey = Registry.CurrentUser.CreateSubKey(subKey);
            regkey.SetValue("DisableTaskMgr", keyValueInt);
            regkey.Close();
        }
        catch (Exception ex)
        {
            MessageBox.Show("DisableTaskManager" + ex.ToString());
        }
    }
但当我在操作系统加固的机器上运行时,我得到以下错误:

DisableTaskManagerSystem.UnauthorizedAccessException: 
Access to the registry key 'HKey_Current_User\Software\Mictrosoft\Windows\CurrentVersion\Policies\System' is denied.
at Microsoft.win32.RegistryKey.win32Error(int32 errorcode, String str)

我怎样才能克服这个问题?我需要为一个Kiosk应用程序这样做。

看看这个,我还不是一个好的C#开发人员来评论,但我知道在我与其他开发人员合作的过程中,他们在Windows7中访问了UAC,如果这是我们在这里讨论的话


好吧,安装那台机器的人基本上问了相反的问题。。。“如何防止非管理员干扰组策略”。因此,与其参与组策略军备竞赛,不如在以管理员身份运行时在安装时进行,或者在不以具有权限的用户身份运行时跳过该部分代码。

不要让应用程序禁用任务管理器,而是使用windows服务或计划任务。您的应用程序将在当前用户的上下文中运行,并且将无权访问注册表项。相反,您可以创建windows服务或计划任务,该任务可以作为具有更高权限的用户运行,并可以写入注册表


使用windows服务,您可以通过任何IPC机制(如自定义服务消息、套接字、.NET远程处理、WCF或其他)与它通信,以告诉它打开/关闭任务管理器。

代码需要提升权限才能访问注册表。然而,只有一段代码需要这些额外的权限。为了处理此类场景,将使用模拟,即您将仅以普通用户的身份执行此应用程序,但该特定代码段将以管理员的身份执行


我明白你为什么要这么做,但为什么要麻烦呢?在kiosk模式下运行时,它应该以低权限用户的身份运行,任何启动任务管理器的人实际上都无法使用它。@slugster,所以不可能?如果您登录的用户名必须没有足够的权限,请尝试在“gpedit.msc”中嗅探是否有任何注册表实体被禁用,这可能有助于您进一步追踪问题。我想我可能已经找到了答案,清单文件在windows XP中可用,并在Vista 7中得到了改进。这说明您必须通过清单文件授予应用程序权限。