PowerShell For Nybegynnere (Del 7): Røret (og mange eksempler å leke med)

etter den sjette delen PowerShell For Nybegynnere (Del 6): PowerShell Profiler og ISE, dedikerer vi oss til emnene rundt røret. Men før vi tar en titt på dette svaret på den sjette øvelsen. Vi vil også ha en rask gjennomgang av hva vi har lært så langt I Del 6.

Gjennomgang (Del 6)

Øvelse

Åpne Ise. Opprett En Powershell-Profil for Alle Brukere. Sett inn kommandoen Start-Transkripsjon i første linje. Lagre filen. Åpne PowerShell. Hva skjer for alle brukere?

Dette var en veldig god øvelse. Noen selv ros; -). Jeg klarte å forene to ting. Arbeide med ISE og a introdusere en ny kommando: Start-Transkripsjon. Vel, la oss starte med etableringen Av PowerShell-Profilen for alle brukere. Som beskrevet i den siste delen må vi angi alle brukere banen.

New-Item $profile.AllUsersAllHosts -Force

Unbenannt.PNG

Neste må vi åpne den opprettede profilen. Jeg anbefaler notisblokk. Når du har åpnet, skriver Du Inn Start-Transcript og klikker På Lagre.

Unbenannt.PNG

nå kommer det magiske øyeblikket. Lukk notisblokk og Ise og åpne PowerShell. Som Du kan se, spiller PowerShell inn nå. Start-Transkripsjon registrerer alle dine innganger.

Unbenannt.PNG

Nå er det opp til deg å teste det. Skriv inn noen kommandoer og åpne transkripsjonsfilen. Plasseringen av filen finner du i brukerprofilen din i dokumenter-mappen (som vist på skjermbildet).

Sammendrag

hvis du vil få powershell til å gjøre noe ved oppstart, oppretter Du En PowerShell-profilfil. Vær oppmerksom På Utførelsespolitikken. PowerShell ISE er en kraftig script editor som kan hjelpe deg å skrive skript.

PowerShell-Røret

nå kommer vi til neste del. Arbeider med røret. Og dette er en viktig del av serien. La oss dykke inn.

Windows PowerShell-rørledningen lar deg koble sammen to eller flere setninger med et rørsymbol. Arbeid med røret er en viktig teknikk I PowerShell. Du kan tenke på det som en slags objekt-videresending til andre PowerShell-kommandoer. Konkret tar røret alt til venstre for røret og videresender det til kommandoen til høyre for røret.

først av alt er rørsymbolet plassert på tastaturet. Du finner den på de fleste tastaturer her:

Unbenannt.JPG

så målet for nå er å kombinere to kommandoer med et rør for å gi deg et eksempel.

Review

Arbeide med røret er en viktig teknikk I PowerShell. Konkret tar røret alt til venstre for røret og videresender det til kommandoen til høyre for røret.

Et eksempel: Get-Process / Stop-Process

Mange av dere tenker kanskje: «Hei, det er fint,men hva er poenget ?»Nå skal jeg vise deg kraften i røret i et enkelt eksempel. La oss si at vi ønsker å lukke Alle Notisblokk og Maling prosesser. Vel så la oss fange dem alle og rør dem For Å Stoppe Prosessen.

men vent litt. Før vi begynner tar vi en titt på kommandoene separat. På min datamaskin er det 2 Notisblokkprosesser og 2 Malingsprosesser.

Unbenannt.PNG

Når Det er sagt, Fanger Get-Process alle Notisblokk og Alle Malingsprosesser. Husk: røret tar alt til venstre for røret og videresender det til kommandoen til høyre for røret.

Så, hvis Vi setter Get-Prosess på venstre side av røret Og Stopp-Prosess til høyre side av røret så alle disse prosessene bør stoppes.

Get-Process notepad,mspaint | Stop-Process

De er alle borte. Og hvis du setter-verbose til slutten av kommandoen, ser du at alle prosesser stopper umiddelbart, og at de alle har forskjellige prosess-ider.

Unbenannt.PNG

pipe.JPG

Noe mer eksempel å spille med …

Stoppe tjenester …

Get-Service spool*,*bits* | Stop-Service -Verbose

Unbenannt.JPG

Viser de nyeste 5 hendelsesloggene fra systemloggen i en pent visning med Out-GridView.

Get-EventLog -LogName system -Newest 5 | Out-GridView

Unbenannt.JPG

Bla Gjennom windows setup log (ligger på C:\Windows\Panther) og søker den første vellykkede oppstartsoppføringen under installasjonen.

Get-ChildItem C:\Windows\Panther | Select-String 'First Boot'

Unbenannt.JPG

Søke etter unike innganger …

Get-Content C:\Temp\file1.txt | Get-Unique

Unbenannt.JPG

eller telle noe …

Get-Content -Path C:\Temp\file1.txt | Get-Unique | Measure-Object

2.JPG

for å være mer spesifikk:

Get-Content -Path C:\Temp\file1.txt | Get-Unique | Measure-Object | Select-Object Count

Unbenannt.JPG

for den videre delen vil jeg konsentrere meg om tre kommandoer. Alle har å gjøre med formatering og bruk av røret, og de er perfekt egnet for nybegynnere. La oss gå videre.

Hva har vi lært så langt?

røret tar alt til venstre for røret og videresender det til kommandoen til høyre for røret.

Piping Til Format-Table, Format-List og Format-Wide

Format-Table

Format-Table cmdleten formaterer utdataene til en kommando. Og det brukes med røret.

Se på kommandoen nedenfor. Det viser deg et bord. Tabelloverskriftene Er Modus, LastWriteTime, Lengde og Navn.

unbenannt41.png

denne tabellen er forhåndsdefinert. Men den gode nyheten er at vi kan endre bordet for å passe våre behov. Vær oppmerksom på tabelloverskriftene. De har et navn. Og disse navnene er svært viktige for oss. Hvordan liker du det:

Get-ChildItem | Format-Table Name,LastWriteTime

Unbenannt.PNG

Alt du trenger å vite er topptabellnavnene. Deretter kan du omorganisere utdataene Med Formattabell, eller du kan bare utelate ting.

La meg gi deg et annet eksempel. Get-Service viser Alle Windows-tjenester. Ikke sant?

Unbenannt.PNG

Men jeg liker ikke denne visningen. Jeg trenger Bare Status og Navn. Dette er en enkel oppgave. Bare rør det Til Format-Tabellen og gi Status og Navn.

Get-Service | Format-Table Status,Name

Unbenannt.PNG

Mer Om Format-Tabellen I Microsoft Docs:

https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Format-Table?view=powershell-5.1

Format-Liste

standardutgangen er forhåndskonfigurert av kommandoen. Noen kommandoer utdata for mye informasjon, og det er grunnen til at de ikke vises som en tabell, men som en liste. Get-NetIPConfiguration er en slik kommando.

Unbenannt.PNG

vi kjenner nå listeoverskriftene. La oss pipe denne kommandoen Til Format-Liste og velg Bare Ipv6-Adressen og Ipv4-Adressen.

Get-NetIPConfiguration | Format-List IPv4Address,IPv6Address

Unbenannt.PNG

Hyggelig. Ikke bli distrahert av brakettene. I bakgrunnen startes EN wmi-handling som får IP-Adressen. Det er det parentesene er for.

Vi kan også formatere utgangen Av Get-ChildItem til en liste.

Get-ChildItem | Format-List Name,LastWriteTime

Unbenannt.PNG

Mer Om Format-Liste Her:

https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Format-List?view=powershell-5.1

Format-Wide

Sist, Men ikke minst den siste kommandoen for i dag. Det kalles Format-Wide og navnet forteller oss hva Det Gjør: Formatering noe i et bredt format.

Unbenannt.PNG

Microsoft Dokumenter Til Hele Formatet:

https://docs.microsoft.com/en-us/powershell/module/Microsoft.PowerShell.Utility/Format-Wide?view=powershell-5.1

Review

Format-Tabell, Format-Liste og Format-Wide justerer utdataene for en kommando. Bruk den med et rør.

Format-Tabell, Format-Liste, Format-Wide I Avansert Modus

Det er ikke slutten på denne artikkelen. Nå skal jeg vise deg noen interessante og nyttige ting om formatering. Det er en liten samling av mine mest nyttige formateringsparametere.

Format-Table-Autosize

parameteren justerer kolonnestørrelsen basert på bredden på dataene.

Get-ChildItem C:\Temp | Format-Table -AutoSize

Unbenannt.PNG

Format-Table-Wrap

Viser tekst som overskrider kolonnebredden. Som standard avkortes tekst som overskrider kolonnebredden.

Get-EventLog -LogName Security -Newest 2 | Format-Table -Wrap

Unbenannt.PNG

Format-Wide-Kolonne

Angi antall kolonner.

Get-ChildItem | Format-Wide -Column 3

Unbenannt.PNG

Noen flere eksempler … Active Directory (Side Note)

hvis Du arbeider Med Active Directory, kan du også bruke formatkommandoene til å vise brukere. Logg på en domenekontroller og start PowerShell. Her er noen eksempler:

Get-AdUser administrator -Properties * | Format-Table CN,Enabled,LastLogonDate,SID -AutoSize -Wrap

1.JPG

Format-Tabell gir bare mening med noen få egenskaper. Bruk Format-Liste til å liste mer:

Get-ADUser administrator -Properties * | Format-List CN,Enabled,LastLogonDate,SID,Created,ProfilePath,ScriptPath,LockedOut

Unbenannt.JPG

Eller gjør det for alle brukere med filter * – parameteren.

Get-ADUser -Filter * -Properties * | Format-Table CN,Enabled,LastLogonDate,SID -AutoSize -Wrap

Unbenannt.JPG

Likheter med kjente personer fra filmen pumping iron er rent tilfeldig 😉

Øvelse

Det er det for i dag. Her er øvelsen opp til neste del.

Kjør Get-Hurtigreparasjon. Vis bare nummeret (KB) for hurtigreparasjonen og installeringsdatoen i listeformat.

løsningen finner du i neste del.

Se deg på neste artikkel: PowerShell For Nybegynnere (Del 8): Kraften I PowerShell-Komme I Kontakt Med Objekter (Get-Medlem, Velg-Objekt)

Patrick Gruenauer, Mvp PowerShell

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.