从网络共享运行远程计算机上的程序

从网络共享运行远程计算机上的程序

好吧,全力以赴:将我所有的 72 分作为赏金分配给这个问题!

如何在不安装其他软件(又名 ssh)的情况下在远程 Windows 计算机上运行命令行程序。Web/stackoverflow 上的所有建议均不符合以下基本要求:

  1. 远程程序应该能够访问网络共享(读/写)!
  2. 应捕获程序的输出(返回控制计算机)
  3. 可以通过脚本(例如 Python)自动运行

我查看了以下内容:

  1. WMI - 可以运行程序但无法访问网络共享并且输出不可见(射击和祈祷方法?)
  2. WinRM - 据称可以访问网络共享,但设置非常复杂(似乎不需要自签名证书和输入密码,这会导致 C 失败)
  3. PsExec — 无法从网络路径运行可执行文件

环境:所有 Win 7,可以以本地管理员身份运行

答案1

我建议使用 PowerShell 远程处理。但问题的答案如何?很大程度上取决于环境(域/工作组)和您的权限(在服务器上/域内)。

这是AD环境中的一个命令:

Set-ADComputer -TrustedForDelegation $true -Identity <your target server>

然后:

Invoke-Command -ComputerName <target server> -ScriptBlock { your command }

... 但这在工作组环境中不起作用,所以我想你需要在这里更具体一点。

答案2

psexec工具最初由 Sysinternals 创建,但现在已成为 Microsoft Technet 的一部分,可以满足您的需要。

有了它,您可以在远程 Windows 计算机上运行任何命令,包括复制任何可执行文件、运行它并返回结果。您无需在远程计算机上安装任何东西。

当然,您必须拥有目标机器的管理员权限或同等权限才能执行。本质上,如果您无法远程桌面或登录机器,您将无法使用它。这是很明显的。

以下是产品页面:http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

您可以在互联网上找到许多有关如何使用它的教程和指南。


我不明白你说的“无法访问网络”是什么意思。

请执行下列操作:

  1. 编写一个脚本、批处理文件或可执行文件,以便如果您将其物理复制到目标机器并双击它,它会执行您需要的所有操作(连接到远程共享并读取/写入数据)。如何做到这一点超出了这个问题的范围,实际上取决于您要用来编写脚本的技术。
  2. 用于psexec在另一台目标机器上运行它。

我的理解是,您目前未能完成第 1 步,但当前的问题是关于第 2 步。

答案3

您是否尝试过将网络共享映射到远程 PC 上的驱动器号?然后 PSExec 就可以将该共享中的文件视为本地文件。

相关内容