在计划任务中运行 SSH 命令

在计划任务中运行 SSH 命令

我有一个简单的 powershell 脚本,它可以获取 Ubuntu 服务器与 NTP 服务器时间的偏移量。

我运行的命令是

$result = ssh -i C:\temp\privatekey 域\用户名@服务器名称 "ntpdate -q 192.168.10.1"

当我手动运行此脚本时,$result 变量会按预期填充。当我作为计划任务运行时(以同一用户身份),脚本根本不设置 $result 变量,而是将其留空。

我是否需要输入其他选项作为 SSH 命令的一部分或作为调用 ps 脚本的计划任务的一部分?如能提供任何帮助,我将不胜感激。

答案1

当您从命令行运行命令时,您的整个环境(包括 $PATH 变量)都可供该命令使用。当从调度程序(例如 cron)运行时,情况并非如此。

因此,当您编写将从任何类型的调度程序运行的脚本时,您应该确保始终在脚本中包含所有命令的完整路径,或者首先为脚本提供适当的 $PATH 设置。

相关内容