Napriek tomu, že PowerShell je jazyk konzoly, niekedy je potrebné informovať používateľa zo skriptu PowerShell o konkrétnej udalosti alebo o potrebe vykonať konkrétnu akciu. Napríklad, zobrazí sa upozornenie na koniec nejakého dlhodobého skriptu PoSh alebo na výskyt nejakej dôležitej udalosti.
Najjednoduchší spôsob, ako zobraziť okno s ľubovoľným testom prostredníctvom skriptovacieho subsystému Windows - Wscript.
Nasledujúci kód zobrazí obyčajné textové pole s potrebným textom a tlačidlom OK.
$ wshell = New-Object -ComObject Wscript.Shell
$ Output = $ wshell.Popup ("Skript na generovanie prehľadov bol dokončený")
Pomocou rôznych vlastností metódy Popup môžete prispôsobiť vzhľad modálneho okna správ. Vrátane, môžete sa vrátiť do skriptu výsledky odpovede používateľa na otázku (Áno / Nie).
$ Output = $ wshell.Popup („Skript na generovanie správy je kompletný! Chcete ho zobraziť na obrazovke?“, 0, „Správa je pripravená“, 4 + 32)
Všeobecná syntax a parametre metódy Popup:
Kontextové okno (,,,)
voľby:
- - reťazec, text správy.
- - voliteľné, číslo. Počet sekúnd, po ktorých sa okno automaticky zatvorí.
- - voliteľné, reťazec. Text názvu okna správy.
- - voliteľné, číslo. Kombinácia príznakov určuje typ tlačidiel a ikony. Možné hodnoty vlajky:
- 0 - tlačidlo OK.
- 1 - Tlačidlá OK a Cancel.
- 2 - Tlačidlá Stop, Repeat, Skip.
- 3 - Tlačidlá Áno, Nie, Zrušiť.
- 4 - Tlačidlá Áno a Nie.
- 5 - Tlačidlá opakovania a zrušenia.
- 16 - Ikona Stop.
- 32 - Ikona otázky.
- 48 - Výkričník.
- 64 - Informačná ikona.
Popis: vráti celočíselnú hodnotu, pomocou ktorej môžete zistiť, ktoré tlačidlo stlačil užívateľ. Možné hodnoty:
- -1 - časový limit.
- 1 - tlačidlo OK.
- 2 - Tlačidlo Zrušiť.
- 3 - Tlačidlo Stop.
- 4 - Tlačidlo opakovania.
- 5 - Tlačidlo Preskočiť.
- 6 - Tlačidlo Áno.
- 7 - Žiadne tlačidlo.
Príťažlivejšie a príjemnejšie vyzerajúce kontextové správy (balóny) sa môžu zobrazovať v systémoch Windows 7, 8.1 a 10 prostredníctvom rozhrania Windows Forms API. Nasledujúci kód PowerShell zobrazí rozbaľovaciu správu vedľa oznamovacieho panela Windows 10, ktorý automaticky zmizne po 10 sekundách.
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 ($ cesta)
$ balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon] :: Warning
$ balmsg.BalloonTipText = 'Toto je text rozbaľovacej správy pre užívateľa Windows 10'
$ balmsg.BalloonTipTitle = "Warning $ Env: USERNAME"
$ balmsg.Visible = $ true
$ balmsg.ShowBalloonTip (10 000)
Okrem toho na vytvorenie farebných kontextových správ v systéme Windows 10 (PowerShell 5.0+) môžete použiť samostatný modul PowerShell BurntToast z galérie PowerShell..
Modul sa inštaluje z online úložiska pomocou správcu balíkov Windows 10:Install-Module -Name BurntToast
Napríklad, v predtým zvažovanom skripte, ktorý sa automaticky odpojí od siete Wi-FI po pripojení k sieti Ethernet, môžete pridať farebné upozornenie:
New-BurntToastNotification -Text „Odpojenie od siete Wi-Fi“, „Odpojili ste sa od siete Wi-Fi, pretože vaše zariadenie bolo pripojené k vysokorýchlostnému ethernetovému pripojeniu.“ -AppLogo C: \ PS \ changenetwork.png
Takže teraz viete, ako zobraziť upozornenie používateľa prostredníctvom PowerShell. Ak má používateľ reproduktory, môžete ho dokonca zahrať:
[konzola] :: pípnutie (440 500)
[konzola] :: pípnutie (440 500)
[konzola] :: pípnutie (440 500)
[konzola] :: pípnutie (349 350)
[konzola] :: pípnutie (523 150)
[konzola] :: pípnutie (440 500)
[konzola] :: pípnutie (349 350)
[konzola] :: pípnutie (523 150)
[konzola] :: pípnutie (440 000)
[konzola] :: pípnutie (659 500)
[konzola] :: pípnutie (659 500)
[konzola] :: pípnutie (659 500)
[konzola] :: pípnutie (698 350)
[konzola] :: pípnutie (523 150)
[konzola] :: pípnutie (415 500)
[konzola] :: pípnutie (349 350)
[konzola] :: pípnutie (523 150)
[konzola] :: pípnutie (440 000)
[konzola] :: pípnutie (880 500)
[konzola] :: pípnutie (440 350)
[konzola] :: pípnutie (440 150)
[konzola] :: pípnutie (880 500)
[konzola] :: pípnutie (830 250)
[konzola] :: pípnutie (784 250)
[konzola] :: pípnutie (740 125)
[konzola] :: pípnutie (698 125)
[konzola] :: pípnutie (740 250)
[konzola] :: pípnutie (455 250)
[konzola] :: pípnutie (622 500)
[konzola] :: pípnutie (587 250)
[konzola] :: pípnutie (554 250)
[konzola] :: pípnutie (523 125)
[konzola] :: pípnutie (466 125)
[konzola] :: pípnutie (523 250)
[konzola] :: pípnutie (349 125)
[konzola] :: pípnutie (415 500)
[konzola] :: pípnutie (349 375)
[konzola] :: pípnutie (440 125)
[konzola] :: pípnutie (523 500)
[konzola] :: pípnutie (440 375)
[konzola] :: pípnutie (523 125)
[konzola] :: pípnutie (659 000)
[konzola] :: pípnutie (880 500)
[konzola] :: pípnutie (440 350)
[konzola] :: pípnutie (440 150)
[konzola] :: pípnutie (880 500)
[konzola] :: pípnutie (830 250)
[konzola] :: pípnutie (784 250)
[konzola] :: pípnutie (740 125)
[konzola] :: pípnutie (698 125)
[konzola] :: pípnutie (740 250)
[konzola] :: pípnutie (455 250)
[konzola] :: pípnutie (622 500)
[konzola] :: pípnutie (587 250)
[konzola] :: pípnutie (554 250)
[konzola] :: pípnutie (523 125)
[konzola] :: pípnutie (466 125)
[konzola] :: pípnutie (523 250)
[konzola] :: pípnutie (349 250)
[konzola] :: pípnutie (415 500)
[konzola] :: pípnutie (349 375)
[konzola] :: pípnutie (523 125)
[konzola] :: pípnutie (440 500)
[konzola] :: pípnutie (349 375)
[konzola] :: pípnutie (261 125)
[konzola] :: pípnutie (440 000)