我使用如下命令从 ServerA 在 ServerB 和 ServerC 上远程创建了一个任务。
SCHTASKS.exe /Create /S server /RU domain\user /RP "password" /SC ONCE /TN task /TR D:\scripts\script.cmd /ST 00:00
我可以使用这样的命令在服务器B上远程运行它。
SCHTASKS.EXE /RUN /S serverB /I /TN \task
但是当我使用相同的命令在 serverC 上运行时我得到了ERROR: The request is not supported.
我可以从 ServerA 查询它、删除它并在 ServerC 上重新创建它,但我无法运行它。
我可以通过 RDP 进入 ServerC 并在本地运行它。
我正在使用一个域帐户,该帐户是所有三台服务器上的管理员成员。
所有 3 台服务器都是 Windows Server 2016 Datacenter [版本 10.0.14393]。
3台服务器均为同一版本SCHTASKS.EXE
[Version 6.2.14393.0]。
我远程运行脚本的其他方法:
我曾经使用过PSEXEC.EXE
,它是最可靠和最一致的,但它已被我的公司禁止使用。
我曾尝试使用 Powershell 和 WinRS,但得到的结果与使用 SCHTASKS 时得到的不一致。
答案1
在服务器C上检查一下:
- 运行具有高级安全性的 Windows Defender 防火墙
- 单击“入站规则”
- 找到四条名为“远程计划任务管理……”的规则
- 启用适合您环境的规则(可能是域规则)
- 启用规则。
请注意您也可以使用以下命令:
wmic /node:serverC "cmd /c SCHTASKS.EXE /RUN /I /TN task"
答案2
我最终从命令中删除了 /I 参数,并开始获得一致的结果。到目前为止,它已在十几台服务器上成功运行了该任务。