【问题标题】:PsExec is not copying file over to executePsExec 没有复制文件来执行
【发布时间】:2012-07-17 14:47:53
【问题描述】:

我想运行一个名为“systemInfo.vbs”的脚本,它将系统名称和服务包输出到日志文件。

在命令提示符下,我正在执行“PsExec.exe \REMOTECOMPUTER -c systemInfo.vbs”。

我从本地系统上只有 PsExec.exe 和 systemInfo.vbs 的目录运行它

我得到了错误

PsExec 无法在 REMOTESERVER 上启动 systemInfo.vbs:“系统 找不到指定的文件。

知道为什么会这样吗?我想我可以这样做来运行远程脚本,就好像它在远程服务器上一样?

【问题讨论】:

    标签: windows vbscript psexec


    【解决方案1】:

    您需要在远程电脑上或通过电脑或网络驱动器上的共享上的 UNC 路径提供脚本的路径。因此,如果脚本在远程 c:\

    上有副本
    PsExec.exe \\REMOTECOMPUTER -c c:\systemInfo.vbs
    

    或者如果它在共享 \\mypc\shared

    PsExec.exe \\REMOTECOMPUTER -c \\mypc\shared\systemInfo.vbs
    

    您还需要确保您在启动脚本的电脑上拥有管理员权限,并且取决于您的脚本在远程电脑上可能执行的操作。

    【讨论】:

    • 我想用-c,它会复制脚本并在远程系统上执行它?
    • 从未使用过该选项,如果出现问题,我肯定会忽略它并按照我的建议尝试,您的错误消息清楚地表明该选项存在问题,但首先尝试提供脚本的完整路径在您的本地系统上,由于 psexec 是使用管理权限执行的,因此它可能会丢失上下文
    【解决方案2】:

    对于将来可能遇到这种情况的任何人,-c 标志确实允许您复制文件以执行;文档没有指定,但是您需要使用本地计算机上的路径跟随它到要复制和执行的二进制文件。 (我已向文档提交了拉取请求。)

    例如,这可用于将“Blend for Visual Studio SDK for .NET”添加到 Visual Studio 2017 Professional 的远程安装中,方法是将 Web 安装程序(名为 vs_professional.exe)复制到该计算机 (\\TargetMachine ) 使用凭据,(请注意,仅当您使用域而不是本地用户时才使用 DOMAIN),并使用适当的参数执行它。

    D:\PSTools\PsExec64.exe "\\TargetMachine" -u "DOMAIN\user" -p "pass" -h -c "D:\deploy\vs_professional.exe" vs_professional.exe modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional" --add Microsoft.Component.Blend.SDK.WPF --passive
    

    另一个人为的例子:

    PsExec64.exe \\Target -u user -p password -h -c "filetoremoteexec.exe" filetoremoteexec.exe --flag param1 param2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-16
      • 2014-01-21
      相关资源
      最近更新 更多