在 Linux 下使用命令對 Windows 進行操作,可在 Windows 裝 OpenSSH 伺服器,再從 Linux 用 ssh / sshpass 來下命令,
但有些軟體在 Windows 雖有提供命令,卻無法直接由 Linux 來下達,狀況是運行後命令會卡住,在 Windows 下執行就正常。

曾試過在 Windows 上寫好 batch、powershell、AutoIt ,再從 Linux 去調用,執行一半還是卡住
爬文可用 Jenkins 來做,但實在不想再多學多架一套工具,於是想到到方法是靠 schtasks 在 Windows 建立排程來執行工作

範例

建立排程及要讓排程執行的命令、參數
sshpass -p test123 ssh qoo@172.16.1.50 'schtasks /create /tn TaskName /tr "C:\Program_Path\Program.exe --path C:\Path --args" /sc once /sd 01/01/2000 /st 00:00'
執行排程
sshpass -p test123 ssh qoo@172.16.1.50 schtasks /run /tn TaskName
確認排程是否執行完
sshpass -p test123 ssh qoo@172.16.1.50 schtasks /query /tn TaskName|awk 'NR==5{print $3}'
刪除排程
sshpass -p test123 ssh qoo@172.16.1.50 schtasks /delete /tn TaskName /f

以上就可以解決這種特殊情況問題,更多指令請參考:schtasks 命令