Я хочу скопировать и запустить файл .exe на удаленной машине с Windows? - PullRequest
3 голосов
/ 29 августа 2010

Я скопировал exe-файл, и это было без проблем, используя следующий код, но теперь я хочу запустить его, может ли anyboyd помочь мне в этом.ПРИМЕЧАНИЕ: у меня есть доступ к серверам через удаленный рабочий стол, но я не могу сделать это вручную, потому что их десятки, я не могу запустить на нем программу, такую ​​как psex или любую другую.

WindowsIdentity wi = new WindowsIdentity(token);

//Next I set the WindowsImportsonationContext

WindowsImpersonationContext impctx = wi.Impersonate();
System.IO.File.Copy("C:\\output.html", "\\\\PW42\\c$\\output1.html", true);
System.Diagnostics.Process p = new System.Diagnostics.Process();
try
{
    System.Diagnostics.Process.Start(@"\\PW42\c$\txt.bat");
    //runFile();
}
catch
{
    Console.WriteLine("error");
}

1 Ответ

3 голосов
/ 29 августа 2010

В зависимости от того, какой у вас есть доступ к серверу, вы можете использовать программу типа psexec или WMI для удаленного запуска файла.

Примером команды psexec будет

psexec \\computername -u remoteusername filepath(on remote computer) arguments

Psexec может заранее скопировать файл, если требуется, и вместо этого может работать со списком компьютеров (заменив \\computername на @computer-list.txt).С WMI вам нужно подключиться к классу Win32_Process и создать новый объект для его запуска. вторая запись в этой теме может работать.

К сожалению, обе эти опции требуют наличия нескольких правил брандмауэра (таких как RPC и WMI), которые должны быть доступны с работающей рабочей станции.Если в вашей компании только RDP-доступ включен через брандмауэр, ни один из них, вероятно, не будет работать.

...