我有一个批处理文件,位于我们公司网络的服务器A上。 我在网络上的用户机器上运行了一个.Net / C#应用程序,我需要在服务器A上以编程方式(使用C#)执行此批处理文件。这可能吗? 如果有,请指点吗?
感谢您的帮助。
答案 0 :(得分:2)
答案 1 :(得分:2)
查看PsExec v2.0:
像Telnet这样的实用程序和Symantec的PC等远程控制程序 Anywhere允许您在远程系统上执行程序,但它们可以是一个 设置的痛苦,并要求您在上安装客户端软件 您希望访问的远程系统。 PsExec重量轻 telnet替换,允许您在其他系统上执行进程, 完整的控制台应用程序的完全交互性,没有 必须手动安装客户端软件。 PsExec最强大 用途包括在远程系统上启动交互式命令提示 和IpConfig等远程启用工具,否则没有 能够显示有关远程系统的信息。
答案 2 :(得分:0)
有可能在服务器上执行批处理文件是一个安全漏洞!
我建议在服务器上创建一个服务器应用程序。
答案 3 :(得分:0)
如果您需要.NET解决方案,最好实现PowerShell集成的解决方案。具体来看PowerShell Running Remote Commands documentation。具体来说,请查看在远程数据库上运行脚本的Invoke-Command cmdlet。
Windows PowerShell远程处理
Windows PowerShell远程处理,它使用WS-Management协议, 允许您在一个或多个远程上运行任何Windows PowerShell命令 电脑。它允许您建立持久连接,从1:1开始 交互式会话,并在多台计算机上运行脚本。
答案 4 :(得分:0)
使用“纯”批处理命令和不使用外部工具:
wmic /NODE:Server /USER:user /PASSWORD:pass process call create "command parameters","c:\workdir"
虽然WMIC
不适用于Windows XP家庭版(但WMI类可用,因此您可以使用C#查询)。
它使用WIN32_PROCESS类。Here how it can be used with C#。 More C#\WMI examples
从vista及以上版本,你还有WINRS命令(也可以使用XP和一些资源包):
winrs -r:myserver command /domain:testdomain /userd:user /password:pass