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

时间:2014-04-17 15:34:04

标签: 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);
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;
    }
}

如果您知道更好的方法,请告知我们。我没有存储密码。只是传递它所以它可以执行。如果错误的人输入了错误的密码,则没有任何反应,因为他们不是管理员。

谢谢

1 个答案:

答案 0 :(得分:0)

使用runas /user:name@domain cmd