हालांकि PowerShell एक कंसोल भाषा है, कभी-कभी PS स्क्रिप्ट से किसी विशेष घटना के बारे में उपयोगकर्ता को सूचित करना या उन्हें कुछ करने के लिए संकेत देना आवश्यक होता है। उदाहरण के लिए, आप भारी PoSh स्क्रिप्ट के पूरा होने पर या जब कोई महत्वपूर्ण घटना होती है, तो पॉप-अप अधिसूचना या बैलून टिप प्रदर्शित कर सकते हैं।
सबसे आसान तरीका है PowerShell से Windows स्क्रिप्ट सबसिस्टम (Wscript) कॉल का उपयोग करके किसी भी टेक्स्ट वाली विंडो प्रदर्शित करना।
यह PowerShell कोड आपके संदेश और OK बटन के साथ एक सामान्य विंडो दिखाएगा।
$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("रिपोर्ट जनरेशन स्क्रिप्ट सफलतापूर्वक पूरी हुई!")

Popup विधि के विभिन्न गुणों का उपयोग करके, आप अपने संदेश टेक्स्ट वाली मोडल विंडो की उपस्थिति को कस्टमाइज़ कर सकते हैं। आप उपयोगकर्ता का उत्तर (हाँ/नहीं) स्क्रिप्ट पर भी वापस कर सकते हैं।

$Output = $wshell.Popup("रिपोर्ट जनरेशन स्क्रिप्ट सफलतापूर्वक पूरी हुई! क्या आप रिपोर्ट को स्क्रीन पर प्रदर्शित करना चाहते हैं?",0,"रिपोर्ट तैयार है",4+32)
Popup विधि का सामान्य सिंटैक्स और उपलब्ध पैरामीटर:
Popup(<Text>,<SecondsToWait>,<Title>,<Type>)
पैरामीटर:
- <
Text> — एक संदेश टेक्स्ट (स्ट्रिंग); - <
SecondsToWait> — एक संख्या (वैकल्पिक)। सेकंड की संख्या जिसके बाद संदेश विंडो स्वचालित रूप से बंद हो जाएगी; - <
Title> — स्ट्रिंग (वैकल्पिक)। पॉप-अप विंडो का शीर्षक टेक्स्ट (कैप्शन); - <
Type> — संख्या (वैकल्पिक)। फ्लैग का संयोजन जो बटन और आइकन के प्रकार को निर्धारित करता है।
संभावित Type फ्लैग मान:
-
- 0 — OK बटन;
- 1 — OK और Cancel बटन;
- 2 — रोकें, पुनः प्रयास और छोड़ें बटन;
- 3 — हाँ, नहीं और रद्द करें बटन;
- 4 — हाँ और नहीं बटन;
- 5 — पुनः प्रयास और रद्द करें बटन;
- 16 — रोकें आइकन;
- 32 — प्रश्न आइकन;
- 48 — विस्मयादिबोधक आइकन;
- 64 — सूचना आइकन।
Popup विधि एक पूर्णांक लौटाती है जो यह जानने की अनुमति देती है कि उपयोगकर्ता द्वारा कौन सा बटन क्लिक किया गया था। संभावित मान:
- -1 — टाइमआउट;
- 1 — OK बटन;
- 2 — रद्द करें बटन;
- 3 — रोकें बटन;
- 4 — पुनः प्रयास बटन;
- 5 — छोड़ें बटन;
- 6 — हाँ बटन;
- 7 — नहीं बटन।
Windows 7, 8.1 और 10 में Windows Forms API के माध्यम से अधिक आकर्षक पॉप-अप संदेश (बैलून टिप्स) प्रदर्शित किए जा सकते हैं। निम्न PowerShell कोड Windows 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 = 'यह Windows 10 उपयोगकर्ता के लिए पॉप-अप संदेश टेक्स्ट है'
$balmsg.BalloonTipTitle = "ध्यान $Env:USERNAME"
$balmsg.Visible = $true
$balmsg.ShowBalloonTip(20000)

Windows 10 (PowerShell 5.0+) में रंगीन पॉप-अप संदेश बनाने के लिए, आप PowerShell गैलरी से एक अलग PowerShell मॉड्यूल BurntToast का भी उपयोग कर सकते हैं।
मॉड्यूल को Windows 10 पैकेज मैनेजर का उपयोग करके ऑनलाइन रिपॉजिटरी से स्थापित किया जाता है:
Install-Module -Name BurntToast
उदाहरण के लिए, अब आप "ईथरनेट केबल कनेक्ट होने पर स्वचालित रूप से Wi-Fi अक्षम कैसे करें" लेख से स्क्रिप्ट में आसानी से एक रंगीन अधिसूचना जोड़ सकते हैं:
New-BurntToastNotification -Text "Wi-Fi नेटवर्क से डिस्कनेक्ट हो रहा है", "आप अपने Wi-Fi नेटवर्क से डिस्कनेक्ट हो गए हैं क्योंकि आपका डिवाइस हाई-स्पीड ईथरनेट LAN से जुड़ा था" -AppLogo C:\PS\changenetwork.png
इसलिए, आप जानते हैं कि PowerShell के साथ उपयोगकर्ता को अधिसूचना कैसे प्रदर्शित करें। यदि उपयोगकर्ता के पास स्पीकर हैं, तो आप उनकी पसंदीदा धुन भी बजा सकते हैं:
[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)