Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

PowerShell के साथ उपयोगकर्ता के डेस्कटॉप का स्क्रीनशॉट लें

हेल्पडेस्क सपोर्ट टीम ने मुझे रिमोट कंप्यूटर से यूजर डेस्कटॉप का स्क्रीनशॉट जल्दी से प्राप्त करने के लिए पावरशेल स्क्रिप्ट लिखने के लिए कहा। मुख्य शर्त यह है कि हेल्पडेस्क कर्मचारी ग्राफिकल रिमोट सपोर्ट टूल्स (एससीसीएम, रिमोट असिस्टेंस, रिमोट डेस्कटॉप सेशन शैडोइंग, आदि) के माध्यम से उपयोगकर्ता के कंप्यूटर से कनेक्ट नहीं होना चाहिए।

पावरशेल का उपयोग करके स्क्रीनशॉट कैप्चर करना

सबसे पहले, आइए जानें कि पावरशेल के साथ स्थानीय कंप्यूटर पर स्क्रीनशॉट कैसे लें। वर्तमान डेस्कटॉप छवि को कैप्चर करने के लिए, आप अंतर्निहित .NET वर्ग System.Windows.Forms का उपयोग कर सकते हैं . मुझे यह पॉवरशेल स्क्रिप्ट मिली है:

$Path ="C:\ScreenCapture"
# सुनिश्चित करें कि स्क्रीनशॉट रखने के लिए निर्देशिका बनाई गई है, अन्यथा इसे बनाएं
अगर (!(test-path $path)) {
नया-आइटम -आइटम टाइप निर्देशिका -फोर्स -पथ $पथ
}
ऐड-टाइप -असेंबलीनाम सिस्टम।विंडोज.फॉर्म
$स्क्रीन =[System.Windows.Forms.Screen]::PrimaryScreen.Bounds
# वर्तमान स्क्रीन रिज़ॉल्यूशन प्राप्त करें
$image =New-Object System.Drawing.Bitmap($screen.Width, $screen.Height)
# एक ग्राफिक ऑब्जेक्ट बनाएं
$ग्राफिक =[System.Drawing.Graphics]::FromImage($image)
$point =New-Object System.Drawing.Point(0, 0)
$graphic.CopyFromScreen($ पॉइंट, $point, $image.Size);
$cursorBounds =New-Object System.Drawing.Rectangle([System.Windows.Forms.Cursor]::Position, [System.Windows.Forms.Cursor]::Current.Size)
# एक स्क्रीनशॉट प्राप्त करें
[System.Windows.Forms.Cursors]::Default.Draw($graphic, $cursorBounds)
$screen_file ="$Path\" + $env:computername + "_" + $env:username + "_" + "$((get-date).tostring( 'yyyy.MM.dd-HH.mm.ss')).png"
# स्क्रीनशॉट को PNG फ़ाइल के रूप में सहेजें
$image.Save($screen_file, [System.Drawing.Imaging.ImageFormat ]::Png)

यह पावरशेल स्क्रिप्ट स्क्रीनशॉट को स्टोर करने के लिए एक निर्देशिका बनाता है, वर्तमान स्क्रीन रिज़ॉल्यूशन प्राप्त करता है, वर्तमान कार्यक्षेत्र की एक छवि को कैप्चर करता है और इसे पीएनजी फ़ाइल के रूप में सहेजता है। पावरशेल स्क्रिप्ट चलाएँ और जांचें कि आपके डेस्कटॉप के स्क्रीनशॉट के साथ निर्दिष्ट निर्देशिका में एक पीएनजी फ़ाइल दिखाई देती है (आप साझा नेटवर्क फ़ोल्डर के लिए यूएनसी पथ निर्दिष्ट कर सकते हैं)। सुविधा के लिए, पीएनजी फ़ाइल के नाम में एक कंप्यूटर का नाम, एक उपयोगकर्ता नाम, एक वर्तमान तिथि और समय होता है।

यदि आप बैच फ़ाइल से PS स्क्रिप्ट को कॉल करना चाहते हैं, तो इस कमांड का उपयोग करें (इस मामले में, आपको PowerShell निष्पादन नीति सेटिंग्स को बदलने की आवश्यकता नहीं है):

powershell.exe -executionpolicy बायपास -फ़ाइल c:\ps\CaptureLocalScreen.ps1

PowerShell के साथ उपयोगकर्ता के डेस्कटॉप का स्क्रीनशॉट लें

पावरशेल स्क्रिप्ट संपादित करने के लिए, मैं पावरहेल आईएसई के बजाय विजुअल स्टूडियो कोड का उपयोग करना पसंद करता हूं।

आप सभी डोमेन उपयोगकर्ताओं के डेस्कटॉप पर पावरशेल स्क्रिप्ट के लिए शॉर्टकट रखने के लिए जीपीओ बना सकते हैं और इसे कॉल करने के लिए हॉट की असाइन कर सकते हैं। अब, जब किसी ऐप में कोई समस्या या त्रुटि दिखाई देती है, तो उपयोगकर्ता केवल असाइन की गई हॉट कुंजियों को दबा सकता है। फिर हेल्पडेस्क साझा फ़ोल्डर में एक उपयोगकर्ता डेस्कटॉप स्क्रीनशॉट दिखाई देता है।

PowerShell का उपयोग करके किसी दूरस्थ कंप्यूटर से डेस्कटॉप स्क्रीनशॉट कैसे लें?

अगला कार्य पॉवरशेल के माध्यम से दूरस्थ कंप्यूटर पर उपयोगकर्ता के डेस्कटॉप का स्क्रीनशॉट प्राप्त करना है। यह या तो एक स्टैंडअलोन कंप्यूटर हो सकता है जो विंडोज 10 या आरडीएस सर्वर चला रहा हो।

एक ग्राफिक टूल का उपयोग करके आरडीएस सर्वर पर उपयोगकर्ता डेस्कटॉप से ​​​​कनेक्ट करने का एक पसंदीदा तरीका शैडो आरडीपी सत्र है।

यदि आप किसी RDS सर्वर (या डेस्कटॉप Windows, जिसमें एकाधिक समवर्ती RDP कनेक्शन की अनुमति है) से डेस्कटॉप स्क्रीनशॉट प्राप्त करना चाहते हैं, तो आपको पहले दूरस्थ कंप्यूटर पर उपयोगकर्ता सत्र ID प्राप्त करनी होगी। निम्न PowerShell स्क्रिप्ट में एक दूरस्थ कंप्यूटर/सर्वर और उपयोगकर्ता खाते का नाम निर्दिष्ट करें:
$ComputerName ="nld-rds1"
$RDUserName ="h.jansen"
$quser =((((क्वेरी उपयोगकर्ता / सर्वर:$कंप्यूटर नाम) -बदलें '^>', '') -बदलें '\s{2,}', ',' | ConvertFrom-Csv)
$usersess=$quser | जहां {$_.USERNAME -जैसे $RDUserName -और $_.STATE -eq "Active"}
$usersessID=$usersess.ID

यदि आप किसी एकल उपयोगकर्ता के साथ दूरस्थ कंप्यूटर से स्क्रीनशॉट प्राप्त करने के लिए स्क्रिप्ट का उपयोग करते हैं, तो सत्र संख्या हमेशा 1 होगी। पिछले RDS सर्वर क्वेरी ब्लॉक को $usersessID =1 से बदलें .

इसे और अधिक सुविधाजनक बनाने के लिए, PowerShell स्क्रिप्ट फ़ाइल को किसी साझा नेटवर्क फ़ोल्डर में सहेजें। फिर CaptureLocalScreen.ps1 . संपादित करें फ़ाइल करें और इसका पथ बदलें:

$पथ =\\nld-fs01\Screen\Log

उपयोगकर्ता स्क्रीनशॉट इस फ़ोल्डर में सहेजे जाएंगे। प्रमाणित उपयोगकर्ताओं . के लिए फ़ोल्डर को लिखने की अनुमति दें डोमेन समूह।

उपयोगकर्ता सत्र आईडी प्राप्त करने के बाद, आप PsExec का उपयोग करके दूरस्थ रूप से उपयोगकर्ता सत्र से जुड़ सकते हैं टूल और स्क्रिप्ट चलाएँ:

तब हेल्पडेस्क टीम का सदस्य अपने कंप्यूटर से स्क्रिप्ट चला सकता है, और दूरस्थ कंप्यूटर के वर्तमान डेस्कटॉप का एक स्क्रीनशॉट निर्दिष्ट निर्देशिका में दिखाई देगा।


  1. कैसे करें:Mac पर स्क्रीनशॉट लें

    ऐप्पल मैक वह सब कुछ करता है जो औसत कंप्यूटर उपयोगकर्ता संभवतः अपने कंप्यूटर का उपयोग करने के लिए करना चाहता है, और इसमें स्क्रीनशॉट कैप्चर करना शामिल है। हालांकि, अधिकांश मैक उपयोगकर्ता ठीक से नहीं जानते कि वे अपने मैक पर स्क्रीनशॉट कैसे कैप्चर कर सकते हैं, और अगर वे ऐसा करते भी हैं, तो वे इस तथ्य

  1. मैक पर स्क्रीनशॉट कैसे लें - कीबोर्ड शॉर्टकट से स्क्रीन कैप्चर करें

    बस कुछ कीस्ट्रोक्स का उपयोग करके, मैक पर अपनी स्क्रीन के हिस्से या पूरी स्क्रीन को कैप्चर करना आसान है। स्क्रीनशॉट कई मामलों में उपयोगी होते हैं, जैसे जब आप कोई ब्लॉग पोस्ट लिख रहे हों और आप ऐसी छवियों का उपयोग करना चाहते हैं जो आपके द्वारा किए जा रहे बिंदुओं को घर तक पहुंचाएं। यह मार्गदर्शिका आपक

  1. कीबोर्ड शॉर्टकट के साथ मैक ओएस पर स्क्रीनशॉट कैसे लें

    यदि आपने हाल ही में विंडोज से मैकओएस पर स्विच किया है, तो आप मैक पर स्क्रीनशॉट लेना भ्रमित कर सकते हैं। ज़रूर, कोई प्रिंट स्क्रीन नहीं है अब आपके कीबोर्ड पर कुंजी। लेकिन इसके बजाय कई कीबोर्ड शॉर्टकट हैं जिनका आप उपयोग कर सकते हैं। सही शॉर्टकट से आप सिंगल विंडो, पूरी स्क्रीन या उसके किसी खास हिस्से क