كيفية استخدام PowerShell لالتقاط لقطة شاشة لكمبيوتر بعيد
يمكنك تعلم كيفية استخدام PowerShell لالتقاط لقطة شاشة لكمبيوتر بعيد عبر سطور الأوامر. يغطي هذا النظرة العامة أفضل التقنيات لالتقاط الصور على كمبيوتر بعيد يعمل بنظام Windows.
كيفية استخدام PowerShell لالتقاط لقطة شاشة لكمبيوتر بعيد
يستخدم PowerShell على نطاق واسع من قبل مسؤولي تكنولوجيا المعلومات لأتمتة الأنظمة وإدارتها عن بُعد، لذا غالبًا ما يكون أول أداة يفكر فيها الأشخاص عندما يحتاجون إلى التقاط لقطة شاشة لكمبيوتر بعيد. من الناحية النظرية، يمكن لـ PowerShell التفاعل مع مكونات واجهة المستخدم الرسومية في Windows من خلال مكتبات .NET، مما يجعل التقاط الشاشة ممكنًا. ومع ذلك، من الناحية العملية، يُدخل التنفيذ عن بُعد قيودًا كبيرة تتعلق بجلسات المستخدمين والأذونات. يعمل هذا باستخدام PowerShell Remoting لتشغيل كود التقاط الشاشة عن بُعد. يتم حفظ الصورة على الكمبيوتر البعيد، وليس المحلي.
الخطوة 1. قم بتشغيل سكريبت PowerShell على الكمبيوتر المستهدف، إما يدويًا، أو من خلال مهمة مجدولة، أو كجزء من سكريبت آلي. سيتم التقاط لقطة الشاشة على تلك الآلة في لحظة تشغيل السكريبت.
الخطوة 2. قم بتحميل تجميعات .NET المطلوبة باستخدام Add-Type. يتم استخدام تجميع System.Drawing لإنشاء وإدارة بيانات الصورة، بينما يلزم تجميع System.Windows.Forms للكشف عن معلومات الشاشة مثل الدقة.
الخطوة 3. حدد مسار إخراج سيتم حفظ لقطة الشاشة فيه. يجب أن يكون هذا المسار موجودًا وقابلًا للكتابة، على سبيل مجلد مثل C:\Temp، لضمان إمكانية إنشاء ملف الصورة بنجاح.
الخطوة 4. اكتشف دقة الشاشة عن طريق قراءة حدود الشاشة الأساسية من System.Windows.Forms.Screen. تضمن هذه الخطوة تطابق لقطة الشاشة مع حجم الشاشة المرئي الكامل.
الخطوة 5. أنشئ كائن صورة نقطية في الذاكرة باستخدام عرض وارتفاع الشاشة المكتشف. تعمل هذه الصورة النقطية كصورة فارغة ستحتوي على محتوى الشاشة الملتقط.
الخطوة 6. أنشئ كائن رسوميات من الصورة النقطية. هذا الكائن الرسومي مسؤول عن رسم ونسخ البيانات المرئية إلى الصورة النقطية.
الخطوة 7. استخدم طريقة CopyFromScreen لنسخ جميع وحدات البكسل المرئية للشاشة إلى الصورة النقطية. هذه هي الخطوة التي يتم فيها التقاط لقطة الشاشة الفعلية.
الخطوة 8. احفظ الصورة النقطية كملف صورة وقم بتحرير موارد النظام عن طريق التخلص من كائنات الرسوميات والصور النقطية. يمكن بعد ذلك مراجعة لقطة الشاشة لاحقًا لأغراض استكشاف الأخطاء وإصلاحها أو التوثيق.
يمكنك اتباع هذا المثال لاستخدام PowerShell لالتقاط لقطة شاشة لكمبيوتر بعيد:
# Define remote computer name
$RemoteComputer = "REMOTE-PC-NAME"
# Define screenshot save path on the remote computer
$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
للموظفين التقنيين والعاملين عن بُعد الذين يريدون نتائج سريعة دون نصوص برمجية معقدة، يُعد AnyViewer خيارًا عمليًا. فهو يوفر طريقة سهلة لالتقاط شاشات الأجهزة البعيدة مع تجنب مشكلات الإعداد والأذونات التي تأتي غالبًا مع الأدوات القائمة على الأوامر. وهذا يجعله مثاليًا لمهام الدعم اليومية والمراقبة الروتينية.
بمجرد الاتصال بجهاز بعيد، يكون أخذ لقطة الشاشة مباشرًا. كل ما عليك هو النقر على زر لقطة الشاشة، ويتم حفظ الصورة مباشرة على جهازك المحلي. لا حاجة لضبط برامج تشغيل العرض أو لصق الصور يدويًا في برامج أخرى. ولأن AnyViewer يدعم الوصول دون حضور، يمكنك التقاط الشاشات حتى عندما لا يكون هناك مستخدم مسجل الدخول، وهو أمر مفيد للتحقق من الخوادم أو المهام الخلفية.
AnyViewer يزيل أيضًا العوائق التقنية الشائعة. لا تحتاج إلى تكوين جدران الحماية أو فتح المنافذ أو تغيير سياسات النظام. يعرض الشاشة الحقيقية بموثوقية دون مشكلات عرض سوداء، وجميع بيانات الصورة محمية بتشفير قوي أثناء النقل. من خلال الجمع بين السرعة والبساطة والأمان، يجعل AnyViewer عملية التقاط لقطات الشاشة عن بُعد أسهل وأكثر كفاءة بكثير.
الخطوة 1. قم بتثبيت وتشغيل AnyViewer على كلا الكمبيوترين. انتقل إلى تسجيل الدخول > إنشاء حساب لإنشاء حساب AnyViewer. (إذا كنت قد أنشأت حسابًا بالفعل على موقعه الرسمي، يمكنك تسجيل الدخول مباشرة.)
الخطوة 2. ثم يمكنك رؤية أنك سجّلت الدخول بنجاح إلى AnyViewer. سيتم تعيين جهازك تلقائيًا إلى الحساب الذي سجّلت الدخول إليه.
الخطوة 3. سجّل الدخول إلى حساب AnyViewer نفسه على الجهازين؛ على جهازك المحلي، انتقل إلى الجهاز، ثم يمكنك تحقيق اتصال مباشر بالنقر على التحكم بنقرة واحدة.
ثم يمكنك التقاط شاشة الجهاز البعيد بنفس الطريقة التي تتبعها على جهاز كمبيوتر محلي.
مقارنة: PowerShell مقابل AnyViewer
| الميزة | PowerShell / البرامج النصية | AnyViewer |
|---|---|---|
| صعوبة الإعداد | عالية (تتطلب ترميزًا وتهيئة WinRM) | منخفضة (ثمّن وابدأ) |
| معالجة الجلسة | غالبًا ما تلتقط شاشة سوداء (الجلسة 0) | تلتقط سطح المكتب المرئي (معالجة تلقائية) |
| الأمان | يتطلب تخفيض سياسات التنفيذ | يستخدم تشفير ECC من طرف إلى طرف |
| أفضل حالة استخدام | النشر الجماعي (100 جهاز كمبيوتر في وقت واحد) | استكشاف الأخطاء وإصلاحها لأجهزة محددة |
الخلاصة
بينما تقدم PowerShell و CMD إمكانيات أتمتة قوية، إلا أنها غالبًا ما تكون غير مناسبة للمهام الرسومية مثل التقاط الشاشة بسبب عزل الجلسة 0 وتعقيدات الأذونات.
للمسؤولين الذين يحتاجون إلى سجلات بصرية موثوقة وعالية الدقة دون مخاطر الشاشات السوداء أو الثغرات الأمنية، فإن أداة مخصصة مثل AnyViewer هي الخيار الاحترافي. فهي تتيح لك التركيز على ما هو موجود على الشاشة، بدلاً من القلق حول كيفية التقاطه.
الأسئلة الشائعة
1. هل يمكن لـ PowerShell حقًا التقاط لقطة شاشة لكمبيوتر بعيد؟
نعم، يمكن لـ PowerShell التقاط لقطة شاشة عن طريق تشغيل سكريبت على الكمبيوتر البعيد باستخدام PowerShell عن بُعد. يعتمد الالتقاط على جلسة المستخدم النشطة والأذونات.
2. أين يتم حفظ لقطة الشاشة عند استخدام PowerShell عن بُعد؟
يتم حفظ لقطة الشاشة على الكمبيوتر البعيد، وليس على الجهاز المحلي. يجب عليك تحديد مسار قابل للكتابة على الجهاز الهدف، مثل C:\Temp.
3. لماذا تظهر لقطات شاشة PowerShell أحيانًا شاشة سوداء؟
يحدث هذا عادةً لأن السكريبت يعمل في جلسة غير تفاعلية، مثل الجلسة 0، والتي لا يمكنها الوصول إلى سطح المكتب المرئي.
4. ما هي مكونات .NET المطلوبة لالتقاط الشاشة عبر PowerShell؟
يتطلب السكريبت System.Drawing لإنشاء الصور وحفظها، وSystem.Windows.Forms للكشف عن دقة الشاشة ومعلومات العرض.
5. لماذا يُعد AnyViewer أسهل من PowerShell لالتقاط لقطات الشاشة عن بُعد؟
يقوم AnyViewer بالتقاط سطح المكتب المرئي مباشرةً وحفظ الصور على الكمبيوتر المحلي. فهو يتجنب مشاكل السكريبتات والجلسات والأذونات، مما يجعله أسرع للاستخدام اليومي.