我在远程机器上有一个批处理文件。通过右键单击文件并选择“以管理员身份运行”选项来运行此批处理文件。要以编程方式运行此批处理文件(位于远程计算机中),我使用 C# ManagementScope 类。但是我找不到使用 ManagementScope 类设置“以管理员身份运行”选项的任何选项。
我需要代码解决方案(任何示例代码都很好)来执行该批处理文件。
我在远程机器上有一个批处理文件。通过右键单击文件并选择“以管理员身份运行”选项来运行此批处理文件。要以编程方式运行此批处理文件(位于远程计算机中),我使用 C# ManagementScope 类。但是我找不到使用 ManagementScope 类设置“以管理员身份运行”选项的任何选项。
我需要代码解决方案(任何示例代码都很好)来执行该批处理文件。
您应该考虑使用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");
}
}
您可以使用psexec来执行此操作。
Process.Start("psexec", "params");
您是否尝试将其添加到“批处理”的开头?
runas /user:Administrator Example1Server.exe