मुखपृष्ठ » कैसे » Geek स्कूल आपका पहला पूर्ण PowerShell स्क्रिप्ट लेखन

    Geek स्कूल आपका पहला पूर्ण PowerShell स्क्रिप्ट लेखन

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

    श्रृंखला के पिछले लेखों को अवश्य पढ़ें:

    • PowerShell के साथ विंडोज को स्वचालित करने का तरीका जानें
    • PowerShell में Cmdlets का उपयोग करना सीखना
    • सीखना कैसे PowerShell में वस्तुओं का उपयोग करने के लिए
    • PowerShell में लर्निंग फॉर्मेटिंग, फ़िल्टरिंग और तुलना
    • PowerShell में रीमोटिंग का उपयोग करना सीखें
    • कंप्यूटर की जानकारी प्राप्त करने के लिए PowerShell का उपयोग करना
    • पॉवरशेल में संग्रह के साथ काम करना
    • जानिए कैसे करें PowerShell में नौकरियों का उपयोग
    • जानें कि पावरशेल कैसे बढ़ाएं
    • पॉवरशेल चर, इनपुट और आउटपुट सीखना

    आपका पहला स्क्रिप्ट लेखन

    पहली चीज़ जो हमें करने की ज़रूरत है वह है उस जानकारी को एक्सेस करने का एक तरीका जो हम खोज रहे हैं। चूंकि हम प्रबंधन जानकारी के साथ काम कर रहे हैं, हमें संभवतः WMI का उपयोग करने पर एक नज़र डालनी होगी, जिसमें वास्तव में Win32_OperatingSystem नामक एक वर्ग है जो आपको अपने ऑपरेटिंग सिस्टम के बारे में क्रियात्मक जानकारी देखने की अनुमति देता है, जिसमें आखिरी बार यह शुरू हुआ था.

    इसलिए अब हम जानते हैं कि हम अपने द्वारा ढूंढी जाने वाली जानकारी को कहां पा सकते हैं, आईएसई खोल सकते हैं और निम्नलिखित टाइप कर सकते हैं.

    Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |

    Select-Object -Property CSName, LastBootUpTime

    नोट: मुझे अपने कोड को दो लाइनों में विभाजित करना था ताकि यह सभी स्क्रीनशॉट में फिट हो जाए, लेकिन इसे एक ही लाइन पर टाइप करने के लिए स्वतंत्र महसूस करें। यदि आप इसे दो लाइनों में विभाजित करना चुनते हैं, तो कृपया सुनिश्चित करें कि पाइप चरित्र लाइन 1 पर अंतिम वर्ण है.

    अब हरे "रन स्क्रिप्ट" बटन पर क्लिक करें या कोड का परीक्षण करने के लिए अपने कीबोर्ड पर F5 कुंजी दबाएं.

    WMI का समय थोड़ा गूढ़ हो सकता है। इसका मतलब है कि अगर आप लास्टबूट यूपी टाइम प्रॉपर्टी को देखते हैं, तो यह 2013-03-19 18:26:21 पर कहता है, लेकिन किसी कारण से डब्ल्यूएमआई के लोगों ने उस सभी को एक ही तार में समेटने का फैसला किया। हमारे लिए सौभाग्य से, हमें मैन्युअल रूप से स्ट्रिंग को पार्स करने के बारे में चिंता करने की ज़रूरत नहीं है क्योंकि ऐसा करने का एक आसान तरीका है, हालांकि यह अधिक उन्नत है। आपको इस तरह दिखने के लिए कोड का चयन-ऑब्जेक्ट भाग बदलना होगा:

    Select-Object -Property CSName, @ n = "अंतिम बूट";

    ई = [Management.ManagementDateTimeConverter] :: ToDateTime ($ _। LastBootUpTime)

    हम यहां क्या कर रहे हैं, "लास्ट बूटेड" नामक एक कस्टम प्रॉपर्टी बना रहे हैं और यह निर्दिष्ट कर रहे हैं कि इसकी वैल्यू को मौजूदा पाइपलाइन ऑब्जेक्ट के लास्टबूट यूपी टाइम प्रॉपर्टी पर ToDateTime स्थैतिक विधि को कॉल करने का परिणाम होना चाहिए। आपका कोड अब इस तरह दिखना चाहिए.

    अब कोड चलाने से बहुत अधिक पढ़ने योग्य अंतिम बूट समय मिलेगा.

    अब जब हम अपनी स्क्रिप्ट की बुनियादी कार्यक्षमता से खुश हैं, तो हमें इसे बचाने की आवश्यकता है। सरलता के लिए, आइए इसे निम्नलिखित के रूप में सहेजें:

    C: \ प्राप्त करें-LastBootTime.ps1

    अब ISE के निचले आधे हिस्से पर जाएँ और निम्नलिखित चलाएँ:

    C: \ प्राप्त करें-LastBootTime.ps1

    महान! हमारी स्क्रिप्ट उम्मीद के मुताबिक काम कर रही है, हालांकि हमारी स्क्रिप्ट के साथ अभी भी एक समस्या है। हमने उस कंप्यूटर का नाम हार्डकोड किया है जिसे हम अंतिम बूट समय प्राप्त करना चाहते हैं। हार्डकोडिंग मानों के बजाय, हमें बल्कि एक पैरामीटर प्रदान करना चाहिए ताकि जो भी स्क्रिप्ट का उपयोग कर रहा है वह चुन सके कि वे किस कंप्यूटर के खिलाफ स्क्रिप्ट चलाते हैं। ऐसा करने के लिए, अपनी स्क्रिप्ट के शीर्ष पर जाएं और निम्न कार्य करें.

    परम (
    [स्ट्रिंग] $ ComputerName
    )

    फिर $ ComputerName वैरिएबल के साथ हार्डकोडेड लोकलहोस्ट वैल्यू को बदलें। आपकी स्क्रिप्ट अब इस तरह दिखनी चाहिए:

    अपनी स्क्रिप्ट को सहेजें, फिर ISE के निचले आधे हिस्से में वापस जाएँ और अपनी स्क्रिप्ट की मदद देखें.

    मदद C: \ Get-LastBootTime.ps1

    बहुत बढ़िया, इसलिए अब हम उस कंप्यूटर का नाम निर्दिष्ट कर सकते हैं जिसे हम अपने नए ComputerName पैरामीटर का उपयोग करने के लिए अंतिम बूट समय प्राप्त करना चाहते हैं। दुर्भाग्य से, अभी भी कुछ चीजें गलत हैं। सबसे पहले, ComputerName पैरामीटर वैकल्पिक है और दूसरी बात, यह कि मैंने अब तक देखी गई सबसे बदसूरत मददगार है, तो चलिए उन मुद्दों को जल्दी से ठीक करते हैं। ComputerName पैरामीटर को अनिवार्य बनाने के लिए, परम ब्लॉक की सामग्री को निम्न में बदलें.

    [पैरामीटर (अनिवार्य = $ true)] [स्ट्रिंग] $ ComputerName

    एक बेहतर मदद फ़ाइल बनाने के लिए, सबसे सामान्य तरीका टिप्पणी आधारित मदद का उपयोग करना है। इसका मतलब है कि हम सिर्फ एक अतिरिक्त लंबी टिप्पणी को स्क्रिप्ट के शीर्ष पर जोड़ते हैं.

    <#
    .SYNOPSIS
    जब आपका पीसी शुरू हुआ तब दिखाता है.
    .विवरण
    यह एक WMI रैपर फ़ंक्शन है जो आपके पीसी को अंतिम बार शुरू करने के लिए मिलता है.
    .PARAMETER ComputerName
    उस कंप्यूटर का नाम जिसके विरुद्ध आप कमांड चलाना चाहते हैं.
    .उदाहरण
    Get-LastBootTime -ComputerName लोकलहोस्ट
    .संपर्क
    www.howtogeek.com
    #>

    एक बार जो कुछ भी किया जाता है, आपको इस तरह से दिखने वाली एक स्क्रिप्ट के साथ समाप्त होना चाहिए.

    चलिए अब चलते हैं और हमारी नई मदद फ़ाइल देखें.

    आह, बहुत अच्छी लग रही हो! अब जब हमारी स्क्रिप्ट पूरी हो गई है, तो हमारे पास एक आखिरी चीज है: परीक्षण। इसके लिए, मैं ISE से बाहर निकलने जा रहा हूँ और PowerShell कंसोल में वापस आऊंगा ताकि हम यह सुनिश्चित कर सकें कि कोई विसंगतियाँ न हों.

    यदि आप एक साधारण लाइनर के साथ शुरू करते हैं और बस उस पर निर्माण करते रहते हैं जैसे हमने इस गाइड में किया था, तो आप इसे कुछ ही समय में लटका देंगे। इस बार के लोगों के लिए बस इतना ही, आप गीक स्कूल की अगली स्थापना में देखें.