最近工作中用到了SCHTASKS命令來遠程執行命令,由於命令參數有點多,利用起來稍微有點復雜,把利用方法記錄在這里,備忘。
遠程執行命令的模擬環境是我用VMware Workstation Pro搭建的一個簡單域環境,里面有一台裝了Microsoft Windows Server 2008 R2 Enterprise系統的域控,一台裝了Microsoft Windows 7的客戶機。要實現的功能是通過在Windows 7客戶機上利用SCHTASKS命令在域控上遠程執行命令。
具體執行的命令是讓域控運行從客戶機上拷貝過去的cmd.exe
下面是遠程執行命令的具體步驟:
1. 建立IPC連接
net use \\dom-08R2.test.com\admin$ "123456q!@#" /user:test.com\Administrator
2. 把要執行的文件通過copy命令復制到目標系統
copy c:\windows\system32\cmd.exe \\dom-08R2.test.com\admin$\temp\cmd111.exe
3. 確認文件是否復制成功
dir \\dom-08R2.test.com\admin$\temp\cmd111.exe
4. 刪除建立的IPC連接
net use \\dom-08R2.test.com\admin$ /del
5. 用SCHTASKS命令在遠程系統建立計划任務
以遠程系統的system用戶運行c:\windows\temp\cmd111.exe,計划任務的名字為test1
SCHTASKS /Create /S dom-08R2.test.com /U test.com\Administrator /P "123456q!@#" /SC ONCE /ST 11:00 /TN test1 /TR c:\windows\temp\cmd111.exe /RU system
6. 查看建立的計划任務是否正確
用到的命令是SCHTASKS /Query,但簡體中文版Windows 7 中直接執行SCHTASKS /Query命令會報錯:“錯誤:無法加載資源。”,原因是簡體中文的 schtasks MUI 語言包有問題,導致 schtasks /query 不能輸出。 解決辦法是先輸入chcp 437,將當前的命令提示符的代碼頁設置為美國英語。
chcp 437
SCHTASKS /Query /S dom-08R2.test.com /U test.com\Administrator /P "123456q!@#"
7. 運行建立的計划任務
SCHTASKS /Run /S dom-08R2.test.com /U test.com\Administrator /P "123456q!@#" /I /TN "test1"
8. 去遠程系統確認cmd111.exe是否已經運行(通過看進程)
9. 刪除建立的計划任務
SCHTASKS /Delete /S dom-08R2.test.com /U test.com\Administrator /P "123456q!@#" /TN "test1" /F