0

我正在尝试从本地 Windows 服务器运行批处理文件,该服务器调用我域中的计算机以从共享文件夹中提取并运行 exe。我不确定我的脚本是试图做太多还是太少。

所以我在本地运行以下批处理

X:\pstools\psexec.exe \\Computer -d -u DOMAIN\user -p password -i \\SERVER\test\testfile.bat

和 testfile.bat:

@echo off
pushd \\SERVER\test\
call program.exe
popd

当我运行脚本时,psexec 运行并且我确认 testfile.bat 已在目标计算机上启动。在目标计算机上没有任何反应。如果我导航到目标计算机上的共享并运行 testfile.bat,我会得到“CMD.EXE 没有以上述路径作为当前目录启动。不支持 UNC 路径。默认为 Windows 目录。” 从那里计算机运行调用的.exe 没有问题。

如果我将它定位到我域中的另一台服务器,它会完美执行,但不能在域计算机上执行。我认为可能是 GPO 问题,但我找不到解决方案。

感谢您提供的任何知识或帮助!

4

1 回答 1

0

感谢大家的所有提示!这就是我最终让它为任何可能有同样问题的人工作的方式。

服务器上的脚本:

x:\pstools\psexec.exe \\Computer(or text file with computers listed) -d -s cmd /c (batchfile.bat)

与我之前尝试的类似,但要确保在远程 PC 上将命令行作为系统运行,您必须指定“-s cmd”。/c 将批处理复制到远程系统以在本地运行。如果您之前已经复制过它,您可以包含一个“-f”来覆盖它。我只是将批处理文件放在 pstools 文件夹中。

批处理文件.bat:

pushd \\networkdrive
call (.bat/.cmd/.exe/etc.)
popd

我禁用了防火墙进行测试,但我相信您必须为 PSEXEC 打开 TCP-445/UDP-137。否则,就是这样。超级简单的解决方案。

于 2020-07-31T16:58:34.110 回答