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

पावरशेल स्क्रिप्ट में लॉग फाइल करने के लिए आउटपुट लिखना

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

सरलतम स्थिति में, यदि आप किसी सूचना संदेश का आउटपुट या पावरशेल कमांड परिणाम को टेक्स्ट लॉग फ़ाइल में लिखना चाहते हैं, तो आप पीएस आउटपुट को टेक्स्ट फ़ाइल में रीडायरेक्ट करने के लिए निम्न स्वरूपों में से एक का उपयोग कर सकते हैं:

Write-Output "Files are successfully created in $env:computername" >> C:\PS\Logs\TestLog.txt
Add-Content -Path C:\PS\Logs\TestLog.txt -Value "Files are successfully created in $env:computername"
"Files are successfully created in $env:computername" | Out-File -FilePath C:\PS\Logs\TestLog.txt –Append

सभी मामलों में, कमांड आपके द्वारा निर्दिष्ट टेक्स्ट के साथ एक txt फ़ाइल में एक नई लाइन जोड़ते हैं।

यदि आप हर बार लॉग फ़ाइल की सामग्री को अधिलेखित करना चाहते हैं, तो Set-Content . का उपयोग करें सीएमडीलेट।

पावरशेल स्क्रिप्ट में लॉग फाइल करने के लिए आउटपुट लिखना

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

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

आप नीचे दिखाए अनुसार एक फ़ंक्शन बना सकते हैं:

$Logfile = "C:\PS\Logs\proc_$env:computername.log"
function WriteLog
{
Param ([string]$LogString)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
$LogMessage = "$Stamp $LogString"
Add-content $LogFile -value $LogMessage
}

फिर राइटलॉग . को कॉल करें यदि आप कुछ लॉग करना चाहते हैं तो कार्य करें।

WriteLog "The script is run"
WriteLog "Calculating…."
Start-Sleep 20
WriteLog "The script is successfully executed"

अब आप लॉग फ़ाइल में प्रत्येक प्रविष्टि का समय देख सकते हैं।

पावरशेल स्क्रिप्ट में लॉग फाइल करने के लिए आउटपुट लिखना

आप Write-Host . को बदल सकते हैं LogWrite के साथ कॉल करता है आपकी लिपि में वाले।

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

अपने वर्तमान पावरशेल सत्र को लॉग करने के लिए, प्रारंभ-प्रतिलेख cmdlet का उपयोग किया जाता है।

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

Transcript started, output file is C:\Users\user\Documents\PowerShell_transcript.DESKTOP-P2FHTKQ.+IzDgZiN.20210908163729.txt
है आप टेक्स्ट फ़ाइल का पथ निम्नानुसार निर्दिष्ट कर सकते हैं:

Start-Transcript -Append C:\PS\Logs\PSScriptLog.txt

–जोड़ें विकल्प इंगित करता है कि फ़ाइल के अंत में नए सत्र लॉग किए जाएंगे (इसे अधिलेखित किए बिना)।

कुछ पॉवरशेल कमांड चलाएँ जो परिणामों को कंसोल पर आउटपुट करते हैं। उदाहरण के लिए, चल रही प्रक्रियाओं, सेवाओं और AD प्रतिकृति स्थिति की सूची प्रदर्शित करते हैं:

Get-Process| where-object {$_.WorkingSet -GT 500000*1024}|select processname,@{l="Used RAM(MB)"; e={$_.workingset / 1mb}} |sort "Used RAM(MB)" –Descending
Get-Service | Where-Object {$_.status -eq 'Running'}
Get-ADReplicationFailure -Target mun-dc01

वर्तमान पावरशेल सत्र के लिए लॉगिंग रोकें:

Stop-Transcript

फिर प्रतिलेख लॉग फ़ाइल खोलें।

पावरशेल स्क्रिप्ट में लॉग फाइल करने के लिए आउटपुट लिखना

जैसा कि आप देख सकते हैं, लॉग कंसोल और सभी आउटपुट में चलाए गए पावरशेल कमांड के पूरे इतिहास को दिखाता है।

सभी त्रुटियों और चेतावनियों को भी लॉग किया जाता है, और जटिल पावरशेल स्क्रिप्ट को डीबग करते समय यह बेहद सुविधाजनक होता है।

आप Start-Transcript का उपयोग कर सकते हैं और Stop-Transcript सभी क्रियाओं और आउटपुट को मूल रूप से लॉग करने के लिए अपनी PowerShell स्क्रिप्ट में cmdlets।

समूह नीति विकल्प का उपयोग करना पावरशेल ट्रांसक्रिप्शन चालू करें (कंप्यूटर कॉन्फ़िगरेशन -> प्रशासनिक टेम्पलेट -> विंडोज घटक -> विंडोज पावरशेल), आप कंप्यूटर पर चलने वाले सभी पावरशेल कमांड और आउटपुट के स्वचालित लॉगिंग को सक्षम कर सकते हैं। कंप्यूटर पर GPO सेटिंग्स को अपडेट करने के बाद, प्रत्येक चल रही powershell.exe प्रक्रिया के लिए एक अलग टेक्स्ट लॉग फ़ाइल बनाई जाएगी और सभी PS कमांड और उनके आउटपुट लॉग किए जाएंगे।
पावरशेल स्क्रिप्ट में लॉग फाइल करने के लिए आउटपुट लिखना


  1. पॉवरशेल स्क्रिप्ट में विराम कैसे जोड़ें (उदाहरणों के साथ)

    इस लेख में मैं आपको दिखाऊंगा कि एक पॉवरशेल स्क्रिप्ट में एक विराम कैसे जोड़ा जाता है। ऐसे कई अलग-अलग तरीके हैं जिनसे आप विराम या प्रतीक्षा आदेश जोड़ सकते हैं, नीचे मैं आपको उदाहरणों के साथ ये तरीके दिखाऊंगा। पॉवरशेल स्क्रिप्ट में विराम कैसे जोड़ें पॉवरशेल स्क्रिप्ट में विराम जोड़ने के लिए इन चरण

  1. PowerShell में फ़ोल्डर और सबफ़ोल्डर कैसे हटाएं

    विंडोज 10 पर किसी भी फाइल से छुटकारा पाना उतना ही आसान है जितना कि पाई खाना। हालाँकि, फ़ाइल एक्सप्लोरर में निष्पादित हटाने की प्रक्रिया की अवधि अलग-अलग आइटम में भिन्न होती है। इसे प्रभावित करने वाले विभिन्न कारक आकार, हटाए जाने वाली अलग-अलग फ़ाइलों की संख्या, फ़ाइल प्रकार आदि हैं। इस प्रकार, हजारों

  1. PowerShell का उपयोग करके फ़ाइलों और फ़ोल्डरों को कैसे हटाएं

    आपकी सभी फ़ाइलों और फ़ोल्डरों को मैन्युअल रूप से हटाना एक परेशानी हो सकती है। लेकिन, अगर आप पावरशेल के आसपास अपना रास्ता जानते हैं, तो यह होना जरूरी नहीं है। इस लेख में, हम PowerShell का उपयोग करके आपकी Windows फ़ाइलों और फ़ोल्डरों को हटाने के विभिन्न तरीके प्रस्तुत करते हैं। PowerShell के साथ अपनी