如何使用C#运行远程计算机程序“以管理员身份运行”

时间:2012-12-11 13:06:07

标签: c# remote-server

我在远程计算机上有一个批处理文件。通过右键单击文件并选择“以管理员身份运行”选项来运行此批处理文件。要以编程方式运行此批处理文件(位于远程计算机中),我使用C#ManagementScope类。但是我无法使用ManagementScope类找到任何设置“以管理员身份运行”选项的选项。

我需要代码解决方案(任何示例代码都很棒)来执行该批处理文件。

3 个答案:

答案 0 :(得分:1)

您应该考虑使用c# Process Class。它比使用WMI更快。

您可以传递用户名&密码证书就像这样,它是我之前创建的一个类:

class Logon : Process
{
    internal Logon(string filename, string username, string passwordtxt, string argument)
    {
        StartInfo.Domain = "Your-Domain";
        StartInfo.FileName = filename;
        StartInfo.UserName = username;
        StartInfo.Password = GetSecurePassword(passwordtxt);
        StartInfo.UseShellExecute = false;
        StartInfo.Arguments = argument;
        StartInfo.LoadUserProfile = true;
    }

    public System.Security.SecureString GetSecurePassword(string passwordtxt)
    {
        SecureString SS = new SecureString();
        foreach (char PSW in passwordtxt)
        {
            SS.AppendChar(PSW);
        }

        return SS;
    }
}

在您的应用中,您只需拥有以下内容:

public void verifyuser(string filename, string argument)
{
    try
    {
        var logon = new SecureLogon(
        filename, txtuser.Text, txtpassword.Text, argument);

        logon.Start();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message,"Notification");
    }
}

答案 1 :(得分:0)

您可以使用psexec来执行此操作。

Process.Start("psexec", "params");

答案 2 :(得分:0)

您是否尝试将其添加到“批次”的开头?

runas /user:Administrator Example1Server.exe