Hjemmeside » hvordan » 5 Cmdlets at få dig i gang med PowerShell

    5 Cmdlets at få dig i gang med PowerShell

    PowerShell bliver hurtigt det foretrukne skriptsprog og CLI af Power Users samt IT Pros. Det er værd at lære et par kommandoer at komme i gang, så vi har 5 nyttige cmdlets til at lære dig i dag.

    Get-Kommando

    Get-Command er en af ​​de mest nyttige cmdlets i hele PowerShell, da det hjælper dig med at tage fat i PowerShell ved at lade dig søge efter bestemte cmdlets. Brug af Get-Command alene er ganske vist ikke særlig nyttigt, da det bare spytter ud hver kommando, som PowerShell har.

    Men fra dette kan vi se, at de objekter, som PowerShell-udgange har, både er et navn og en modulnavn-egenskab. Ved hjælp af denne information kan vi finfinere vores søgning ved at søge efter cmdlets, der indeholder bestemte vilkår. For eksempel hvis jeg ville finde alle cmdlets, der indeholder ordet "IP", kunne jeg gøre det her:

    Get-Command-Navn * IP *

    Som du kan se, får vi stadig et par resultater, vores næste mulighed er at søge inden for et bestemt modul. I vores tilfælde vælger jeg NetTCPIP-modulet.

    Get-Command -Module NetTCPIP-Navn * IP *

    Få hjælp

    Når du har fundet den cmdlet, du leder efter ved hjælp af Get-Command, vil du gerne vide syntaksen, og hvordan du kan bruge den specifikke cmdlet. Det er her, hvor Get-Help kommer ind, hvis du nogensinde har brugt kommandolinjen i Windows, har du sikkert gjort noget som dette:

    ipconfig /?

    Nå, det virker ikke i PowerShell, det skyldes, at der i PowerShell bruges et mellemrum til at adskille en kommando fra parametrene. Så i stedet bruger vi Get-Help og sender et cmdlets navn til Get-Help som en parameter.

    Get-Help Get-Process

    Get-medlem

    Get-Member giver os mulighed for at få oplysninger om de objekter, som en cmdlets vender tilbage. Fangsten med get-medlem er, at den er afhængig af PowerShells pipeline-funktion, for at demonstrere dette, vil vi kunne bruge Get-Process cmdlet.

    Som du kan se PowerShells output viser os nogle af egenskaberne, som du kan se øverst i hver kolonne. Det første problem er, at selv om det er de egenskaber, du måske søger mest af tiden, er der stadig flere af dem. Det andet problem er, at det ikke viser nogen metoder, som vi kan kalde på objektet. For at se metoderne og egenskaberne kan vi rør vores output til Get-Member, som sådan:

    Get-Process | Get-medlem

    Selvom det måske ikke betyder noget for dig lige nu, skal du før eller senere bruge Get-Member, og jo før du lærer at bruge det bedre. Som et eksempel kan vi bruge noget ved at bruge oplysningerne fra outputen:

    Start-Process notepad.exe
    $ NotepadProc = Get-Process -Name notesblok
    $ NotepadProc.WaitForExit ()
    Start-Process calc.exe

    Det script vil starte notisblokken, så tildeler den output af "Get-Process-Name notepad" til $ NotepadProc-variablen, så kalder vi WaitForExit-metoden på $ NotepadProc, som får scriptet til at holde pause, indtil du lukker notesblok, når du har lukket notisblokken så begynder regnemaskinen.

    $ _ (Current Pipeline Object)

    Selvom det ikke er en cmdlet, er det en af ​​de mest brugte specialvariabler i PowerShell. Det officielle navn for $ _ er "det aktuelle pipelineobjekt". Den bruges i scriptblokke, filtre, procesklausulen af ​​funktioner, hvor-objekt, foreach-objekt og switches. Det er dog lettere at forklare med et eksempel, som bringer os til vores næste og sidste cmdlet, hvor-objekt.

    Hvor-Objekt

    Hvor-objekt gør præcis, hvad det lyder som det, det vælger et objekt baseret på, om det opfylder bestemte kriterier. Dette vil samle $ _, og de egenskaber vi kan se ved hjælp af Get-Member. For at demonstrere dette vil vi røre output fra Get-Process til cmdlet-objektet.

    Get-Process | Hvor-objekt $ _. Navn -eq "iexplore"

    Så hvad foregår her spørger du? Nå er det første, vi laver, at få en liste over processer på vores computer og sende outputen (ved hjælp af | tegnet) til vores Where-Object cmdlet, som tager en scriptblok som parameter. Skriptblokken (defineret af de krøllede bånd) instruerer cmdlets hvor objektet skal kun vælge objekter, hvor deres navneparameter er lig med "iexplore", og derfor får vi kun en liste over de IE-forekomster, der kører. Det er alt der er til det, have det sjovt!