PowerShell je MS produktem s nejlepší dokumentací. Hodně tomu napomáhá silná komunita, ale také fakt, že PowerShell prochází všemi produkty Microsoftu. Pojďme se tedy podívat, jak pracovat s nápovědou, tedy dokumentací.

Před prvním užitím je dobré nápovědu aktualizovat:
Update-Help -Force
Nyní nám již nic nebrání otevřít si okno nápovědy
Get-Help -ShowWindow

Na tomto místě by se slušelo říct, že PowerShell má dva základní druhy nápovědy:
- Nápovědu k příkazům
- Tématickou nápovědu
Nápovědu k příkazu spustíme tak, že za příkaz nápovědy dáme příkaz, k němuž hledáme nápovědu. Opět na příkladu, řekněme, že chci zjistit nápovědu k práci s procesy ve Windows:
get-help process

Nyní vidím příkazy pro práci s procesy, např. pro výpis procesů vidím, že slouží příkaz get-process a pokud budu chtít další informace o tomto příkazu zadám si
get-help get-process -ShowWindow
#nebo prop výpis v konzoli
get-help get-process
Kdo by chtěl v konzoli podrobnou nápovědu, pak využije příkaz:
get-help get-process -Full
Komu se naopak nechce číst celou nápovědu, ale chce vidět jen příklady použití, pak může využít:
get-help get-process -examples
Příklady užití příkazu přikládám z vlastního modulu:

Asi nejzajímavější možností, pokud je k dispozici konektivita, je zobrazení nápovědy online pomocí výchozího webového prohlížeče:
get-help get-process -online
A jak je to s tématickou nápovědou? Inu dost obdobně jako s tou k cmdletům. Základem je opět příkaz get-help, ale másto názvu příkazu nebo odvětví zadávám about_ a tématický okruh. V tomto případě již důrazně doporučuji otevírat nápovědu v samostatném okně. Opět si vše ukažme na příkladu, budou nás zajímat rozšíření PowerShellu, kterým se říká moduly:
get-help about_modules -ShowWindow
Pokud se vám zdá psát get-help zdlouhavé, tak mě také, proto prozradím zkratku, stačí napsat man. Připomíná vám to Bash? Nedivím se, jde o jednu ze zkratek, kterou PowerShell právě z Bashe převzal ;). Případně se dá syntaxe převzít z CMD a lze pro základní nápovědu psát (vždy základní výpis do konzoly):
get-process -?

Tvorba nápovědy
Vlastní skripty, funkce a moduly můžeme rovněž vybavit integrovanou nápovědou. Pro skripty a moduly publikované v PowerShell galerii je povinností nápovědu obsahovat. Pokud využíváme pro psaní PowerShell ISE, tak nám s nápovědou pomohou snipety, ale i bez nich to není nic těžkého, jde vlastně o blokový komentář, který má předepsaný tvar.

Nápověda nemusí obsahovat všechny bloky uvedené na obrázku (může navíc obsahovat .NOTE [informace o autorovi a verzi] apod.), úplný výčet klíčových slov a jejich význam je v dokumentaci. Častěji má nápověda podobu následujícího příkladu:
<#
.Synopsis
kontrola systémovýh souborů.
.DESCRIPTION
kontrola systémových souborů nativními nástroji scf a dism
.EXAMPLE
Check-SystemFiels -scannow
provede příkaz sfc /scannow
.EXAMPLE
Check-SystemFiels -scanfile -Path c:\windows\system32\kernel32.dll
Provede kontrolu integrity a pokusí se o opravu souboru kernel32.dll
#>
Pokud jsou komentáře u definic parametrů, pak výsledná nápověda vypadá následovně:
Synopsis
kontrola systémovýh souborů.
Description
kontrola systémových souborů nativními nástroji scf a dism
Parameters
-path <String>
Určuje cestu k souboru, který má být verifikován nebo opraven
Required? false
Position? 1
Default value
Accept pipeline input? true (ByPropertyName)
Accept wildcard characters? false
-scannow <SwitchParameter>
Spustí kontrolu systémových souborů běžícího systému, vede na sfc /scannow
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-verifyonly <SwitchParameter>
Provede kontrolu bez pokusů o opravu poškozeného souboru, vede na sfc /verifyonly
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-scanfile <SwitchParameter>
Nastavuje nástroj sfc do móduz kontroly konkrétního soubooru, vždy kombinován s parametrem Path
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-offline <SwitchParameter>
Říká, že se bude verifikovat jiná, nežli běžící instance systému Windows, kombinuje se s parametry offbootdir a offwindir
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-verifyfile <SwitchParameter>
kontrola souboru
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
-offbootdir <String>
U offline kopie systému Windows říká, který disk je její systémový
Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-offwindir <String>
U offline kopie systému Windows udává její systémový adresář
Required? false
Position? named
Default value
Accept pipeline input? false
Accept wildcard characters? false
-store <SwitchParameter>
pomocí nástroje DISM provede sken a následně opravu systémových balíčů běžící kopie systému Windows
Required? false
Position? named
Default value False
Accept pipeline input? false
Accept wildcard characters? false
Syntax
Check-SystemFiles [[-path] <String>] [-scannow ] [-verifyonly ] [-scanfile ] [-offline ] [-verifyfile ] [-offbootdir <String>] [-offwindir <String>] [-store ] [<CommonParameters>]
Examples
-------------------------- EXAMPLE 1 --------------------------
PS C:\>Check-SystemFiels -scannow
provede příkaz sfc /scannow
-------------------------- EXAMPLE 2 --------------------------
PS C:\>Check-SystemFiels -verifyonly
provede příkaz sfc /verifyonly - tedy pouze kontrolu bez oprav
-------------------------- EXAMPLE 3 --------------------------
PS C:\>Check-SystemFiels -scanfile -Path c:\windows\system32\kernel32.dll
Provede kontrolu integrity a pokusí se o opravu souboru kernel32.dll
-------------------------- EXAMPLE 4 --------------------------
PS C:\>Check-SystemFiels -offline -scanfile -Path d:\windows\system32\kernel32.dll -offbootdir d: -offwindir d:\windows
Provede kontrolu integrity a pokusí se o opravu souboru kernel32.dll z offline image na disku d:
-------------------------- EXAMPLE 5 --------------------------
PS C:\>Check-SystemFiels -store
Provede kontrolu systému příkazem dism /online /cleanup-image /restorehealth
Jak je vidět, nápovědu je možné (až na klíčová slova definující jednotlivé sekce) psát v mateřském jazyce, ale pro PowerShell galerii je potře mít nápovědu anglicky, teoreticky pak můžete mít značkou jazyka odlišený odstavec mateřském jazyce v každé sekci.