題 通過命令行SSH會話進行Windows屏幕截圖


我在這裡瀏覽了一些“屏幕截圖”查詢,但我無法找到滿足我特定需求的任何內容。

我正在尋找一個命令行工具,我可以通過遠程SSH連接(通過cygwin sshd守護進程)運行。有幾個可供選擇,但我嘗試過的少數(ImageMagick,nircmd和MiniCap)都會導致空白屏幕。我認為這是由於遠程登錄用戶沒有運行正確的圖形控制台會話。

這裡的目標是通過使用來自Unix主機的ssh腳本自動屏幕捕獲和檢索主系統控制台(如果他們看到物理監視器,會看到什麼):

ssh user@windowshost "screencap --output /tmp/console.jpg"
scp user@windowshost:/tmp/console.jpg /some/destdir

請注意,這些必須按需完成,因此輪詢定期轉儲快照的遠程目錄將不起作用。

對於開源並具有可移植安裝的程序的獎勵積分(因此我不需要將RDP / VNC放入機器來運行圖形安裝程序)。


5
2018-01-21 21:01


起源




答案:


如果你已經在機器上安裝了VNC,你可以嘗試通過VNC製作屏幕截圖,例如同 VNC快照


1
2018-01-21 21:04



看起來最後一個版本是在2004年。可能需要一些努力才能開始工作。如果我設法這樣做,我會報告。 - Geoff Fritz
VNC協議非常非常簡單甚至更多,每個規範都指前面的擴展。目前的版本是3.8,並且在2003 IIRC發布了3.7,所以它可能會起作用。 - whitequark


你嘗試過使用SysInternals嗎? PsExec實用程序 而不是SSH?甚至除了SSH(即, ssh user@host "psexec screencap --output /tmp/console.jpg")。我不知道它會起作用,但似乎值得嘗試。


1
2018-01-21 21:36



這導致了相同的空白屏幕捕獲。不過好主意。 - Geoff Fritz
您應該在要截取的桌面上運行的某個進程中創建CreateRemoteThread。可能是psexec可以做到這一點,可能不是(在這種情況下你需要一些其他的工具)。 - Vi.
你應該嘗試添加選項 -i 1 到PsExec。它有可能有所幫助。 (對於Vista之前的(?)版本,這應該是 -i 0 我相信。)另外,你很可能想補充一下 -accepteula 選項以防萬一。作為最後的手段,如果PsExec表現得不夠可靠並且您允許自己進行一些WinAPI編程,請查看: asprosys.blogspot.com/2009/03/... - akavel


如果您通過ssh登錄到計算機,則表示您與要捕獲的窗口不在同一會話中。因此你的快照工作是......無用的。

我會設置Windows機器以允許rdesktop會話,然後通過rdesktop從unix機器連接並製作rdesktop窗口的快照。


0
2018-05-14 07:46





請嘗試以下命令之一。

$ import -pause 1 -window root screenshot.jpg

$ xwd -out screenshot.xwd -window root
or
$ xwd -out screenshot.xwd -window root -display :0.0  

這用於提取xwd文件:

$ xwud -in screenshot.xwd
or
$ convert screenshot.xwd screenshot.jpg

資源: http://ubuntuforums.org/showthread.php?t=107580


-2
2018-06-01 15:54



這是關於Windows的。沒有“顯示:0.0”。而是有桌面和窗口站。 - Vi.
這適用於Windows,使用Cygwin,但僅適用於捕獲Cygwin(X)窗口。 - reinierpost