Hjemmeside » hvordan » 5 Cmdlets å få deg i gang med PowerShell

    5 Cmdlets å få deg i gang med PowerShell

    PowerShell blir raskt det foretrukne skriptspråket og CLI av Power Users samt IT Pros. Det er vel verdt å lære noen få kommandoer for å komme i gang, så vi har 5 nyttige cmdlets for å lære deg i dag.

    Get-Command

    Get-Command er en av de mest nyttige cmdletene i hele PowerShell, da det hjelper deg med å få tak i PowerShell ved å la deg søke etter bestemte cmdlets. Å bruke Get-Command på egen hånd er ganske vist ikke veldig nyttig da det bare kommer til å spytte ut hver kommando som PowerShell har.

    Men fra dette kan vi se at de gjenstandene som PowerShell-utgangene har, har både en Navn og en ModuleName-egenskap. Ved hjelp av denne informasjonen kan vi finske søket vårt ved å søke etter cmdlets som inneholder bestemte vilkår. For eksempel hvis jeg ønsket å finne alle cmdlets som inneholder ordet "IP", kunne jeg gjøre dette:

    Get-Command-Navn * IP *

    Som du ser, får vi fremdeles ganske mange resultater, vårt neste alternativ er å søke i en bestemt modul. I vårt tilfelle velger jeg NetTCPIP-modulen.

    Get-Command -Module NetTCPIP-Navn * IP *

    Få hjelp

    Når du har funnet cmdlet du leter etter ved hjelp av Get-Command, vil du vite syntaxen og hvordan du kan bruke den bestemte cmdlet. Dette er hvor Get-Help kommer inn, hvis du noen gang har brukt kommandolinjen i Windows, har du sannsynligvis gjort noe slikt:

    ipconfig /?

    Vel, det virker ikke i PowerShell, dette skyldes at i PowerShell brukes et mellomrom for å skille en kommando fra parametrene. Så i stedet bruker vi Get-Help og sender et cmdlets navn til Get-Help som en parameter.

    Get-Help Get-Process

    Get-medlem

    Get-Member lar oss få informasjon om objektene som en cmdlets returnerer. Fangsten med få-medlem er at den er avhengig av PowerShells pipeline-funksjon, for å demonstrere dette, vil vi kunne bruke Get-Process cmdlet.

    Som du kan se PowerShells produksjon, viser vi noen av egenskapene, som du kan se øverst i hver kolonne. Det første problemet er at mens de er egenskapene du kanskje leter etter mesteparten av tiden, er det fortsatt flere av dem. Det andre problemet er at det ikke viser noen metoder vi kan ringe på objektet. For å se metodene og egenskapene kan vi røre utgangen til Get-Member, slik som:

    Get-Process | Get-medlem

    Selv om det kanskje ikke betyr noe for deg akkurat nå, må du før eller senere bruke Get-Member, og jo raskere lærer du å bruke det bedre. Som et eksempel, ved å bruke informasjonen fra produksjonen, kunne vi gjøre noe som:

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

    Det skriptet vil lansere notisblokk, det tildeler deretter utdata fra "Get-Process-Name notepad" til $ NotepadProc-variabelen, så kaller vi WaitForExit-metoden på $ NotepadProc som får skriptet til å pause til du lukker notisblokken, når du har lukket notisblokken da regner lanseringen.

    $ _ (Current Pipeline Object)

    Selv om det ikke er en cmdlet, er det en av de mest brukte spesielle variablene i PowerShell. Det offisielle navnet på $ _ er "det nåværende pipelineobjektet". Den brukes i skriptblokker, filtre, prosessklausulen av funksjoner, hvor-objekt, foreak-objekt og brytere. Det er imidlertid lettere å forklare med et eksempel som bringer oss til vår neste og siste cmdlet, hvor-objekt.

    Hvor-Object

    Hvor-objekt gjør nøyaktig hva det høres ut, det velger et objekt basert på om det oppfyller visse kriterier. Dette vil bringe sammen $ _, og egenskapene vi kan se ved hjelp av Get-Member. For å demonstrere dette, piper vi utgangen av Get-Process inn i Where-Object cmdlet.

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

    Så hva skjer her spør du? Vel, det første vi gjør, er å få en liste over prosesser på datamaskinen vår og sende utdataene (ved hjelp av | tegnet) til cmdletet der hvor objektet finnes, som tar en skriptblokk som en parameter. Skriptblokken (definert av de krøllete båndene) instruerer cmdletene hvor objektet skal bare velge objekter der deres navneparameter er lik "iexplore", og så får vi bare en liste over IE-forekomstene som kjører. Det er alt der er til det, ha det gøy!