Możesz nauczyć się, jak używać programu PowerShell do zrobienia zrzutu ekranu zdalnego komputera za pomocą linii poleceń. Ten przegląd obejmuje najlepsze techniki przechwytywania obrazów na zdalnym komputerze z systemem Windows.
PowerShell jest powszechnie używany przez administratorów IT do zdalnej automatyzacji i zarządzania systemami, dlatego często jest pierwszym narzędziem, o którym myślą ludzie, gdy potrzebują przechwycić zrzut ekranu zdalnego komputera. Teoretycznie, PowerShell może wchodzić w interakcję z graficznymi komponentami Windows za pośrednictwem bibliotek .NET, umożliwiając przechwytywanie ekranu. W praktyce jednak zdalne wykonanie wprowadza poważne ograniczenia związane z sesjami użytkownika i uprawnieniami. Działa to poprzez użycie komunikacji zdalnej PowerShell do uruchomienia kodu zrzutu ekranu zdalnie. Obraz jest zapisywany na komputerze zdalnym, a nie lokalnym.
Krok 1. Uruchom skrypt PowerShell na docelowym komputerze, ręcznie, za pomocą zaplanowanego zadania lub jako część zautomatyzowanego skryptu. Zrzut ekranu zostanie wykonany na tej maszynie w momencie uruchomienia skryptu.
Krok 2. Załaduj wymagane zestawy .NET za pomocą polecenia Add-Type. Zestaw System.Drawing jest używany do tworzenia i zarządzania danymi obrazu, natomiast System.Windows.Forms jest wymagany do wykrywania informacji o ekranie, takich jak rozdzielczość.
Krok 3. Zdefiniuj ścieżkę wyjściową, gdzie zrzut ekranu zostanie zapisany. Ta ścieżka musi istnieć i być zapisywalna, na przykład folder taki jak C:\Temp, aby zapewnić pomyślne utworzenie pliku obrazu.
Krok 4. Wykryj rozdzielczość ekranu, odczytując granice głównego ekranu z System.Windows.Forms.Screen. Ten krok zapewnia, że zrzut ekranu odpowiada pełnemu widocznemu rozmiarowi ekranu.
Krok 5. Utwórz obiekt bitmapy w pamięci przy użyciu wykrytej szerokości i wysokości ekranu. Ta bitmapa działa jako pusty obraz, który będzie przechowywał przechwyconą zawartość ekranu.
Krok 6. Wygeneruj obiekt grafiki z bitmapy. Ten obiekt grafiki jest odpowiedzialny za rysowanie i kopiowanie danych wizualnych do bitmapy.
Krok 7. Użyj metody CopyFromScreen do skopiowania wszystkich widocznych pikseli ekranu do bitmapy. To jest krok, w którym faktyczny zrzut ekranu jest przechwytywany.
Krok 8. Zapisz bitmapę jako plik obrazu i zwolnij zasoby systemowe, usuwając obiekty grafiki i bitmapy. Zrzut ekranu może następnie zostać przejrzany później w celach rozwiązywania problemów lub dokumentacji.
# Zdefiniuj nazwę komputera zdalnego
$RemoteComputer = "REMOTE-PC-NAME"
# Zdefiniuj ścieżkę zapisu zrzutu ekranu na komputerze zdalnym
$OutputPath = "C:\Temp\PowerShellScreenCapture.jpg"
Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {
Add-Type -AssemblyName System.Drawing Add-Type -AssemblyName System.Windows.Forms
# Pobierz rozdzielczość głównego ekranu $ScreenBounds = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds
# Utwórz bitmapę pasującą do rozdzielczości ekranu $Bitmap = New-Object System.Drawing.Bitmap ` $ScreenBounds.Width, $ScreenBounds.Height
# Utwórz obiekt grafiki $Graphics = [System.Drawing.Graphics]::FromImage($Bitmap)
# Skopiuj zawartość ekranu do bitmapy $Graphics.CopyFromScreen( $ScreenBounds.Location, [System.Drawing.Point]::Empty, $ScreenBounds.Size )
# Zapisz zrzut ekranu $Bitmap.Save($using:OutputPath, [System.Drawing.Imaging.ImageFormat]::Jpeg)
# Wyczyść zasoby $Graphics.Dispose() $Bitmap.Dispose() }
Dla pracowników IT i osób pracujących zdalnie, które chcą szybkich rezultatów bez skomplikowanych skryptów, AnyViewer to praktyczny wybór. Zapewnia łatwy sposób na przechwytywanie zdalnych ekranów, jednocześnie unikając problemów z konfiguracją i uprawnieniami, które często towarzyszą narzędziom opartym na poleceniach. Dzięki temu jest idealny do codziennych zadań wsparcia i rutynowego monitorowania.
Po połączeniu się ze zdalnym urządzeniem, wykonanie zrzutu ekranu jest proste. Wystarczy kliknąć przycisk Zrzut ekranu, a obraz zostanie zapisany bezpośrednio na lokalnym komputerze. Nie ma potrzeby dostosowywania sterowników wyświetlacza ani ręcznego wklejania obrazów do innych programów. Ponieważ AnyViewer obsługuje dostęp bez nadzoru, możesz przechwytywać ekrany nawet gdy nikt nie jest zalogowany, co jest przydatne przy sprawdzaniu serwerów lub zadań w tle.
AnyViewer usuwa również powszechne bariery techniczne. Nie musisz konfigurować zapór ogniowych, otwierać portów ani zmieniać zasad systemowych. Niezawodnie pokazuje rzeczywisty ekran bez problemów z czarnym wyświetlaczem, a wszystkie dane obrazu są chronione silnym szyfrowaniem podczas transferu. Łącząc szybkość, prostotę i bezpieczeństwo, AnyViewer sprawia, że przechwytywanie zdalnych zrzutów ekranu jest znacznie łatwiejsze i bardziej efektywne.
Krok 1. Zainstaluj i uruchom AnyViewer na obu komputerach. Przejdź do Zaloguj się > Zarejestruj się, aby utworzyć konto AnyViewer. (Jeśli już zarejestrowałeś się na oficjalnej stronie, możesz zalogować się bezpośrednio.)
Krok 2. Następnie zobaczysz, że pomyślnie zalogowałeś się do AnyViewer. Twoje urządzenie zostanie automatycznie przypisane do konta, na które się zalogowałeś.
Krok 3. Zaloguj się na to samo konto AnyViewer na dwóch urządzeniach; Na swoim lokalnym urządzeniu przejdź do Urządzenia, a następnie możesz nawiązać bezpośrednie połączenie, klikając Sterowanie jednym kliknięciem.
Następnie możesz przechwycić ekran zdalny w ten sam sposób, jak na komputerze lokalnym.
| Funkcja | PowerShell / Skrypty | AnyViewer |
|---|---|---|
| Trudność konfiguracji | Wysoka (Wymaga kodowania & konfiguracji WinRM) | Niska (Zainstaluj i działaj) |
| Obsługa sesji | Często przechwytuje Czarny ekran (Sesja 0) | Przechwytuje Widoczny pulpit (Obsługa automatyczna) |
| Bezpieczeństwo | Wymaga obniżenia zasad wykonywania | Wykorzystuje Szyfrowanie ECC End-to-End |
| Najlepszy przypadek użycia | Masowe wdrażanie (100 PC jednocześnie) | Rozwiązywanie problemów z konkretnymi maszynami |
Chociaż PowerShell i CMD oferują potężne możliwości automatyzacji, często nie nadają się do zadań graficznych, takich jak przechwytywanie ekranu, z powodu izolacji Sesji 0 i złożoności uprawnień.
Dla administratorów, którzy potrzebują niezawodnych, wiernych wizualnie logów bez ryzyka czarnego ekranu lub luk w zabezpieczeniach, dedykowane narzędzie takie jak AnyViewer jest profesjonalnym wyborem. Pozwala skupić się na tym, co jest na ekranie, zamiast martwić się tym, jak to przechwycić.
1. Czy PowerShell może rzeczywiście zrobić zrzut ekranu zdalnego komputera?
Tak, PowerShell może zrobić zrzut ekranu, uruchamiając skrypt na zdalnym komputerze przy użyciu funkcji zdalnego PowerShell. Przechwycenie zależy od aktywnej sesji użytkownika i uprawnień.
2. Gdzie jest zapisywany zrzut ekranu przy użyciu zdalnego PowerShell?
Zrzut ekranu jest zapisywany na zdalnym komputerze, a nie na maszynie lokalnej. Należy określić ścieżkę z możliwością zapisu na docelowym urządzeniu, na przykład C:\Temp.
3. Dlaczego zrzuty ekranu w PowerShell czasami pokazują czarny ekran?
Zwykle dzieje się tak, ponieważ skrypt działa w sesji nieinteraktywnej, takiej jak Sesja 0, która nie ma dostępu do widocznego pulpitu.
4. Jakie komponenty .NET są wymagane do przechwytywania ekranu w PowerShell?
Skrypt wymaga System.Drawing do tworzenia i zapisywania obrazów oraz System.Windows.Forms do wykrywania rozdzielczości ekranu i informacji o wyświetlaczu.
5. Dlaczego AnyViewer jest łatwiejszy niż PowerShell do zdalnych zrzutów ekranu?
AnyViewer przechwytuje widoczny pulpit bezpośrednio i zapisuje obrazy na komputerze lokalnym. Unika skryptowania, problemów z sesjami i kwestii uprawnień, co czyni go szybszym w codziennym użytkowaniu.