Unatoč činjenici da je PowerShell jezik konzole, ponekad je potrebno obavijestiti korisnika iz skripte PowerShell o određenom događaju ili potrebi da se izvrši određena radnja. Na primjer, prikažite obavijest o kraju neke dugoročne PoSh skripte ili o pojavi nekog važnog događaja.
Najlakši način za prikaz prozora s proizvoljnim testom kroz Windows skriptni podsustav - Wscript.
Sljedeći kôd prikazat će običan tekstni okvir s potrebnim tekstom i gumb U redu.
$ wshell = Novi objekt -ComObject Wscript.Shell
$ Output = $ wshell.Popup ("Skripta generiranja izvještaja dovršena")
Koristeći različita svojstva Popup metode možete prilagoditi izgled modalnog okvira s porukama. Konkretno, u skriptu možete vratiti rezultate korisnikovog odgovora na pitanje (Da / Ne).
$ Output = $ wshell.Popup ("Skripta za generiranje izvješća je gotova! Želite li je prikazati na zaslonu?", 0, "Izvještaj je spreman", 4 + 32)
Opća sintaksa i parametri Popup metode:
Popup (,,,)
Mogućnosti:
- - niz, tekst poruke.
- - izborno, broj. Broj sekundi nakon kojih se prozor automatski zatvara.
- - izborno, string. Tekst naslova prozora poruke.
- - izborno, broj. Kombinacija zastava određuje vrstu gumba i ikone. Moguće vrijednosti zastave:
- 0 - gumb OK.
- 1 - Gumbi U redu i Odustani.
- 2 - Gumbi Zaustavi, Ponovi, Preskoči.
- 3 - Da, ne, gumbe za odustajanje.
- 4 - Da i ne gumbi.
- 5 - Gumbi ponovite i poništite.
- 16 - Ikona za zaustavljanje.
- 32 - Ikona pitanja.
- 48 - ikona uskličnika.
- 64 - Ikona informacija.
Opis: vraća cjelobrojnu vrijednost s kojom možete saznati koji je gumb pritisnuo korisnik. Moguće vrijednosti:
- -1 - prekid.
- 1 - Gumb OK.
- 2 - Gumb za odustajanje.
- 3 - gumb za zaustavljanje.
- 4 - Gumb za ponavljanje.
- 5 - Tipka za preskakanje.
- 6 - Da.
- 7 - Nema gumba.
Privlačnije i ugodnije izgledajuće skočne poruke (baloni) mogu se prikazivati u Windowsima 7, 8.1 i 10 putem Windows Forms API-ja. Sljedeći PowerShell kôd prikazat će skočnu poruku pored panela s obavijestima sustava Windows 10, koja će automatski nestati nakon 10 sekundi.
Add-Type -AssemblyName System.Windows.Forms
$ global: balmsg = Novi objektni sustav.Windows.Forms.NotifyIcon
$ path = (Get-Process -id $ pid). Put
$ balmsg.Icon = [System.Drawing.Icon] :: ExtractAssociatedIcon ($ path)
$ balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon] :: Upozorenje
$ balmsg.BalloonTipText = 'Ovo je tekst skočne poruke za korisnika Windows 10'
$ balmsg.BalloonTipTitle = "Upozorenje $ Env: USERNAME"
$ balmsg.Visible = $ true
$ balmsg.ShowBalloonTip (10000)
Uz to, za stvaranje živopisnih skočnih poruka u sustavu Windows 10 (PowerShell 5.0+) možete koristiti zasebni PowerShell modul BurntToast iz PowerShell galerije.
Modul se instalira iz mrežnog spremišta pomoću upravitelja paketa Windows 10:Install-Module -Name BurntToast
Na primjer, u prethodno razmatranu skriptu za automatsko prekidanje Wi-Fi mreže kad ste povezani s Ethernetom, možete dodati šarenu obavijest:
New-BurntToastNotification -Text "Prekid veze s Wi-Fi mrežom", "Prekinuli ste s Wi-Fi mrežom, jer je vaš uređaj spojen na brzu Ethernet vezu". -AppLogo C: \ PS \ changenetwork.png
Dakle, sada znate kako prikazati korisničku obavijest putem PowerShell-a. Ako korisnik ima zvučnike, možete mu čak i reproducirati melodiju:
[konzola] :: zvučni signal (440,500)
[konzola] :: zvučni signal (440,500)
[konzola] :: zvučni signal (440,500)
[konzola] :: zvučni signal (349.350)
[konzola] :: zvučni signal (523.150)
[konzola] :: zvučni signal (440,500)
[konzola] :: zvučni signal (349.350)
[konzola] :: zvučni signal (523.150)
[konzola] :: zvučni signal (440,1000)
[konzola] :: zvučni signal (659.500)
[konzola] :: zvučni signal (659.500)
[konzola] :: zvučni signal (659.500)
[konzola] :: zvučni signal (698.350)
[konzola] :: zvučni signal (523.150)
[konzola] :: zvučni signal (415.500)
[konzola] :: zvučni signal (349.350)
[konzola] :: zvučni signal (523.150)
[konzola] :: zvučni signal (440,1000)
[konzola] :: zvučni signal (880.500)
[konzola] :: zvučni signal (440.350)
[konzola] :: zvučni signal (440.150)
[konzola] :: zvučni signal (880.500)
[konzola] :: zvučni signal (830.250)
[konzola] :: zvučni signal (784.250)
[konzola] :: zvučni signal (740,125)
[konzola] :: zvučni signal (698,125)
[konzola] :: zvučni signal (740.250)
[konzola] :: zvučni signal (455.250)
[konzola] :: zvučni signal (622.500)
[konzola] :: zvučni signal (587.250)
[konzola] :: zvučni signal (554.250)
[konzola] :: zvučni signal (523,125)
[konzola] :: zvučni signal (466,125)
[konzola] :: zvučni signal (523.250)
[konzola] :: zvučni signal (349.125)
[konzola] :: zvučni signal (415.500)
[konzola] :: zvučni signal (349.375)
[konzola] :: zvučni signal (440,125)
[konzola] :: zvučni signal (523.500)
[konzola] :: zvučni signal (440.375)
[konzola] :: zvučni signal (523,125)
[konzola] :: zvučni signal (659.1000)
[konzola] :: zvučni signal (880.500)
[konzola] :: zvučni signal (440.350)
[konzola] :: zvučni signal (440.150)
[konzola] :: zvučni signal (880.500)
[konzola] :: zvučni signal (830.250)
[konzola] :: zvučni signal (784.250)
[konzola] :: zvučni signal (740,125)
[konzola] :: zvučni signal (698,125)
[konzola] :: zvučni signal (740.250)
[konzola] :: zvučni signal (455.250)
[konzola] :: zvučni signal (622.500)
[konzola] :: zvučni signal (587.250)
[konzola] :: zvučni signal (554.250)
[konzola] :: zvučni signal (523,125)
[konzola] :: zvučni signal (466,125)
[konzola] :: zvučni signal (523.250)
[konzola] :: zvučni signal (349.250)
[konzola] :: zvučni signal (415.500)
[konzola] :: zvučni signal (349.375)
[konzola] :: zvučni signal (523,125)
[konzola] :: zvučni signal (440,500)
[konzola] :: zvučni signal (349.375)
[konzola] :: zvučni signal (261.125)
[konzola] :: zvučni signal (440,1000)