V tomto dílu se podíváme na rozdílné možnosti výstupu toho co jsme zadali do PS.
Za prvé jde o praktičnost a za druhé o přehlednost.Poněvadž to má přímou souvislost s principem roury – anglicky pipe, popřípadě pipeline vrátíme se obloukem k tomu co PowerShell vlastně je.
PowerShell obsahuje objektovou rouru namísto textové roury jako je tomu u UNIX shellu - neboli je objektově orientován,z toho vyplývají i jiné možnosti při formátování.Viz http://cs.wikipedia.org/wiki/Windows_PowerShell
Všimněte si prosím na videu příkazu format a jeho variant takže format-list a rozdíl ve výstupu oproti příkazu bez onoho format,hned po něm následuje příkaz fl a rozdíl?Žádný, fl je takzvaným aliasem pro format-list, aliasy si můžete vytvořit sami a svoje pro cokoliv.Takže je to věc Vaší kreativity jak bude výpis vypadat a co vlastně ve výpisu chcete mít.Export do souboru může být v různých formátech,například někdy později si ukážeme složitější výstupy do tabulky v Excelu,HTML a podobně.Jako poslední příkaz vidíte například možnost barevného rozdělení procesů kdy určíme hranici a kdo konzumuje více než X výstup bude dejme tomu červeně.
Roura zapojí více příkazů a jeden příkaz, předává svůj výstup dalšímu příkazu,ten dalšímu a to až do výsledku na obrazovce.
Jednotlivé příkazy nám odděluje jak vidíte na videu znak | .
Takže kreativitě se meze nekladou výhodu jednoznačnou v případě PS mají ti kdo ovládají některý NET jazyk.Vytvořit si cokoliv vlastního není velký problém.Pro inspiraci doporučuji stránky tohoto projektu http://www.powergui.org/kbcategory.jspa?categoryID=21
V některém z dílu se hodlám věnovat právě tomuto projektu podrobněji,rovněž se podíváme na PowershellPro , BGShell a jiné projekty které se k PowerShellu vztahují.
Mimochodem rozhodl jsem se udělat podstatnou změnu při tvorbě videa které ukazuje výstupy použitých příkazů,je celkem stylové že v tom pomohl právě PowerShell.Našel jsem script který napsal Jeffrey Snover a použil ho při prezentaci možností PowerShellu před Billem Gatesem a Rayem Ozziem.Script samozřejmě je dnes upraven kdo chce vědět co umí a jak se s ním pracuje navštivte http://blogs.msdn.com/powershell/archive/2007/06/03/new-and-improved-start-demo.aspx
Původně jsem chtěl v tomto díle ukázat práci s klávesovými zkratkami – nakonec jsem se rozhodl toto vynechat uplně,kdo PowerShell spustí bude prostě nucen se je naučit.Práci s historií a práci s chybovými hláškami ponechám na další díly.Tam už se budeme věnovat věcem jako práce s sítí,disky, registry,právy-oprávněními,uživateli,hesly,eventlogem a mnoho dalšího.
Video
Seznam použitých příkazů
Get-Service | where {$_.Status -eq "Running"}
Get-Service | where {$_.Status -eq "Running"} |fl
Get-Service | where {$_.Status -eq "Running"}|format-list
Get-Service | where {$_.Status -eq "Running"} |format-table
Get-Service | where {$_.Status -eq "Running"} |ft
Get-Service | where {$_.Status -eq "Running"} |ogv
Get-Service | where {$_.Status -eq "Running"} | Export-Csv -path "D:\services.csv"
Get-Service | where {$_.Status -eq "Running"} | Export-Csv -path "D:\services.txt"
Get-Service | where {$_.Status -eq "Running"} |format-wide -column 8
$computer = "LocalHost"
$namespace = "root\CIMV2"
Get-WmiObject -class Win32_Service -computername $computer -namespace $namespace |ogv
get-wmiobject win32_service | format-table Name, StartMode -autosize
Get-Process | Where {$_.starttime -ge [datetime]::today}
get-process |fl -property name, basepriority, priorityclass
Get-Process |
ForEach-Object `
{if ($_.cpu -lt 100)
{Write-Host $_.name, $_.cpu -foregroundcolor white}
elseif ($_.cpu -gt 100)
{Write-Host $_.name, $_.cpu -foregroundcolor red}}
Odkazy
http://www.powergui.org/kbcategory.jspa?categoryID=21
http://blogs.msdn.com/powershell/archive/2007/06/03/new-and-improved-start-demo.aspx