2

リモート マシンにバッチ ファイルがあります。このバッチ ファイルは、ファイルを右クリックし、[管理者として実行] オプションを選択して実行します。このバッチ ファイル (リモート マシンにある) をプログラムで実行するには、C# ManagementScope クラスを使用します。しかし、ManagementScope クラスを使用して「管理者として実行」オプションを設定するオプションが見つかりません。

そのバッチ ファイルを実行するには、コード ソリューションが必要です (どのサンプル コードでも優れています)。

4

3 に答える 3

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");
    }
}
于 2012-12-11T13:14:14.133 に答える
0

これを行うにはpsexecを使用できます。

Process.Start("psexec", "params");
于 2012-12-11T13:33:03.037 に答える
0

これを「バッチ」の先頭に追加しようとしましたか?

runas /user:Administrator Example1Server.exe
于 2012-12-11T13:34:10.670 に答える