3

我已经复制了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");
}
4

1 回答 1

3

根据您在服务器上的访问权限,您可以使用psexec之类的程序或使用 WMI 远程启动文件。

一个示例 psexec 命令将是

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

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

不幸的是,这两个选项都需要多个防火墙规则(如 RPC 和 WMI)才能从正在运行的工作站中使用。如果您的公司仅通过防火墙启用 RDP 访问,则这些都可能不起作用。

于 2010-08-29T05:46:19.637 回答