Powershell Cmdlets som kommer att förbättra dina Windows-administrativa färdigheter

Powershell är lika delar kommandoradsverktyg och skriptspråk. Det ger dig möjligheten att automatisera din dator via samma kommandon som du använder för att administrera den.

Powershell är lika delar kommandoradsverktyg och skriptspråk.  Det ger dig möjligheten att automatisera din dator via samma kommandon som du använder för att administrera den.
Annons

Powershell är ett perfekt sätt för en ny kodare att komma igång på Windows. Powershell är lika delar kommandoradsverktyg och skriptspråk. Det ger dig möjlighet att automatisera din dator via samma kommandon som du använder för att administrera det. Kommandotolken mot Windows PowerShell: Vad är skillnaden? Command Prompt vs Windows PowerShell: Vad är skillnaden? Windows-användare kan klara sig utan att använda kommandotolken eller PowerShell. Men med Windows 10 och nya funktioner runt hörnet kanske det är dags att vi lärde oss. Läs mer . Om du har ett modernt Windows-system har du redan Powershell. De flesta av dess användningsområden är Windows-centrerade, men du kan installera Powershell på en Mac eller Linux-maskin. Så här installerar och använder du PowerShell på Linux. Så här installerar och använder du PowerShell på Linux. I 2016 startade Microsoft PowerShell och debuterade en cross-platform iteration . I den här artikeln ska jag visa dig hur man installerar, kör och använder PowerShell på Linux! Läs mer också.

Arbeta med Powershell

Det finns två sätt att använda Powershell. Det finns det grundläggande kommandoradsfönstret, som används för att köra kommandon eller anropa förskrivna skript. Sedan finns det ISE, som kombinerar CLI-fönstret med en grundläggande utvecklingsmiljö. Med detta kan du skriva och testa dina skript.

ISE har en sökbar lista med kommandon, och du kan använda dess Terminal Window utan att en fil öppnas. Kommandot listan låter dig konstruera ditt kommando och infoga det. Om du gör mer avancerad utveckling, installera Microsofts Visual Studio Code. Kod innehåller stöd för Git-versionskontroll 10 Viktiga produktivitetstips för Visual Studio Code 10 Viktiga produktivitetstips för Visual Studio Code Visual Studio Code blåser andra programmeringstextredigerare ur vattnet. Det är gratis, öppen källkod, blixtlös och fylld med produktivitetsegenskaper. Läs mer och andra språk.

powerhell kommandoraden

Powershell är unik eftersom det är helt byggt av kommandon, Microsoft kallar dem Cmdlets. Dessa kommandon är desamma om du arbetar via kommandoraden eller skriver komplexa skript. Så som du använder dessa kommandon kan du tänka på hur du strängar dem tillsammans för att skapa dina första skript.

Grunderna: Get-Command, Get-Help, Get-Member

Alla Powershell-kommandon har formen av Verb-Noun. Verken är vanligtvis: Get, Set och New .

Get-Command kan du se alla tillgängliga kommandon. När du kör Get-Command ser du att det finns massor av kommandon som börjar med dessa.

Gräver vidare från bara namnen på cmdlets, du börjar se att de alla har en liknande struktur. Du åberopar dem med namn, precis som du gjorde med Get-Command. Användning av parametrar ändrar vilken information du får. Men om du bara har använt kommandot med standardalternativ, hur hittar du ut hur man använder avancerade parametrar?

powerhell get-help

Med hjälp av Get-Help cmdlet med Get-Command visas mer information om cmdlet. Vi använder cmdlet med följande syntax:

Get-Help Get-Command 

Då ser du grundläggande information om parametrarna. Om du vill se parameterns detaljer och några användningsexempel lägger du till -Full-parametern.

Om du bara vill se exemplen kan du köra:

 Get-Help Get-Command -Examples 

Denna cmdlet returnerar bara exemplen från hjälpfilen. Dessa exempel är ganska användbara eftersom de innehåller beskrivningar. Denna hjälptext förklarar vad cmdlet och parametrar gör när de körs.

hjälpfönster

Om du vill skjuta ut hjälpfilen i ett separat fönster kan du använda -ShowWindow . Så om du kör:

 Get-Help Get-Command -ShowWindow 

Powershell dyker upp ett fönster med full hjälpfilen. Du behöver inte använda Full parameter här, eftersom fönstret drar hela artikeln.

När du blir mer avancerad med Powershell hittar du att du använder Get-Member oftare. Det är ett enkelt sätt att se vilka fält som finns tillgängliga från returdata, liksom andra metoder du kan köra. Ofta kommer cmdlets att ha en -Property- parameter så att du kan ringa dem.

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

Nu när du har en aning om hur cmdlets fungerar, och hur man får hjälp, låt oss göra ändringar. Du kan hämta innehållet i en mapp med kommandot Get-ChildItem . Till exempel kan du hämta filerna på en hel enhet med hjälp av skrivbrevet. Stiga på:

 Get-ChildItem E:\ 

Vilket är förkortat:

 Get-ChildItem -Path E:\ 

När du kör det här kommandot får du en lista med filer med sin senaste skrivtid, storlek under egenskapen längd, namn och läge. Läget är attribut för en fil eller mapp AttributeMagic Free: Ändra filegenskaper i Windows AttributeMagic Free: Ändra filegenskaper i Windows Read More. De möjliga inmatningarna är:

  • Skrivskyddad
  • Dold
  • Systemet
  • Directory
  • arkiv
  • anordning
  • Vanligt
  • Temporär
  • SparseFile
  • ReparsePoint
  • Komprimerad
  • Off-line
  • NotContentIndexed
  • krypterad

Om du vill hämta innehållet i alla underkataloger i en sökväg, vill du använda -Recursionsparametern . Så kör sedan:

 Get-ChildItem -Path E:\ -Recurse 

Dina filer kommer då ut som separata listor för varje mapp i sökvägen.

powerhell get-childitem

För att begränsa data som returneras kan du använda några olika parametrar: -File, -Hidden and -ReadOnly . Om du vill filtrera bort namnen på filen kan du använda vilda kort i parametern Path. För att returnera alla .doc-filer i en katalog anger du:

 Get-ChildItem -Path E:\*.doc 

Lägg till igen -recurse om du vill ha allt från undermapparna också.

Om du vill ta bort en filanvändning:

 Remove-Item -Path E:\OldFile.txt 

För att hoppa över bekräftar varje fil, lägg till parametern - Bekräfta $ false (Powershell har två konstanter för booleska värden: $ true och $ false). För att tvinga bort skrivskyddade eller dolda filer använder du -Force- parametern.

Att flytta filer är lika enkelt. För att flytta allt från din Flash-enhet till den lokala enheten i en mappanvändning:

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

Du kan också namnge en enda fil i -Path för att bara flytta den filen. För att kopiera filen istället för att flytta den använder du samma syntax med cmdlet Kopiera- objekt.

Övervaka och arbeta med processer och tjänster

Varje Windows-användare känner till Task Manager 5 Kraftfulla alternativ till Windows Task Manager 5 Kraftfulla alternativ till Windows Task Manager Task Killer skulle vara ett bättre namn för den inbyggda Windows Task Manager eftersom vi bara tar upp det för att döda oanvända processer. Alternativa uppgiftshanterare låter dig faktiskt hantera dina processer. Läs mer . Det finns emellertid ett snabbare sätt att se de pågående processerna från Powershell, Get-Process . Om du vill veta vad alla poster i den här tabellen betyder, rör kommandot till Get-Member . Ange cmdlet:

 Get-Process | Get-Member 

Get-medlem utmatar en lista över metoder och egenskaper som är associerade med Get-Process. Informationen överst är vad du är intresserad av. Du ser de olika typerna av minne har alias.

powerhell get-process

Vi kan också se från den här utmatningen att vi kan få produktegenskapen för att få ett vänligare namn på processerna. Låt oss ändra utdata, så det har bättre information för oss att arbeta med:

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

(Det finns mer information om Select-Object och Sorter-Object i nästa avsnitt.)

Nu när du har ID från ditt Get-Process-kommando kan du stoppa det med hjälp av cmdlet Stop-Process. Så om du upptäcker att en Chrome-process tuggar upp alla dina resurser, hitta ID-numret i föregående kommando. Kör sedan:

 Stop-Process -ID 45960 

Ersätt 49560 med din resurs hogs ID.

Med hjälp av filvägen kan du starta en process med Powershell. För att starta Chrome kör följande kommando:

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

(Du måste ha citat runt filvägen på grund av mellanslag.) Parametern -ArgumentList gör att du kan skicka kommandoradsalternativ till programmet. När det gäller Chrome kan du tvinga det att starta i Incognito Mode med -incognito flaggan. Hela cmdlet är:

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

powerhell get-service

Du kan göra de flesta av de samma sakerna med tjänster Så här kontrollerar du körtjänster med SC-kommandot [Windows] Så här styr du körtjänster med SC-kommandot [Windows] En av de saker som jag tycker om mig själv gör mycket oftare sedan du drog in i IT Övervakar och kontrollerar statusen för tjänster som körs på datorer som körs över hela företaget. Det finns ... Läs mer. Get-Service visar dig en lista över alla tjänster som körs på din dator. Samma med start- och stopptjänster kan du använda Startservice och Stop-Service .

Arbeta med data: Sorter-Objekt, Välj-Objekt, Var-Objekt

När du arbetar med data från en cmdlet kanske det inte alltid är den ordning du vill ha. I sådana fall vill du använda sorteringsobjektet . Du kan ringa Sorter-objekt på en variabel du skapade, men i första hand används den genom att man rör en annan cmdlet. Som i exemplet ovan rör vi utmatningen från ett objekt till ett annat och sorterar det. Låt oss skapa en uppsättning av tre slumpmässiga nummer och rör det till Sort-Object.

Allt inom parentes går först. Skapa en enkel array med:

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

Var noga med att märka kommatecken som skiljer värdena. Så för att se de slumpmässiga numren sorterade kör:

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

Cmdleten matar ut siffrorna från minsta till största, om du vill vända den till -avsändande .

powerhell sort-objekt

När du rör cmdlets till Get-Member finns det fler egenskaper än standardutgången. Du väljer specifika egenskaper genom att använda Select-Object .

Precis som Sorter-Object använder du Select-Object via en piped cmdlet. Till exempel, för att skapa en tabell med tjänster och deras statusanvändning:

 Get-Service | Select-Object DisplayName, Status 

När du matar ut alla dessa data är det trevligt, vad händer om du bara vill se specifika data? Get-ChildItem har viss inbyggd filtrering, men de flesta kommandon gör det inte. I sådana fall använder du var-objekt .

powerhell var-objekt

Återgår till tjänster igen, den här gången kommer du bara att få löpande tjänster. Ange cmdlet:

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

Det -eq i jämförelsen är Powershell för = . I Powershell utför du jämförelser med bokstavskombinationer:

  • eq: är lika med
  • ne: inte lika
  • lt: mindre än
  • gt: större än
  • ge: större än eller lika med
  • le: mindre än eller lika med
  • som: använd som i jokertecken jämförelser

Formateringshjälp: Format-tabell och Format-lista.

För dessa olika cmdlets var det mesta av produktionen i tabellformat. Detta visar data i rader och kolumner med rubriker. För att visa poster som är listade med deras egenskaper individuellt, rör cmdlet till Format-List .

powerhell format-lista

Ibland har du en utgång som blir för bred för Powershell-fönstret. När det händer tvingar Powershell det till en listutgång. För att se till att du håller det i tabellformatet rör du utmatningen till Format-Table .

Från kommandoraden till Scripting: Nästa steg

När du är bekväm är skripting en fråga om att komma in i cmdlets. Förbättra din produktivitet med Windows PowerShell-skript. Förbättra produktiviteten med Windows PowerShell-skript. Vad händer om du kan ta med Linux-produktiviteten till Windows? De flesta Linux distros kommer packade med det kraftfulla Bash-skalet. PowerShell är en lika kraftfull terminal för Windows. Läs mer i en textfil och spara den. Om du är nervös för att försöka skripta, var det inte. Microsoft har en enorm mängd dokumentation på varje cmdlet. Detta är utöver den redan långa hjälpdokumentationen, så var säker på att kolla Technet.

Om du lär dig Powershell, låt oss veta i kommentarerna vad du är mest glada över att göra. Om du har lite mer erfarenhet, skulle vi älska att höra om mer avancerade ämnen som du skulle vilja se omfattas.

In this article