Powershell Cmdlets som vil forbedre din Windows Admin Ferdigheter
Powershell er en perfekt måte for en ny koder å komme i gang på Windows. Powershell er lik kommandolinjeværktøy og skriptspråk. Det gir deg muligheten til å automatisere datamaskinen din via de samme kommandoene du bruker til å administrere det. Kommandoprompt vs Windows PowerShell: Hva er forskjellen? Kommandoprompt vs Windows PowerShell: Hva er forskjellen? Windows-brukere kan komme forbi uten å bruke kommandoprompt eller PowerShell. Men med Windows 10 og nye funksjoner rundt hjørnet, kanskje er det på tide vi lærte. Les mer . Hvis du har et moderne Windows-system, har du allerede Powershell. De fleste bruksområdene er Windows-sentriske, men du kan installere Powershell på en Mac eller Linux-maskin. Slik installerer og bruker du PowerShell på Linux. Slik installerer du og bruker PowerShell på Linux I 2016 solgte Microsoft PowerShell og debuterte en kryssplattform iterasjon. . I denne artikkelen skal jeg vise deg hvordan du installerer, kjører og bruker PowerShell på Linux! Les mer også.
Arbeid med Powershell
Det er to måter å bruke Powershell på. Det er det grunnleggende kommandolinjevinduet, som brukes til å kjøre kommandoer eller påkalle forhåndskrevne skript. Deretter er det ISE, som kombinerer CLI-vinduet med et grunnleggende utviklingsmiljø. Ved å bruke dette kan du skrive og teste skriptene dine.
ISE har en søkbar liste over kommandoer, og du kan bruke Terminal Window uten å åpne en fil. Kommandolinjen lar deg konstruere kommandoen og sette den inn. Hvis du gjør mer avansert utvikling, installerer du Microsofts Visual Studio-kode. Kode inkluderer støtte for Git versjonskontroll 10 Viktige produktivitetstips for Visual Studio Code 10 Viktige produktivitetstips for Visual Studio Code Visual Studio Code blåser andre programmerings tekstredigerere ut av vannet. Det er gratis, åpen kildekode, lynrask og fullpakket med produktivitetsfunksjoner. Les mer og andre språk.
Powershell er unikt fordi den er bygget helt av kommandoer, Microsoft kaller dem Cmdlets. Disse kommandoene er de samme hvis du jobber via kommandolinje eller skriver komplekse skript. Så når du bruker disse kommandoene, kan du tenke på hvordan du kan strengge dem sammen for å lage dine første skript.
Grunnleggende: Get-Command, Get-Help, Get-Member
Alle Powershell-kommandoer har form av Verb-Noun. Ordene er vanligvis: Få, sett og nytt.
Get-Command lar deg se alle tilgjengelige kommandoer. Når du kjører Get-Command, ser du at det er tonnevis av kommandoer som starter med disse.
Graving videre fra bare navnene på cmdlets, begynner du å se at de alle har en lignende struktur. Du påkaller dem ved navn, akkurat som du gjorde med Get-Command. Ved hjelp av parametere endres hvilken informasjon du får. Men hvis du bare har brukt kommandoen med standardalternativer, hvordan finner du ut hvordan du bruker avanserte parametere?
Bruker Få hjelp cmdlet med Get-Command viser mer informasjon om cmdlet. Vi bruker cmdlet med følgende syntaks:
Get-Help Get-Command
Deretter ser du grunnleggende informasjon om parametrene. Hvis du vil se parameterdetaljer og noen brukseksempler, legger du til -Full parameter.
Hvis du bare vil se eksemplene, kan du kjøre:
Get-Help Get-Command-Eksempler
Denne cmdlet returnerer bare eksemplene fra hjelpefilen. Disse eksemplene er ganske nyttige fordi de inkluderer beskrivelser. Denne hjelpeteksten forklarer hva cmdlet og parametere gjør når de kjøres.
Hvis du vil sprette ut hjelpefilen til et eget vindu, kan du bruke det -Showwindow. Så hvis du kjører:
Get-Help Get-Command-ShowWindow
Powershell popper ut et vindu med full hjelpefil. Du trenger ikke å bruke Full parameteren her, da vinduet trekker hele artikkelen.
Når du blir mer avansert med Powershell, vil du oppdage at du bruker Get-Member oftere. Det er en enkel måte å se hvilke felt som er tilgjengelige fra returnerte data, samt andre metoder du kan kjøre. Ofte vil cmdlets ha a -Eiendom parameter slik at du kan ringe dem.
Arbeide med filer: Get-ChildItem, Remove-Item, Move-Item, Copy-Item
Nå som du har en ide om hvordan cmdlets fungerer, og hvordan du får hjelp, la oss gjøre endringer. Du kan få innholdet i en hvilken som helst mappe ved hjelp av Get-ChildItem kommando. For eksempel kan du få filene til en hel stasjon ved hjelp av stasjonsbokstaven. Tast inn:
Get-ChildItem E: \
Som er kort for:
Get-ChildItem -Path E: \
Når du kjører denne kommandoen, får du en liste over filer med sin siste skrivetid, størrelse under lengdeegenskapen, navn og modus. Modusen er attributter til en fil eller mappe AttributeMagic Free: Endre filegenskaper i Windows AttributeMagic Free: Endre filegenskaper i Windows Read More. De mulige oppføringene er:
- Skrivebeskyttet
- skjult
- System
- Directory
- Arkiv
- Enhet
- Normal
- Midlertidig
- SparseFile
- ReparsePoint
- komprimert
- offline
- NotContentIndexed
- kryptert
Hvis du vil ha innholdet i alle underkataloger i en bane, vil du bruke -recurse parameter. Så så løp:
Get-ChildItem -Path E: \ -Recurse
Dine filer kommer da ut som separate lister for hver mappe i banen.
For å begrense dataene som returneres, kan du bruke noen forskjellige parametere: -Fil, -skjult, og -Skrivebeskyttet. Hvis du ønsker å filtrere av navnene på filen, kan du bruke villige kort i Path-parameteren. For å returnere alle .doc-filene i en katalog, skriv inn:
Get-ChildItem-Path E: \ *. Doc
Legg igjen -recurse hvis du ville ha alt fra undermappene også.
Hvis du vil slette en filbruk:
Fjern-element -Path E: \ OldFile.txt
Hvis du vil hoppe over, bekrefter hver fil, legger du til parameteren -Bekreft $ false (Powershell har to konstanter for booleske verdier: $ true og $ false). For å tvinge fjerning av skrivebeskyttet eller skjulte filer, bruk -Makt parameter.
Flytte filer er like enkelt. For å flytte alt fra Flash-stasjonen til den lokale stasjonen i en mappebruk:
Flytt-element-Path E: \ * -Destination C: \ FlashDriveArchive
Du kan også nevne en enkelt fil i -Path for å bare flytte den filen. For å kopiere filen i stedet for å flytte den, bruker du samme syntaks med Copy-Element cmdlet.
Overvåking og arbeid med prosesser og tjenester
Hver Windows-bruker kjenner Oppgavebehandling 5 Kraftige alternativer til Windows Oppgavebehandling 5 Kraftige alternativer til oppgavebehandlingsoppgaven i Windows Task Killer ville være et bedre navn for den opprinnelige Windows Task Manager siden vi bare tar opp det for å drepe uresponsive prosesser. Alternative oppgavebehandlere lar deg faktisk administrere prosessene dine. Les mer . Det er imidlertid en raskere måte å se de løpende prosessene fra Powershell, Get-Process. Hvis du vil vite hva alle oppføringene i denne tabellen betyr, rør kommandoen til Get-medlem. Skriv inn cmdlet:
Get-Process | Get-medlem
Get-medlem utgir en liste over metoder og egenskaper knyttet til Get-Process. Informasjonen øverst er det du er interessert i. Du ser de forskjellige typer minne har aliaser.
Vi kan også se fra denne utgangen at vi kan få Produkt eiendom for å få et vennligere navn til prosessene. La oss endre utgangen, så det har bedre informasjon for oss å jobbe med:
Get-Process | Velg-objektprodukt, NPM, CPU, Navn, ID | Sorter-objekt-CPU -avvikende
(Det er mer informasjon om Select-Object og Sort-Object i neste seksjon.)
Nå som du har IDen fra kommandoen Get-Process, kan du stoppe den ved hjelp av Stop-Process cmdlet. Så hvis du finner ut at en Chrome-prosess tømmer opp alle ressursene dine, finn du ID-en i forrige kommando. Kjør deretter:
Stopp-prosess -ID 45960
Erstatte 49560 med ID av ressurs hog.
Ved hjelp av filbanen kan du starte en prosess ved hjelp av Powershell. For å starte Chrome, kjør følgende kommando:
Start-prosess -Filepath "C: \ Programfiler (x86) GoogleChromeApplicationchrome.exe"
(Du må ha sitatene rundt filbanen på grunn av mellomrommene.) -ArgumentList parameteren lar deg sende kommandolinjevalg til programmet. I tilfelle av Chrome kan du tvinge den til å starte i Incognito Mode ved hjelp av -incognito flagg. Hele cmdlet er:
Start-Prosess -Filepath "C: \ Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"
Du kan gjøre de fleste av de samme tingene med tjenester. Slik styrer du kjøring med SC kommandoen [Windows] Slik styrer du kjører tjenester med SC Command [Windows] En av de tingene jeg finner meg selv oftere, siden du drog deg inn i IT overvåker og kontrollerer statusen for tjenester som kjører på datamaskiner som kjører over hele bedriften. Det er ... Les mer . Get-service viser deg en liste over alle tjenestene som kjører på datamaskinen din. Samme med Start og Stopp-tjenester, kan du bruke Start-service og Stopp-service.
Arbeide med data: Sorter-objekt, velg-objekt, hvor-objekt
Når du jobber med dataene fra en cmdlet, kan det ikke alltid være den rekkefølgen du vil ha. I slike tilfeller vil du bruke Sort-Object. Du kan ringe Sorter-objekt på en variabel du opprettet, men primært brukes den ved å røre en annen cmdlet. Som i eksemplet ovenfor rører vi utgangen fra ett objekt til et annet og sorterer det. La oss lage en rekke tre tilfeldige tall og rør det til Sort-Object.
Alt i parentes går først. Lag en enkel matrise med:
$ (Tilfeldig), $ (Tilfeldig), $ (Tilfeldig)
Vær sikker på å legge merke til kommaene som skiller verdiene. Så for å se tilfeldige tallene sorterte runde:
$ (Tilfeldig), $ (Tilfeldig), $ (Tilfeldig) | Sort-Object
Cmdleten utgir tallene fra minste til største, hvis du vil reversere det legge til -synkende.
Når du piper cmdlets til Get-Member, er det flere egenskaper enn standardutgangen. Du velger bestemte egenskaper ved å bruke Velg-Object.
På samme måte som Sorter-objekt, bruker du Select-Object via en piped cmdlet. For eksempel, for å generere en tabell med tjenester og deres statusbruk:
Get-Service | Velg-objekt DisplayName, Status
Mens du skriver ut alle disse dataene er fine, hva hvis du bare vil se bestemte data? Get-ChildItem har noen innebygd filtrering, men de fleste kommandoer gjør det ikke. I slike tilfeller bruker du Hvor-Object.
Tilbake til tjenestene igjen, denne gangen kommer du bare til å få løpende tjenester. Skriv inn cmdlet:
Get-Service | Hvor-objekt-status -eq "Running"
At -ekv i sammenligningen er Powershell for =. I Powershell utfører du sammenligninger med brevkombinasjoner:
- eq: er lik
- ne: ikke lik
- lt: mindre enn
- gt: større enn
- Ge: større enn eller lik
- le: mindre enn eller lik
- liker: bruk som i jokertegn sammenligninger
Formatering Help: Format-Table og Format-List.
For disse ulike cmdletene var det meste av produksjonen i tabellformat. Dette viser dataene i rader og kolonner med overskrifter. For å vise oppføringer som er oppført med egenskapene sine individuelt, rør cmdlet til Format-List.
Noen ganger har du en utgang som blir for bred til Powershell-vinduet. Når det skjer, styrker Powershell det til en listeutgang. For å sørge for at du holder det i tabellformatet, rør utgangen til Format-Table.
Fra kommandolinjen til skripting: Neste trinn
Når du er komfortabel, er skripting et spørsmål om å legge inn cmdlets. Øk produktiviteten din med Windows PowerShell-skript Øk produktiviteten din med Windows PowerShell-skript Hva om du kan bringe produktiviteten til Linux over til Windows? De fleste Linux distros kommer pakket med det kraftige Bash-skallet. PowerShell er en like kraftig terminal for Windows. Les mer i en tekstfil og lagre den. Hvis du er nervøs for å prøve scripting, ikke vær. Microsoft har en enorm mengde dokumentasjon på hver cmdlet. Dette er utover den allerede lange hjelpedokumentasjonen, så sørg for å sjekke ut Technet.
Hvis du lærer Powershell, gi oss beskjed i kommentarene som du er mest spent på å gjøre. Hvis du har litt mer erfaring, vil vi gjerne høre om mer avanserte emner du vil se dekket.
Utforsk mer om: PowerShell, Scripting.