Powershell Cmdlets, der forbedrer dine Windows Admin Færdigheder

Powershell er lige dele kommandolinje værktøj og scripting sprog. Det giver dig mulighed for at automatisere din computer via de samme kommandoer, du bruger til at administrere den.

Powershell er lige dele kommandolinje værktøj og scripting sprog.  Det giver dig mulighed for at automatisere din computer via de samme kommandoer, du bruger til at administrere den.
Reklame

Powershell er en perfekt måde for en ny coder at komme i gang på Windows. Powershell er lige dele kommandolinje værktøj og scripting sprog. Det giver dig mulighed for at automatisere din computer via de samme kommandoer, du bruger til at administrere det. Command Prompt vs. Windows PowerShell: Hvad er forskellen? Kommandoprompt vs. Windows PowerShell: Hvad er forskellen? Windows-brugere kan komme forbi uden at bruge kommandoprompt eller PowerShell. Men med Windows 10 og nye funktioner rundt om hjørnet, måske er det på tide, vi lærte. Læs mere . Hvis du har et moderne Windows-system, har du allerede Powershell. De fleste af dens anvendelser er Windows centreret, men du kan installere Powershell på en Mac eller Linux-maskine. Sådan installeres og bruges PowerShell på Linux Sådan installeres og bruges PowerShell på Linux I 2016 udbragte Microsoft PowerShell og genererede en cross-platform iteration . I denne artikel vil jeg vise dig, hvordan du installerer, kører og bruger PowerShell på Linux! Læs mere også.

Arbejder med Powershell

Der er to måder at bruge Powershell på. Der er det grundlæggende kommandolinjevindue, som bruges til at køre kommandoer eller påberåbe sig forudskrevne scripts. Så er der ISE, som kombinerer CLI vinduet med et grundlæggende udviklingsmiljø. Ved hjælp af dette kan du skrive og teste dine scripts.

ISE'en har en søgbar liste over kommandoer, og du kan bruge dens Terminal Window uden en fil åben. Kommandolinjen giver dig mulighed for at konstruere din kommando og indsætte den. Hvis du gør mere avanceret udvikling, skal du installere Microsofts Visual Studio Code. Kode indeholder support til Git-versionskontrol 10 Væsentlige produktivitetstips til Visual Studio Code 10 Væsentlige produktivitetstips til Visual Studio Code Visual Studio Code blæser andre programmerings tekstredigerere ud af vandet. Det er gratis, åben kilde, lynrask og pakket med produktivitetsfunktioner. Læs mere og andre sprog.

powerhell kommandolinje

Powershell er unik, fordi den er bygget helt af kommandoer, Microsoft kalder dem Cmdlets. Disse kommandoer er de samme, hvis du arbejder via kommandolinje eller skriver komplekse scripts. Så som du bruger disse kommandoer, kan du tænke på, hvordan du snor dem sammen for at oprette dine første scripts.

Grundlæggende: Get-Command, Get-Help, Get-Member

Alle Powershell-kommandoer har form af Verb-Noun. Ordene er som regel: Get, Set og New .

Get-Command giver dig mulighed for at se alle tilgængelige kommandoer. Når du kører Get-Command, ser du, at der er tonsvis af kommandoer, der starter med disse.

Graver i længere fra blot navnene på cmdlets, begynder du at se, at de alle har en lignende struktur. Du påberåber dem ved navn, ligesom du gjorde med Get-Command. Ved hjælp af parametre ændres de oplysninger, du får. Men hvis du kun har brugt kommandoen med standardindstillinger, hvordan finder du ud af, hvordan du bruger avancerede parametre?

powerhell get-help

Ved hjælp af Get-Help cmdlet med Get-Command vises mere information om cmdlet. Vi bruger cmdlet med følgende syntaks:

Get-Help Get-Command 

Derefter kan du se de grundlæggende oplysninger om parametrene. Hvis du vil se parameteroplysningerne og nogle anvendelseseksempler, skal du tilføje -Fyld parameter.

Hvis du kun vil se eksemplerne, kan du køre:

 Get-Help Get-Command -Examples 

Denne cmdlet returnerer kun eksemplerne fra hjælpefilen. Disse eksempler er ret nyttige, fordi de indeholder beskrivelser. Denne hjælpetekst forklarer, hvad cmdlet og parametre gør, når du kører.

hjælp vindue

Hvis du vil sprænge hjælpefilen til et separat vindue, kan du bruge -ShowWindow . Så hvis du løber:

 Get-Help Get-Command -ShowWindow 

Powershell popper ud et vindue med den fulde hjælpefil. Du behøver ikke bruge Fuld parameteren her, da vinduet trækker hele artiklen.

Som du bliver mere avanceret med Powershell, vil du opdage, at du bruger Get-Member oftere. Det er en nem måde at se, hvilke felter der er tilgængelige fra returnerede data, samt andre metoder, du kan køre. Ofte vil cmdlets have en -Property- parameter, så du kan ringe til dem.

Arbejde med filer: Get-ChildItem, Remove-Item, Move-Item, Copy-Item

Nu hvor du har en ide om, hvordan cmdlets arbejder, og hvordan man får hjælp, lad os lave ændringer. Du kan få indholdet af en mappe ved hjælp af kommandoen Get-ChildItem . For eksempel kan du få filerne til et helt drev ved hjælp af drevbogstavet. Gå ind:

 Get-ChildItem E:\ 

Hvilket er kort for:

 Get-ChildItem -Path E:\ 

Når du kører denne kommando, får du en liste over filer med sin sidste skrivetid, størrelse under længdeegenskaben, navn og tilstand. Funktionen er attributterne til en fil eller mappe AttributeMagic Free: Rediger filegenskaber i Windows AttributeMagic Free: Rediger filegenskaber i Windows Læs mere. De mulige indgange er:

  • Læs kun
  • Skjult
  • System
  • Vejviser
  • Arkiv
  • enhed
  • Normal
  • Midlertidig
  • SparseFile
  • ReparsePoint
  • komprimeret
  • Offline
  • NotContentIndexed
  • krypteret

Hvis du vil have indholdet af alle undermapper i en sti, vil du bruge -Recurse parameteren. Så kør så:

 Get-ChildItem -Path E:\ -Recurse 

Dine filer kommer så ud som separate lister for hver mappe i stien.

powerhell get-childitem

For at begrænse de returnerede data kan du bruge et par forskellige parametre: -File, -Hidden, og -ReadOnly . Hvis du søger at filtrere fra navne på filen, kan du bruge vildt kort i parameteren Sti. For at returnere alle .doc-filerne i en mappe, skal du indtaste:

 Get-ChildItem -Path E:\*.doc 

Igen tilføj- gentag, hvis du også ønskede alt fra undermapperne.

Hvis du vil slette en fil brug:

 Remove-Item -Path E:\OldFile.txt 

For at springe over bekræfter hver fil, tilføj parameteren -Confirm $ false (Powershell har to konstanter for booleanske værdier: $ true og $ false). For at tvinge fjernelsen af ​​skrivebeskyttede eller skjulte filer skal du bruge parameteren -Force .

Flytning af filer er lige så nemt. For at flytte alt fra dit Flash-drev til det lokale drev i en mappebrug:

 Move-Item -Path E:\* -Destination C:\FlashDriveArchive 

Du kan også navngive en enkelt fil i -Path for kun at flytte den pågældende fil. For at kopiere filen i stedet for at flytte den, bruger du den samme syntaks med Copy-Item cmdlet.

Overvågning og arbejde med processer og tjenester

Hver Windows-bruger kender Task Manager 5 Kraftige alternativer til Windows Task Manager 5 Kraftfulde alternativer til Windows Task Manager Task Killer ville være et bedre navn til den native Windows Task Manager, da vi kun bringer det op for at dræbe reaktioner, der ikke reagerer. Alternative opgaveforvaltere giver dig mulighed for faktisk at administrere dine processer. Læs mere . Der er dog en hurtigere måde at se de igangværende processer fra Powershell, Get-Process . Hvis du vil vide, hvad alle poster i denne tabel betyder, rør kommandoen til Get-Member . Indtast cmdlet:

 Get-Process | Get-Member 

Get-medlem udsender en liste over metoder og egenskaber forbundet med Get-Process. Oplysningerne øverst er det, du er interesseret i. Du kan se de forskellige typer hukommelser har aliaser.

powerhell get-proces

Vi kan også se fra denne udgang, at vi kan få produktegenskaben til at få et mere venligt navn til processerne. Lad os ændre output, så det har bedre information for os at arbejde med:

 Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending 

(Der er flere oplysninger om Select-Object og Sort-Object i næste afsnit.)

Nu, hvor du har id'et fra din Get-Process-kommando, kan du stoppe det ved at bruge Stop-Process cmdlet. Så hvis du finder ud af, at en Chrome-proces tømmer op alle dine ressourcer, skal du finde ID'en i den foregående kommando. Kør så:

 Stop-Process -ID 45960 

Udskift 49560 med ID'et til din ressource hog.

Ved hjælp af filstien kan du starte en proces ved hjælp af Powershell. For at starte Chrome skal du køre følgende kommando:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" 

(Du skal have citaterne omkring filstien på grund af mellemrummet.) Parameteren -ArgumentList giver dig mulighed for at sende kommandolinjevalg til programmet. I tilfælde af Chrome kan du tvinge det til at starte i inkognitomodus ved hjælp af -incognito- flag. Hele cmdlet er:

 Start-Process -Filepath "C:\Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito" 

powerhell get-service

Du kan gøre de fleste af de samme ting med tjenester Sådan styrer du løbende tjenester med SC-kommandoen [Windows] Sådan styrer du løbende tjenester med SC Command [Windows] En af de ting, som jeg finder mig selv oftere, da du dykede ind i IT overvåger og kontrollerer status for tjenester, der kører på computere, der kører over hele virksomheden. Der er ... Læs mere. Get-Service viser dig en liste over alle de tjenester, der kører på din computer. Samme med Start og Stop-tjenester kan du bruge Start-service og Stop-Service .

Arbejde med data: Sorter-objekt, Vælg-objekt, Hvor-objekt

Når du arbejder med data fra en cmdlet, er det måske ikke altid den ønskede ordre. I disse tilfælde vil du bruge Sort-Object . Du kan ringe Sorter-objekt på en variabel, du har oprettet, men primært bruges den ved at pipere en anden cmdlet. Som i eksemplet ovenfor rør vi output fra en objekt til en anden og sorterer den. Lad os oprette en række af tre tilfældige tal og rør det til Sort-Object.

Alt i parentes kører først. Opret en simpel matrix med:

 $(Get-Random), $(Get-Random), $(Get-Random) 

Vær sikker på at lægge mærke til kommaerne, der adskiller værdierne. Så for at se de tilfældige numre sorteret runde:

 $(Get-Random), $(Get-Random), $(Get-Random) | Sort-Object 

Cmdlet'en udsender tallene fra mindste til største, hvis du vil vende det til -afvigende .

powershell sort-objekt

Når du piper cmdlets til Get-Member, er der flere egenskaber end standard output. Du vælger specifikke egenskaber ved at vælge Select-Object .

Ligesom Sort-Object bruger du Select-Object via en piped cmdlet. For eksempel at generere en tabel over tjenester og deres status brug:

 Get-Service | Select-Object DisplayName, Status 

Mens udskrivning af alle disse data er rart, hvad hvis du kun vil se specifikke data? Get-ChildItem har nogle indbyggede filtrering, men de fleste kommandoer gør det ikke. I disse tilfælde bruger du Where-Object .

powershell hvor-objekt

Tilbage til service igen, denne gang vil du kun få løbende tjenester. Indtast cmdlet:

 Get-Service | Where-Object Status -eq "Running" 

Det -eq i sammenligningen er Powershell for = . I Powershell udfører du sammenligninger med bogstavkombinationer:

  • eq: er lig med
  • ne: ikke lige
  • lt: mindre end
  • gt: større end
  • ge: større end eller lig med
  • le: mindre end eller lig med
  • som: brug som i jokertegn sammenligninger

Formatering Help: Format-Table og Format-List.

For disse forskellige cmdlets var det meste af produktionen i tabelformater. Dette viser dataene i rækker og kolonner med overskrifter. For at få vist poster opført med deres egenskaber individuelt, rør cmdlet til Format-List .

powerhell format-liste

Nogle gange har du et output, der bliver for bredt til Powershell vinduet. Når det sker, styrker Powershell det til en liste output. For at sikre, at du holder det i bordformatet, rør dit output til Format-Table .

Fra kommandolinjen til scripting: Næste trin

Når du er komfortabel, er scripting et spørgsmål om at komme ind i cmdlets. Boost din produktivitet med Windows PowerShell-scripts Boost din produktivitet med Windows PowerShell-scripts Hvad hvis du kunne overføre Linux-produktiviteten til Windows? De fleste Linux distros kommer pakket med den kraftfulde Bash shell. PowerShell er en lige så kraftig terminal til Windows. Læs mere i en tekstfil og gem den. Hvis du er nervøs for at prøve scripting, skal du ikke være. Microsoft har en enorm mængde dokumentation på hver cmdlet. Dette er ud over den allerede lange hjælpedokumentation, så sørg for at tjekke Technet.

Hvis du lærer Powershell, så lad os vide i kommentarerne, hvad du er mest begejstret for at gøre. Hvis du har lidt mere erfaring, vil vi gerne høre om mere avancerede emner, du gerne vil se dækket af.

In this article