Domovská » jak » 5 Cmdlets, abyste mohli začít s PowerShell

    5 Cmdlets, abyste mohli začít s PowerShell

    PowerShell se rychle stává preferovaným skriptovacím jazykem a CLI Power Users a IT Pros. Hodně stojí za to učit pár příkazů, abyste mohli začít, takže máme 5 užitečných cmdletů, abyste se dnes mohli naučit.

    Get-Command

    Příkaz Get-Command je jedním z nejužitečnějších cmdletů v rámci celého programu PowerShell, protože vám pomůže se s PowerShell vypořádat tím, že vám umožní vyhledat určité cmdlety. Použití programu Get-Command samo o sobě není příliš užitečné, neboť právě vyletí každý příkaz, který společnost PowerShell.

    Ale z toho můžeme vidět, že objekty, že výstupy PowerShell mají vlastnost Jméno a název modulu. Pomocí těchto informací můžeme jemně zrnit naše vyhledávání, hledáním cmdletů, které obsahují určité termíny. Například pokud bych chtěl najít všechny cmdlety, které obsahují slovo "IP", mohu to udělat:

    Get-Command -Jméno * IP *

    Jak vidíte, získáváme stále dost málo výsledků, další možností je vyhledávání v rámci konkrétního modulu. V našem případě zvolím modul NetTCPIP.

    Get-Command -Module NetTCPIP -Name * IP *

    Získejte pomoc

    Jakmile jste našli cmdlet, který hledáte pomocí příkazu Get-Command, budete chtít znát syntaxi a jak tento specifický cmdlet použít. Toto je místo, kde Get-Help přichází, pokud jste někdy použili příkazový řádek v systému Windows, pravděpodobně jste udělali něco takového:

    ipconfig /?

    Takže to nefunguje v PowerShell, je to proto, že v PowerShell se používá prostor k oddělení příkazu od jeho parametrů. Takže místo toho používáme Get-Help a předáme jméno cmdletů do Get-Help jako parametr.

    Get-Help Get-Process

    Získejte-člen

    Get-Member nám umožňuje získat informace o objektech, které se vrací cmdlety. Úlovkem s get-členem je to, že se spoléhá na funkci potrubí PowerShell, aby to dokázal, že můžeme použít Get-Process cmdlet.

    Jak vidíte, výstup PowerShell nám ukazuje některé vlastnosti, které můžete vidět v horní části každého sloupce. Prvním problémem je, že i když se jedná o vlastnosti, které většinu času hledáte, je stále ještě více. Druhým problémem je, že nevykazuje žádné metody, které bychom na objekt mohli volat. Chcete-li vidět metody a vlastnosti, můžeme náš výstup načíst na Get-Member, například takto:

    Get-Process | Získejte-člen

    Zatímco to může znamenat nic pro vás právě teď, budete muset dříve nebo později použít Get-Member, a čím dřív se naučíte ho používat lépe. Například pomocí informací z výstupu bychom mohli udělat něco jako:

    Start-Process notepad.exe
    $ NotepadProc = Get-Process -Name poznámkový blok
    $ NotepadProc.WaitForExit ()
    Spustit proces Calc.exe

    Tento skript spustí poznámkový blok a poté přiřadí výstupu "get-process -ame notepad" do proměnné $ NotepadProc, pak voláme metodu WaitForExit na $ NotepadProc, což způsobí, že skript se pozastaví, dokud neuzavřete poznámkový blok, pak se spustí kalkulačka.

    $ _ (Aktuální objekt potrubí)

    Zatímco není přesně cmdlet, jedná se o jednu z nejpoužívanějších speciálních proměnných v PowerShell. Oficiální název $ _ je "aktuální objekt pipeline". Používá se v blocích skriptů, filtrech, v procesní klauzuli funkcí, kde-objektu, foreach-objektu a přepínačích. Je však jednodušší vysvětlit pomocí příkladu, který nás přivádí k našemu dalšímu a poslednímu cmdletu Where-Object.

    Kde-Objekt

    Kde-Objekt dělá přesně to, co to zní, vybere objekt na základě toho, zda splňuje určitá kritéria. To spojuje $ _ a vlastnosti, které můžeme vidět pomocí Get-Member. Chcete-li to prokázat, sestavíme výstup Get-Process do rutiny Where-Object.

    Get-Process | Kde-Objekt $ _. Jméno -eq "iexplore"

    Takže co se tu děje, zeptáte se? První věc, kterou děláme, je získání seznamu procesů v našem počítači a předáním výstupu (pomocí znaku |) do našeho cmdletu Kde-Objekt, který zabere jako parametr blok skriptu. Blok skriptu (definovaný zkroucenými rovinkami) instruuje rutiny Where-Object, aby vybíraly pouze objekty, jejichž parametr name se rovná "iexplore", a proto dostáváme pouze seznam spuštěných instancí IE. To je všechno, co se děje, bavte se!