2010-08-29 7 views
3

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

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"); 
} 
+0

Не будет ли это серьезной дырой в безопасности? – Marko

+0

@Marko это может быть целостность безопасности, если я не могу получить доступ к ПК через удаленный рабочий стол вообще, но в моем случае я могу это сделать, и я являюсь администратором всех ПК, поэтому знаю имя пользователя и пароль администратора – shabby

+0

Что такое токен ? Как его получить? –

ответ

3

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

Команда образца PsExec будет

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

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

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

+0

на самом деле есть сотни серверов, поэтому нужно делать это автоматически через код, не могу пойти туда, чтобы установить psexec спасибо – shabby

+1

psexec не нужно устанавливать, он сам позаботится об этом, когда запускается в первый раз. Если он может получить доступ к удаленному компьютеру с учетными данными администратора, вы можете запустить psexec. – Joshua

 Смежные вопросы

  • Нет связанных вопросов^_^