pondělí 14. prosince 2009

Powershell - processy

V tomto dílu se budeme věnovat základním ukázkám práce s procesy v PowerSshellu,dále jen PS.

Poněvadž zde budou ukázky možností výstupu a práce s operátory nejprve trochu suché teorie.V dalších dílech až budeme probírat možnosti “roury” se k operátorům i k typům výpisu ještě vrátíme.

Porovnávací operátoři:
-eq     = (equal)
-lt     <
-gt     >
-ge     >=
-le     <=
-ne     nerovná se (not equal)
-like     porovnání s výrazem se zástupnými znaky
-notlike     negace porovnání s výrazem se zástupnými znaky
-match     shoda s regulárním výrazem
-notmatch     neshoda s regulárním výrazem

Logičtí operátoři:
Jméno  -    význam
-not     negace
!     negace
-and     a (logický součin)
-or     nebo (logický součet)

Než přistoupíme k ukázkám co vlastně umožnuje spustit PowerShell ?

Spustitelný program
Jak jsme viděli v minulem díle napíšeme  "notepad", spustí se program Notepad.
CmdLet - Vnitřní příkaz
Např. cmdlet "Get-Location", který nám vypíše aktualní pozici v souborovém systému.
Vyhodnotitelný výraz
Např. "11+25".
Funkce
Soubor se skriptem
Alias

Alias
Například "ls" a "dir" ukázka aliasů  k "Get-ChildItem"

To by jsme měli základy,větvení,funkce a podobné věci ,k nim pokročíme později.

Základní příkazy

Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process

A nyní co vlastně dnes ukážeme.Příkaz get-process který nam ukáže jaké processy nám běží a ted prosím si všimněte pokud zadáme

$a = get-process

get-process -inputobject $a | format-table -view priority

Jak vypadá výpis,jak máme procesy seřazeny.

Možností je mnoho,postupně jak budeme možnosti PS zkoušet se dostaneme k dalším.

Napřiklad

get-process powershell –fileversioninfo

A hned máme jasno :-)

Nemá význam popisovat všechny možnosti,spoustu si jde sám ozkoušet pomocí nápovědy z níž některé příklady čerpám,jenom bych dodal pomocí PowerShellu můžete hromadně spouštět,zastavovat procesy,spouštět po startu s rozdílnými prioritami hromadně,spolupráce s plánovačem ůloh a eventlogem je samozřejmostí – tomu hodlám věnovat samostatnou kapitolu.

Ve videu uvidíte výpis PowerShellu který rourou posíláme do ogv neboli Out-GridView

To je důvodem proč jsem na začátku článku vzpomínal operátory – nastavte filtr na rovno,větší než,jak se Vám chce a můžete si hrát.Nebo si jenom klikejte na horní lištu podobně jako v task manageru.Dalšími možnostmi výstupu je například txt,excel,csv,xml.

Takže není problem poslat si výpis na 3 procesy nejvíce vytěžující PC,procesy spusštěné dnes při startu,procesy začinající na a protože nás zajímá jen dejme tomu Avast kterému tam běží 3 procesy – všechny začínají na a.

Pokud Vás zajímají pouze  procesy, které byly v provozu méně než X minut můžete je najít například takto:

Get-Process | Where-Object { $_.StartTime -gt `
(Get-Date).AddMinutes(-180) } | Format-Table

Stále jde o opravdu základy práce s procesy,možností je o hodně víc a hlubších.

Myslím že pro dnešek by praktické ukázky stačily ,v příštím díle se vrátíme na začátek a popíšeme si klávesové zkratky pro urychlení práce s PS,formátování textu,typy výstupu a v neposlední řadě práci s historií a můj soukromý tip na ulehčení práce s historií.

A absolutně klíčovou věc práci s chybovými hláškami,osobně si myslím že vnímavý člověk je schopen ji definovat bez jakýchkoliv zkušeností s PS.

Video



Seznam použitých příkazů

get-process
get-process *
get-process help
get-process -name a*
start-process Ccleaner
Stop-process -name Ccleaner
Get-Process | sort CPU | select -last 5


Get-Process | sort CPU | select -last 2|ogv

$a = get-process
get-process -inputobject $a | format-table -view priority


Get-Process | Where-Object { $_.StartTime -gt `
(Get-Date).AddMinutes(-180) } | Format-Table

Žádné komentáře:

Okomentovat