很多有遠端控制需求的地方都會採用VNC而不使用微軟自帶的遠端桌面服務, 各有各的理由不多說, 而許多接觸本平台的人員都會摳嗶TCP_FS和配套的專用VNC帶回家用, 因為守著一台電腦控制眾多電腦的需求下, 這真的太好用了... 那麼這裡分享一個秘密吧! 由於從VISTA之後VNC無法透過服務方式取得遠桌畫面, 所以改於啟動資料夾或是排程方式於登入之後執行, 但是有個缺點就是不可以鎖定系統, 其實有個方式可以解決, 所以如果本來要執行的命令如下(路徑位置自行參酌比對) S:\tool\vncsrv.exe -tfs 192.168.1.110 那就改用這樣的方式執行(路徑位置自行參酌比對) S:\PsTools\PsExec.exe -s -d -i "S:\tool\vncsrv.exe" -tfs 192.168.1.110 也就是於登入的情形下, 取得SYSTEM權限來執行 vncsrv 就OK囉!! 以這種方式完成連線的VNC遠端桌面, 於鎖定畫面仍然可以持續監控, 也能輸入登入密碼解鎖, 愛用VNC的人就不用再勉強使用微軟遠桌了! PsExec於第一次執行時會有一個不負責任宣告, 若完全不想看到也可以先加機碼使之忽略 reg add "HKCU\Software\Sysinternals\PsExec" /v "EulaAccepted" /d 1 /t REG_DWORD /f PsTools這個遠端管理工具包裏面有一堆工具而PsExec也有x86和x64的版本, 以前面所說取得SYSTEM權限執行程式的功能於x64的系統下也是跑x86的版本就能完成任務, 也就是只要有x86的版本就通通可以用了, 如果想直接抓這支程式就好也可從這裡: PsExec_v2.2.rar 如果覺得的PsExec太IT了不夠專業, 那就改用RunAsSYSTEM這隻程式, 執行檔是 RunAsSYS.exe(下載), 上面跑VNC的方式就變成如下(路徑位置自行參酌比對) S:\PsTools\RunAsSYS.exe /a "S:\tool\vncsrv.exe" -tfs 192.168.1.110 其中 /a 的參數是要求非同步方式, 因為VNC是要一直跑而不結束的, 所以不使用預設的等待模式運作, 如果不下 /a 這個參數, 就會留著一個console視窗需自行關閉, 如果要把RunAsSYS應用在批次檔或是console中操作, 那就可以不要用 /a 參數, 使用預設的等待模式(類似 start /wait )運用於命令提示之下會發現非常的實用! 總之以RunAsSYS替代PsExec會變得更有效率, 整體運作過程更是流暢平順, RunAsSYSTEM這程式如果參數沒指定要執行的程式, 預設是會跑 %windir\System32\cmd.exe ( 被引用為漏洞真無言 研究人員發現Windows Vista中的漏洞, 何況這還是Win10能用的程式 ) 另外也有純Win的版本 RunAsSYSw.exe(下載), 用法和 RunAsSYS.exe 一模一樣, 如果希望動作隱形不要有跳出黑視窗則可以改用此版, 特別是在排程運作的設計上特別有用, 往往有些程式設計的不靠譜, 為預防程式掛掉, 會在排程中透過週期或多次排程的方式確認程式有在運作, 這時, 排程會在設定中使用規則: 如果工作已在執行中套用不要啟動新的執行個體, 要能適用這種規則的話就是要跑等待模式(也就是不要用 /a 參數), 不然此情況下如果用console版的會留一個黑視窗在桌面上豈不是很礙觀瞻... 因此改用 RunAsSYSw.exe 來替代就能避免這樣的尷尬了! 要能取得SYSTEM權限至少需具有系統管理員的身份, 可以參考視頻: 以RunAsSYSw示範於相容性中設定管理員權限 以下離題, 純粹記錄一些觀察現象... 在這不知為何要Win10的時代, Win10的設計雜亂無章, APP化+搭NET化使所有的應用變慢了, 相容性也變差了, 用RunnAsSYS去試試開小算盤(calc.exe)和記事本(notepad.exe)就知道像小算盤這樣的應用程式已經不純潔... 而不純潔的console工具也是先透過Win32應用殼層去開啟新console視窗, 這使得RunnAsSYS不能銜接stdio正確運作, 可以由 控制台/程式和功能/開啟或關閉Windows功能 將Telnet Client勾起來把telnet.exe選裝進系統, 再於命令提示字元下分別用RunnAsSYS和RunnAsSYSw去試試呼叫Telnet.exe, 大概就知道意思了! 若有需要以SYSTEM身份使用這類不純潔的應用程式和工具時, 使用RunnAsSYSw來替代RunnAsSYS才能正確操作 如用timeout.exe這隻更簡單的批次檔小工具來觀察, 於Win10上使用出現「錯誤: 不支援輸入重新導向,請立即結束處理程序。」 雖然翻譯文怪怪的(可以改看原文), 但能明確瞭解到為何前面會提到是stdio的問題~而Win10看似已經完全放棄支援了! |