2010-08-29 44 views
3

我已经复制了exe文件,它没有问题,使用下面的代码,但现在我想运行它,anyboyd可以帮助我这一点。 注意:我有通过远程桌面访问服务器,但无法手动执行此操作,因为有几十个,不能像psex或其他任何运行它的程序运行。我想在远程Windows机器上复制并运行.exe文件?

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 2010-08-29 05:39:07

+0

@Marko它可以是一个安全的整体,如果我不能通过远程桌面访问电脑,但在我的情况下,我可以做到这一点,我是所有电脑的管理员,所以知道管理员的用户名和密码 – shabby 2011-04-09 03:16:41

+0

什么是令牌?如何得到它? – 2017-10-23 07:20:40

回答

3

根据您在服务器上有什么样的访问,你可以使用一个程序像psexec或使用WMI来远程启动该文件。

样品PSEXEC命令将是

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

PSEXEC可复制该文件预先如果被请求和可以针对计算机代替(用@computer-list.txt替换\\computername)的列表中运行。使用WMI,您需要连接到Win32_Process类并创建一个新对象来启动它。这个线程中的second post可以工作。

不幸的是,这两个选项都需要运行工作站提供多个防火墙规则(如RPC和WMI)。如果你的公司只有通过防火墙启用了RDP访问,那么这些都不会起作用。

+0

实际上有数百台服务器需要通过代码自动完成,无法安装psexec谢谢 – shabby 2010-08-30 18:37:51

+1

psexec不需要安装,它在第一次运行时会自行处理。如果它可以使用管理员凭据访问远程计算机,则可以运行psexec。 – Joshua 2010-08-30 18:53:53

相关问题