Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.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#_Command Line_Admin - Fatal编程技术网

C# 以管理员身份运行命令行程序

C# 以管理员身份运行命令行程序,c#,command-line,admin,C#,Command Line,Admin,我需要以管理员身份运行此程序 string cname = Environment.UserDomainName + "\\" + Environment.UserName; string resetTrust = "netdom /resetpwd /s:server01 /ud:" + cname + "/pd:" + textBoxPassword.Text.Trim(); String output = ExecuteCommandAsAdmin(resetTrust); Message

我需要以管理员身份运行此程序

string cname = Environment.UserDomainName + "\\" + Environment.UserName;
string resetTrust = "netdom /resetpwd /s:server01 /ud:" + cname + "/pd:" + textBoxPassword.Text.Trim();
String output = ExecuteCommandAsAdmin(resetTrust);
MessageBox.Show(output);
下面是ExecuteCommandAsAdmin方法

public static string ExecuteCommandAsAdmin(string command)
{
    string cname = Environment.UserDomainName + "\\" + Environment.UserName;

    ProcessStartInfo procStartInfo = new ProcessStartInfo()
    {
        RedirectStandardError = true,
        RedirectStandardOutput = true,
        UseShellExecute = false,
        CreateNoWindow = true,
        FileName = "runas.exe",
        Arguments = "/user:" + cname + "\"cmd /K " + command + "\""
    };

    using (Process proc = new Process())
    {
        proc.StartInfo = procStartInfo;
        proc.Start();

        string output = proc.StandardOutput.ReadToEnd();

        if (string.IsNullOrEmpty(output))
            output = proc.StandardError.ReadToEnd();

        return output;
    }
}
如果你知道更好的方法,请告诉我。我没有存储密码。只是传递它以便执行它。如果错误的人输入了错误的密码,因为他们不是管理员,所以不会发生任何事情


谢谢

使用
运行方式/用户:name@domaincmd

我看不出有问题。。。你没有硬编码任何东西。这可能不是一个合法的问题,因为您没有编码问题。您正在征求更多意见。可能的重复定义您以管理员身份运行的含义。管理员是一个用户或其中包含用户的组。并不是所有的命令都是用“标准”帐户执行的。那么它是哪一个呢?您必须选择一个用户。内置的
管理员
?不管怎样,我认为你做错了。我认为您需要使用
runas
动词来提升,或者使用清单在启动时强制提升,或者将其释放到具有该清单的可执行文件。为什么您选择尝试使用
runas.exe