हालांकि पावरशेल एक कंसोल भाषा है, कभी-कभी किसी विशेष घटना के बारे में किसी उपयोगकर्ता को पीएस स्क्रिप्ट से सूचित करना या उन्हें कुछ करने के लिए संकेत देना आवश्यक होता है। उदाहरण के लिए, आप एक भारी PoSh स्क्रिप्ट के पूरा होने के बारे में या कोई महत्वपूर्ण घटना होने पर एक पॉप-अप सूचना या बैलून टिप प्रदर्शित कर सकते हैं।
सबसे आसान तरीका है Windows स्क्रिप्ट सबसिस्टम . का उपयोग करके किसी भी टेक्स्ट वाली विंडो को प्रदर्शित करना (Wscript ) पावरशेल से कॉल करें।
यह पॉवरशेल कोड आपके संदेश और ओके बटन के साथ एक सामान्य विंडो दिखाएगा।
$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("The report generation script is successfully completed!")
पॉपअप . के विभिन्न गुणों का उपयोग करना विधि, आप अपने संदेश पाठ वाली मोडल विंडो की उपस्थिति को अनुकूलित कर सकते हैं। आप उपयोगकर्ता के उत्तर (हां/नहीं) की स्क्रिप्ट पर भी लौट सकते हैं।
$Output = $wshell.Popup("The report generation script is successfully completed! Do you want to display a report on the screen?",0,"The report is ready",4+32)
पॉपअप विधि के सामान्य सिंटैक्स और उपलब्ध पैरामीटर:
Popup(<Text>,<SecondsToWait>,<Title>,<Type>)
पैरामीटर:
- <
Text
> — एक संदेश पाठ (स्ट्रिंग); - <
SecondsToWait
> - एक संख्या (वैकल्पिक)। सेकंड की संख्या जिसके बाद संदेश विंडो अपने आप बंद हो जाएगी; - <
Title
> -स्ट्रिंग (वैकल्पिक)। पॉप-अप विंडो का शीर्षक टेक्स्ट (कैप्शन); - <
Type
> -नंबर (वैकल्पिक)। झंडे का संयोजन जो बटन और आइकन के प्रकार को निर्धारित करता है।
संभावित प्रकार के ध्वज मान:
- 0 — OK बटन;
- 1 — ठीक है और बटन रद्द करें;
- 2 — रोकें, पुनः प्रयास करें और छोड़ें बटन;
- 3 — हां, नहीं और रद्द करें बटन;
- 4 — हां और नहीं बटन;
- 5 — पुनः प्रयास करें और रद्द करें बटन;
- 16 — स्टॉप आइकॉन;
- 32 — प्रश्न चिह्न;
- 48 — विस्मयादिबोधक चिह्न;
- 64 — सूचना आइकन।
पॉपअप विधि एक पूर्णांक देता है जो यह जानने की अनुमति देता है कि उपयोगकर्ता द्वारा कौन सा बटन क्लिक किया गया था। संभावित मान:
- -1 — समयबाह्य;
- 1 — ओके बटन;
- 2 — रद्द करें बटन;
- 3 — स्टॉप बटन;
- 4 — पुनः प्रयास करें बटन;
- 5 — छोड़ें बटन;
- 6 — हाँ बटन;
- 7 — कोई बटन नहीं।
Windows Forms API के माध्यम से Windows 7, 8.1 और 10 में अधिक आकर्षक पॉप-अप संदेश (गुब्बारा युक्तियाँ) प्रदर्शित किए जा सकते हैं . निम्न पावरशेल कोड विंडोज 10 अधिसूचना बार के बगल में एक पॉप-अप संदेश दिखाएगा जो स्वचालित रूप से 20 सेकंड में गायब हो जाएगा।
Add-Type -AssemblyName System.Windows.Forms
$global:balmsg = New-Object System.Windows.Forms.NotifyIcon
$path = (Get-Process -id $pid).Path
$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)
$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning
$balmsg.BalloonTipText = ‘This is the pop-up message text for the Windows 10 user'
$balmsg.BalloonTipTitle = "Attention $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(20000)
Windows 10 (PowerShell 5.0+) में रंगीन पॉप-अप संदेश बनाने के लिए, आप एक अलग PowerShell मॉड्यूल BurnToast का भी उपयोग कर सकते हैं पावरशेल गैलरी से।
मॉड्यूल को विंडोज 10 पैकेज मैनेजर का उपयोग करके ऑनलाइन रिपॉजिटरी से स्थापित किया गया है:Install-Module -Name BurntToast
उदाहरण के लिए, अब आप आसानी से "ईथरनेट केबल कनेक्ट होने पर वाई-फाई को स्वचालित रूप से अक्षम कैसे करें" लेख से एक रंगीन अधिसूचना जोड़ सकते हैं:
New-BurntToastNotification -Text "Disconnecting from Wi-Fi network", "You have been disconnected from your Wi-Fi network since your device was connected to a high-speed Ethernet LAN" -AppLogo C:\PS\changenetwork.png
इसलिए, आप जानते हैं कि पावरशेल वाले उपयोगकर्ता को अधिसूचना कैसे प्रदर्शित करें। यदि किसी उपयोगकर्ता के पास स्पीकर हैं, तो आप पसंदीदा राग भी बजा सकते हैं:
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(659,500)
[console]::beep(698,350)
[console]::beep(523,150)
[console]::beep(415,500)
[console]::beep(349,350)
[console]::beep(523,150)
[console]::beep(440,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,125)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(440,125)
[console]::beep(523,500)
[console]::beep(440,375)
[console]::beep(523,125)
[console]::beep(659,1000)
[console]::beep(880,500)
[console]::beep(440,350)
[console]::beep(440,150)
[console]::beep(880,500)
[console]::beep(830,250)
[console]::beep(784,250)
[console]::beep(740,125)
[console]::beep(698,125)
[console]::beep(740,250)
[console]::beep(455,250)
[console]::beep(622,500)
[console]::beep(587,250)
[console]::beep(554,250)
[console]::beep(523,125)
[console]::beep(466,125)
[console]::beep(523,250)
[console]::beep(349,250)
[console]::beep(415,500)
[console]::beep(349,375)
[console]::beep(523,125)
[console]::beep(440,500)
[console]::beep(349,375)
[console]::beep(261,125)
[console]::beep(440,1000)