Windows 10 Üzerinde PowerShell ile Ekran Görütüsü Almak

Merhabalar,

Windows 10 üzerinde ekran görüntüsü almak aslına bakarsanız oldukça basit bir işlem ancak bazı özel durumlarda powershell ile ekran görüntüsü almanız gereken durumlar oluşabilir. Örneğin son kullanıcınız bir operasyon yaptığında ekran görünütüsü aldırabilirsiniz, mesela bilgisayarlarınızada oyun oynanmasını istemiyor iseniz ve bunu aşan kullanıcılarınız var ise powershell betiği’i ve Microsoft System Center ürünü ile birleştirerek bir olay oluşturabilirsiniz. Veya ayrı bir ufak betik yazıp belirtilen porgramların haricinde bir program açılır ise Windows zamanlanmış görevlerden yakalayıp ekran görüntüsü alınabilir. Yani bir çok senaryo geliştirilebilir.

PowerShell Scriptimiz şu şekilde;

$File = ‘d:\filename.png
Add-Type -AssemblyName System.Windows.Forms
Add-type -AssemblyName System.Drawing
# Gather Screen resolution information
$Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
$Width = $Screen.Width
$Height = $Screen.Height
$Left = $Screen.Left
$Top = $Screen.Top
# Create bitmap using the top-left and bottom-right bounds
$bitmap = New-Object System.Drawing.Bitmap $Width, $Height
# Create Graphics object
$graphic = [System.Drawing.Graphics]::FromImage($bitmap)
# Capture screen
$graphic.CopyFromScreen($Left, $Top, 0, 0, $bitmap.Size)
# Save to file
$bitmap.Save($File, [System.Drawing.Imaging.ImageFormat]::Png)
Write-Output “Screenshot saved to:
Write-Output $File

Basit olarak betik çalıştırılınca “d:” diskimize filename.png adında bir ekran görüntüsünü kayıt ediyor, resim kayıt formatımız PNG olacaktır

Yalnız belirtmeliyim ki betiği yönetici yetkisi ile çalıştırmalısınız yoksa uyarı alırsınız.

Örnegin ortamınızda Active Direktory Sunucunuz var ve bilgisayarlarınız domainde ise ve bilgisayarlarınızda uzaktan powershell scripti yürütme yetkisi var ise betiği uzaktanda çalıştırabilirsiniz. Eğer powershell uzaktan komut yürütme yetkisi bilgisayarlarınızda yok ise bunu bir Group Policy yardımı ile açabilirsiniz. Ama unutmayalımki kendi konforumuz için aldığımız her karar sisteminizi daha açık hale getirebilir.

Uzaktan komut yürütme şeçeneğinin açık olduğunu düşünüyorum ve aşağıdaki komutu çalıştırıyorum

psexec -s -i $sessionID \$computer Powershell.exe -executionpolicy bypass -file “fullpath\script.ps1”

$sessionID = Bilgisayarda oturum açmış olan kullanıcı

$computer = Bilgisayarın adı, eğer bilgisayar adı ile ilgili bir hata alıyor iseniz ip adreside kullanabilirsiniz.

Evet bu yazımız burada sonlanıyor, bu betiği legal işler için kullanmanız dileği ile 😊

%d blogcu bunu beğendi: