以编程方式禁用用户访问控制以在控制台应用程序中运行命

时间:2015-03-06 09:30:40

标签: c# console-application

我创建了一个用于运行命令提示符的控制台应用程序。现在我想在运行.exe文件时禁用用户访问控制权限。请解决此问题。

我必须从管理员运行此命令。我在清单中更改了requireAdministrator。但我想禁用用户访问控制权限。

这是我的代码:

        Process cmd  = new Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.WorkingDirectory = @"C:\Windows\System32";
        cmd.StartInfo.Verb = "runas";
        cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
        cmd.StartInfo.RedirectStandardInput = true;
        cmd.StartInfo.RedirectStandardOutput = true;
        cmd.StartInfo.CreateNoWindow = true;
        cmd.StartInfo.UseShellExecute = false;
        cmd.Start();
        cmd.StandardInput.WriteLine(command);
        cmd.StandardInput.Flush();
        cmd.StandardInput.Close();
        Console.WriteLine(cmd.StandardOutput.ReadToEnd());

2 个答案:

答案 0 :(得分:0)

如果您运行主机程序(Shift +右键单击 - >运行为)作为要运行cmd.exe的用户,它应该自动运行您在程序中启动的cmd.exe用户。

答案 1 :(得分:0)

您的应用程序无法以编程方式控制UAC行为,因为它是系统级安全功能。

您可以做什么,在您的系统上(您是管理员),是为应用程序exe创建一个提升的快捷方式,并使用它来打开应用程序并避免使用UAC对话框。

见这里:

http://www.thewindowsclub.com/create-elevated-shortcut-run-programs-bypass-uac