যদিও PowerShell একটি কনসোল ল্যাঙ্গুয়েজ, কিন্তু কখনও কখনও একটি PS স্ক্রিপ্ট থেকে ব্যবহারকারীকে কোনো নির্দিষ্ট ইভেন্ট সম্পর্কে নোটিফাই করতে হয় বা তাদের কিছু করতে প্রম্পট করতে হয়। উদাহরণস্বরূপ, আপনি একটি ভারী PoSh স্ক্রিপ্ট पूरा হওয়ার বা একটি গুরুত্বপূর্ণ ইভেন্ট ঘটলে একটি পপ-আপ নোটিফিকেশন বা ব্যালুন টিপ প্রদর্শন করতে পারেন।
সবচেয়ে সহজ উপায় হলো Windows script subsystem (Wscript) PowerShell থেকে কল করে যেকোনো টেক্সট সহ একটি উইন্ডো প্রদর্শন করা।
এই PowerShell কোডটি আপনার মেসেজ এবং OK বাটন সহ একটি সাধারণ উইন্ডো দেখাবে।
$wshell = New-Object -ComObject Wscript.Shell
$Output = $wshell.Popup("The report generation script is successfully completed!")

Popup মেথอดের বিভিন্ন প্রপার্টি ব্যবহার করে আপনি আপনার মেসেজ টেক্সট সহ মোডাল উইন্ডোর চেহারা কাস্টমাইজ করতে পারেন। আপনি ব্যবহারকারীর জবাব (Yes/No) স্ক্রিপ্টে ফেরত পাওয়ার সুযোগও পাবেন।

$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 মেথอดের সাধারণ সিনট্যাক্স এবং উপলব্ধ প্যারামিটার:
Popup(<Text>,<SecondsToWait>,<Title>,<Type>)
প্যারামিটার:
- <
Text> — একটি মেসেজ টেক্সট (স্ট্রিং); - <
SecondsToWait> — একটি সংখ্যা (অপশনাল)। উইন্ডোটি স্বয়ংক্রিয়ভাবে বন্ধ হওয়ার আগে কত সেকেন্ড অপেক্ষা করবে; - <
Title> — স্ট্রিং (অপশনাল)। পপ-আপ উইন্ডোর টাইটেল টেক্সট (ক্যাপশন); - <
Type> — সংখ্যা (অপশনাল)। বাটন এবং আইকনের টাইপ নির্ধারণকারী ফ্ল্যাগের কম্বিনেশন।
Type ফ্ল্যাগের সম্ভাব্য মান:
-
- 0 — OK বাটন;
- 1 — OK এবং Cancel বাটন;
- 2 — Stop, Retry এবং Skip বাটন;
- 3 — Yes, No এবং Cancel বাটন;
- 4 — Yes এবং No বাটন;
- 5 — Retry এবং Cancel বাটন;
- 16 — Stop আইকন;
- 32 — Question আইকন;
- 48 — Exclamation আইকন;
- 64 — Information আইকন।
Popup মেথอด একটি ইন্টিজার ফেরত দেয় যা জানতে দেয় ব্যবহারকারী কোন বাটনে ক্লিক করেছে। সম্ভাব্য মান:
- -1 — টাইমআউট;
- 1 — OK বাটন;
- 2 — Cancel বাটন;
- 3 — Stop বাটন;
- 4 — Retry বাটন;
- 5 — Skip বাটন;
- 6 — Yes বাটন;
- 7 — No বাটন।
উইন্ডোজ ৭, ৮.১ & ১০-এ Windows Forms API এর মাধ্যমে আরও আকর্ষণীয় পপ-আপ মেসেজ (ব্যালুন টিপস) প্রদর্শন করা যাবে। নিচের PowerShell কোডটি উইন্ডোজ ১০ নোটিফিকেশন বারের পাশে একটি পপ-আপ মেসেজ দেখাবে যা ২০ সেকেন্ড পর স্বয়ংক্রিয়ভাবে গায়েব হয়ে যাবে।
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)

উইন্ডোজ ১০-এ (PowerShell 5.0+) রঙিন পপ-আপ মেসেজ তৈরি করতে, আপনি PowerShell গ্যালেরি থেকে আলাদা একটি PowerShell মডিউল BurntToast ব্যবহার করতে পারেন।
মডিউলটি অনলাইন রিপোজিটরি থেকে উইন্ডোজ ১০ প্যাকেজ ম্যানেজার ব্যবহার করে ইনস্টল করা যাবে:Install-Module -Name BurntToast
উদাহরণস্বরূপ, আপনি "How to automatically disable Wi-Fi when Ethernet cable is connected" আর্টিকেলের স্ক্রিপ্টে সহজেই একটি রঙিন নোটিফিকেশন যোগ করতে পারেন:
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
সুতরাং, আপনি জানতে পেরেছেন 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)