Kljub temu, da je PowerShell konzolni jezik, je včasih treba uporabnika iz skripta PowerShell obvestiti o določenem dogodku ali potrebi po izvedbi določenega dejanja. Na primer, prikažite obvestilo o koncu neke dolgotrajne skripte PoSh ali o pojavu kakšnega pomembnega dogodka.
Najlažji način za prikaz okna s poljubnim preizkusom skozi skriptni podsistem Windows - Wscript.
Naslednja koda bo prikazala navadno besedilno polje s potrebnim besedilom in gumb V redu.
$ wshell = Nov objekt -ComObject Wscript.Shell
$ Output = $ wshell.Popup ("Scenarij generiranja poročil je zaključen")
S pomočjo različnih lastnosti metode Popup lahko prilagodite videz modalnega sporočila. Zlasti v skript lahko vrnete rezultate odgovora uporabnika na vprašanje (da / ne).
$ Output = $ wshell.Popup ("Skript za ustvarjanje poročila je končan! Ali ga želite prikazati na zaslonu?", 0, "Poročilo je pripravljeno", 4 + 32)
Splošna sintaksa in parametri Popup metode:
Popup (,,,)
Parametri:
- - niz, besedilo sporočila.
- - poljubno, številka. Število sekund, po katerih se okno samodejno zapre.
- - poljubno, niz. Besedilo okna sporočila.
- - poljubno, številka. Kombinacija zastav določa vrsto gumbov in ikone. Možne vrednosti zastave:
- 0 - gumb OK.
- 1 - Gumbi OK in Prekliči.
- 2 - Gumbi Stop, Ponovi, Preskoči.
- 3 - Da, ne, gumbe za preklic.
- 4 - Da in Ne.
- 5 - Gumbi ponovite in prekličite.
- 16 - ikona ustavitve.
- 32 - Ikona vprašanja.
- 48 - Vzklikniška ikona.
- 64 - Informacijska ikona.
Opis: vrne celo število, s katerim lahko ugotovite, kateri gumb je uporabnik pritisnil. Možne vrednosti:
- -1 - časovna omejitev.
- 1 - Gumb OK.
- 2 - Gumb Prekliči.
- 3 - Gumb Stop.
- 4 - Gumb Ponovi.
- 5 - Gumb Preskoči.
- 6 - Da.
- 7 - Brez gumba.
Bolj privlačna in prijetna videz pojavnih sporočil (balonov) se lahko prikažejo v sistemih Windows 7, 8.1 in 10 prek API-ja Windows Forms. Naslednja koda PowerShell prikaže pojavno sporočilo poleg obvestilne plošče Windows 10, ki bo samodejno izginilo po 10 sekundah.
Add-Type -AssemblyName System.Windows.Forms
$ global: balmsg = Nov objektni sistem.Windows.Forms.NotifyIcon
$ path = (Get-Process -id $ pid). Pot
$ balmsg.Icon = [System.Drawing.Icon] :: ExtractAssociatedIcon ($ pot)
$ balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon] :: Opozorilo
$ balmsg.BalloonTipText = 'To je besedilo pojavnega sporočila za uporabnika sistema Windows 10'
$ balmsg.BalloonTipTitle = "Opozorilo $ Env: USERNAME"
$ balmsg.Visible = $ true
$ balmsg.ShowBalloonTip (10000)
Poleg tega za ustvarjanje pisanih pojavnih sporočil v sistemu Windows 10 (PowerShell 5.0 ali novejši) lahko uporabite ločen modul PowerShell BurntToast iz galerije PowerShell.
Modul je nameščen iz spletnega skladišča z upraviteljem paketov Windows 10:Namestite modul -Name BurntToast
Zdaj lahko na primer v prej obravnavani skript za samodejno prekinitev omrežja Wi-FI, ko ste povezani z Ethernetom, dodate barvno obvestilo:
New-BurntToastNotification -Text "Prekinitev povezave z omrežjem Wi-Fi", "Prekinili ste se z omrežjem Wi-Fi, ker je bila vaša naprava povezana z visokohitrostno povezavo Ethernet." -AppLogo C: \ PS \ changenetwork.png
Zdaj veste, kako prikazovati uporabniško obvestilo prek PowerShell-a. Če ima uporabnik zvočnike, mu lahko celo predvajate melodijo:
[konzola] :: pisk (440.500)
[konzola] :: pisk (440.500)
[konzola] :: pisk (440.500)
[konzola] :: pisk (349.350)
[konzola] :: pisk (523.150)
[konzola] :: pisk (440.500)
[konzola] :: pisk (349.350)
[konzola] :: pisk (523.150)
[konzola] :: pisk (440,1000)
[konzola] :: pisk (659.500)
[konzola] :: pisk (659.500)
[konzola] :: pisk (659.500)
[konzola] :: pisk (698.350)
[konzola] :: pisk (523.150)
[konzola] :: pisk (415.500)
[konzola] :: pisk (349.350)
[konzola] :: pisk (523.150)
[konzola] :: pisk (440,1000)
[konzola] :: pisk (880.500)
[konzola] :: pisk (440.350)
[konzola] :: pisk (440.150)
[konzola] :: pisk (880.500)
[konzola] :: pisk (830.250)
[konzola] :: pisk (784.250)
[konzola] :: pisk (740,125)
[konzola] :: pisk (698,125)
[konzola] :: pisk (740.250)
[konzola] :: pisk (455.250)
[konzola] :: pisk (622.500)
[konzola] :: pisk (587.250)
[konzola] :: pisk (554.250)
[konzola] :: pisk (523,125)
[konzola] :: pisk (466,125)
[konzola] :: pisk (523.250)
[konzola] :: pisk (349,125)
[konzola] :: pisk (415.500)
[konzola] :: pisk (349.375)
[konzola] :: pisk (440,125)
[konzola] :: pisk (523.500)
[konzola] :: pisk (440.375)
[konzola] :: pisk (523,125)
[konzola] :: pisk (659,1000)
[konzola] :: pisk (880.500)
[konzola] :: pisk (440.350)
[konzola] :: pisk (440.150)
[konzola] :: pisk (880.500)
[konzola] :: pisk (830.250)
[konzola] :: pisk (784.250)
[konzola] :: pisk (740,125)
[konzola] :: pisk (698,125)
[konzola] :: pisk (740.250)
[konzola] :: pisk (455.250)
[konzola] :: pisk (622.500)
[konzola] :: pisk (587.250)
[konzola] :: pisk (554.250)
[konzola] :: pisk (523,125)
[konzola] :: pisk (466,125)
[konzola] :: pisk (523.250)
[konzola] :: pisk (349.250)
[konzola] :: pisk (415.500)
[konzola] :: pisk (349.375)
[konzola] :: pisk (523,125)
[konzola] :: pisk (440.500)
[konzola] :: pisk (349.375)
[konzola] :: pisk (261,125)
[konzola] :: pisk (440,1000)