如何使用 PowerShell 遠端擷取電腦螢幕畫面

您將透過指令列學習如何使用 PowerShell 遠端擷取電腦螢幕畫面,本概述涵蓋在 Windows 遠端電腦上捕捉影像的最佳技術要點。

Iota

來自 Iota 發表於 2026年02月10日

Share this: instagram reddit

如何使用 PowerShell 擷取遠端電腦螢幕截圖

PowerShell 被 IT 管理員廣泛用於遠端自動化與系統管理,因此當需要擷取遠端電腦螢幕截圖時,它通常是首選工具。理論上,PowerShell 可透過 .NET 函式庫與 Windows 圖形元件互動,從而實現螢幕擷取功能。然而在實務中,遠端執行會因使用者工作階段與權限而帶來重大限制。其運作原理是透過 PowerShell 遠端處理功能,在遠端執行螢幕截圖程式碼。影像將儲存在遠端電腦上,而非本機電腦。

步驟 1. 在目標電腦上執行 PowerShell 指令碼,可手動執行、透過排程任務或作為自動化指令碼的一部分。螢幕截圖將在指令碼執行時於該電腦上擷取。

步驟 2. 使用 Add-Type 載入所需的 .NET 組件。System.Drawing 組件用於建立與管理影像資料,而 System.Windows.Forms 則用於偵測螢幕解析度等螢幕資訊。

步驟 3. 定義螢幕截圖的儲存路徑。此路徑必須存在且可寫入,例如 C:\Temp 這類資料夾,以確保影像檔案能成功建立。

步驟 4. 透過讀取 System.Windows.Forms.Screen 中的主要螢幕邊界來偵測螢幕解析度。此步驟確保螢幕截圖符合完整的可見螢幕尺寸。

步驟 5. 使用偵測到的螢幕寬度與高度,在記憶體中建立點陣圖物件。此點陣圖作為空白影像,將用於容納擷取的螢幕內容。

步驟 6. 從點陣圖產生圖形物件。此圖形物件負責將視覺資料繪製並複製到點陣圖中。

步驟 7. 使用 CopyFromScreen 方法將所有可見螢幕像素複製到點陣圖中。此步驟即為實際擷取螢幕截圖的過程。

步驟 8. 將點陣圖儲存為影像檔案,並透過釋放圖形與點陣圖物件來釋放系統資源。之後可檢視螢幕截圖以進行疑難排解或文件記錄。

您可以遵循此範例,使用 PowerShell 擷取遠端電腦螢幕截圖:

# 定義遠端電腦名稱

$RemoteComputer = "REMOTE-PC-NAME"

# 定義遠端電腦上的螢幕截圖儲存路徑

$OutputPath = "C:\Temp\PowerShellScreenCapture.jpg"

Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {

Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms

# 取得主螢幕解析度 $ScreenBounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds

# 建立符合螢幕解析度的點陣圖 $Bitmap = New-Object System.Drawing.Bitmap ` $ScreenBounds.Width, $ScreenBounds.Height

# 建立圖形物件 $Graphics = [System.Drawing.Graphics]::FromImage($Bitmap)

# 將螢幕內容複製到點陣圖 $Graphics.CopyFromScreen( $ScreenBounds.Location, [System.Drawing.Point]::Empty, $ScreenBounds.Size )

# 儲存螢幕截圖 $Bitmap.Save($using:OutputPath, [System.Drawing.Imaging.ImageFormat]::Jpeg)

# 清理資源 $Graphics.Dispose() $Bitmap.Dispose() }

🔥最簡單的遠端螢幕截圖方法:AnyViewer

對於希望快速獲得結果而無需複雜腳本的IT人員和遠端工作者來說,AnyViewer是一個實用的選擇。它提供了一種簡便的方式來擷取遠端螢幕,同時避免了基於命令的工具常伴隨的設定和權限問題。這使其成為日常支援任務和例行監控的理想工具。

一旦連接到遠端裝置,擷取螢幕截圖就變得非常直接。您只需點擊「螢幕截圖」按鈕,圖像便會直接儲存到您的本地電腦。無需調整顯示驅動程式或手動將圖像貼上到其他程式。由於AnyViewer支援無人值守存取,即使無人登入,您也能擷取螢幕畫面,這對於檢查伺服器或背景任務非常有用。

AnyViewer 還消除了常見的技術障礙。您不需要配置防火牆、開啟連接埠或更改系統策略。它能可靠地顯示真實螢幕畫面,不會出現黑屏問題,且所有圖像資料在傳輸過程中都受到強加密保護。透過結合速度、簡便性和安全性,AnyViewer使遠端螢幕截圖擷取變得更加輕鬆高效。

下載免費軟體Win PCs & Servers
免費下載

步驟 1. 在兩台電腦上安裝並啟動AnyViewer。前往 登入 > 註冊 以建立AnyViewer帳戶。(如果您已經在 官方網站註冊,可以直接登入。)

登入 AnyViewer

步驟 2. 接著您會看到已成功登入 AnyViewer。您的裝置將自動被指派至您登入的帳戶。

Free Editions

步驟 3. 在兩台裝置上登入相同的 AnyViewer 帳戶;在您的本機裝置上,前往 裝置,然後點擊一鍵控制即可建立直接連線。

Connect to My Devices

之後您便能以操作本機電腦的方式擷取遠端畫面。

比較:PowerShell 與 AnyViewer

功能特性PowerShell / 指令碼AnyViewer
設定難度 (需編寫程式碼與配置 WinRM) (安裝即可使用)
工作階段處理常擷取到黑畫面 (Session 0)擷取可見桌面 (自動處理)
安全性需降低執行原則限制採用端對端ECC 加密
最佳使用情境大量部署 (一次處理 100 台以上電腦)針對特定機器進行疑難排解

結論

雖然PowerShellCMD具備強大的自動化能力,但由於 Session 0 隔離與權限複雜性,它們通常不適合用於螢幕擷取這類圖形化任務。

對於需要可靠、高保真視覺記錄,且不希望冒黑畫面或安全漏洞風險的管理員而言,專業工具如AnyViewer是理想的選擇。它能讓您專注於畫面內容,無需煩惱擷取方式

下載免費軟體Win PCs & Servers
免費下載

常見問題

1. PowerShell 真的能擷取遠端電腦的螢幕截圖嗎?
是的,PowerShell 可以透過 PowerShell 遠端處理在遠端電腦上執行指令碼來擷取螢幕截圖。擷取結果取決於作用中的使用者工作階段與權限。

2. 使用 PowerShell 遠端處理時,螢幕截圖會儲存在哪裡?
螢幕截圖會儲存在遠端電腦上,而非本機電腦。您必須在目標裝置上指定一個可寫入的路徑,例如 C:\Temp。

3. 為什麼 PowerShell 擷取的螢幕截圖有時會顯示黑畫面?
這通常是因為指令碼在非互動式工作階段(例如 Session 0)中執行,該工作階段無法存取可見的桌面。

4. PowerShell 螢幕擷取需要哪些 .NET 元件?
指令碼需要 System.Drawing 來建立與儲存影像,並需要 System.Windows.Forms 來偵測螢幕解析度與顯示資訊。

5. 為什麼 AnyViewer 比 PowerShell 更適合用於遠端螢幕截圖?
AnyViewer 直接擷取可見桌面並將影像儲存至本機電腦。它避免了指令碼編寫、工作階段問題與權限問題,使其在日常使用中更為快速。