Powershell Cmdlets som kommer att förbättra dina Windows -administratörskunskaper

Powershell Cmdlets som kommer att förbättra dina Windows -administratörskunskaper

Powershell är ett perfekt sätt för en ny kodare att komma igång med Windows. Powershell är kommandoradsverktyg och skriptspråk för lika delar. Det ger dig möjlighet att automatisera din dator via samma kommandon som du använder för att administrera den . Om du har ett modernt Windows -system har du redan Powershell. De flesta av dess användningsområden är Windows -centrerade, men du kan också installera Powershell på en Mac- eller Linux -maskin.





Arbetar 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 åberopa 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 över kommandon, och du kan använda dess terminalfönster utan att en fil är öppen. Kommandolistan låter dig konstruera ditt kommando och infoga det. Om du gör mer avancerad utveckling, installera Microsofts Visual Studio Code. Koden innehåller stöd för Git -versionskontroll och andra språk.





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

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

Alla Powershell-kommandon har formen Verb-Substantiv. Verben är vanligtvis: Get, Set och New .



Get-Command låter dig 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.

Om du gräver dig längre från bara namnen på cmdlets börjar du se att de alla har en liknande struktur. Du åberopar dem med namn, precis som du gjorde med Get-Command. Med hjälp av parametrar ändras vilken information du får. Men om du bara har använt kommandot med standardalternativ, hur får du reda på hur du använder avancerade parametrar?





Använda Få hjälp cmdlet med Get-Command visar mer information om cmdlet. Vi använder cmdlet med följande syntax:

Get-Help Get-Command

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





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

Get-Help Get-Command -Examples

Denna cmdlet returnerar endast 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.

Om du vill hoppa ut hjälpfilen i ett separat fönster kan du använda -Visa fönster . Så om du springer:

Get-Help Get-Command -ShowWindow

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

När du blir mer avancerad med Powershell kommer du att upptäcka att du använder Get-Member oftare. Det är ett enkelt sätt att se vilka fält som är tillgängliga från returnerade data, liksom andra metoder du kan köra. Ofta har cmdlets en -Fast egendom parameter så att du kan ringa dem.

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

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

Get-ChildItem E:

Vilket är kort för:

Get-ChildItem -Path E:

När du kör det här kommandot får du en lista med filer med dess senaste skrivtid, storlek under egenskapen Length, namn och läge. Läget är attributen för en fil eller mapp. De möjliga posterna är:

  • Läs bara
  • Dold
  • Systemet
  • Katalog
  • Arkiv
  • Enhet
  • Vanligt
  • Temporär
  • SparseFile
  • ReparsePoint
  • Komprimerad
  • Off-line
  • NotContentIndexed
  • Krypterat

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

Get-ChildItem -Path E: -Recurse

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

För att begränsa data som returneras kan du använda några olika parametrar: -Fil , -Dold , och -Läs bara . Om du vill filtrera bort filnamnen kan du använda jokertecken i Path -parametern. Om du vill returnera alla .doc -filer i en katalog anger du:

Get-ChildItem -Path E:*.doc

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

Om du vill ta bort en fil använder du:

Remove-Item -Path E:OldFile.txt

Lägg till parametern för att hoppa över att bekräfta varje fil -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änd -Tvinga parameter.

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

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 Kopiera-objekt cmdlet.

Övervakning och arbete med processer och tjänster

Varje Windows -användare känner till Aktivitetshanteraren . Det finns dock ett snabbare sätt att se de för närvarande 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-member matar ut en lista över metoder och egenskaper som är associerade med Get-Process. Informationen överst är vad du är intresserad av. Du ser att de olika typerna av minne har alias.

Vi kan också se från denna utmatning att vi kan få Produkt egendom 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:

hur man tar porträttfoton iphone 7
Get-Process | Select-Object Product, NPM, CPU, Name, ID | Sort-Object CPU -Descending

(Det finns mer information om Select-Object och Sort-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 cmdleten Stop-Process. Så om du upptäcker att en Chrome -process tuggar upp alla dina resurser, hitta ID: t i föregående kommando. Kör sedan:

Stop-Process -ID 45960

Byta ut 49560 med ID för din resursgris.

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

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

(Du måste ha citaten runt filvägen på grund av mellanslag.) The -ArgumentList parameter kan du skicka kommandoradsalternativ till programmet. När det gäller Chrome kan du tvinga den att starta i inkognitoläge med --inkognito flagga. Hela cmdlet är:

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

Du kan göra det mesta av samma saker med tjänster. Get-Service visar en lista över alla tjänster som körs på din dator. Samma med start- och stopptjänster som du kan använda Starta service och Stop-Service .

Arbeta med data: Sort-Object, Select-Object, Where-Object

När du arbetar med data från en cmdlet kanske det inte alltid är den ordning du vill ha. I dessa fall vill du använda Sortera-objekt . Du kan anropa Sort-Object på en variabel du skapade, men den används främst genom att pipa 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 array med tre slumpmässiga tal och rör det till Sort-Object.

Allt inom parentes körs först. Skapa en enkel matris med:

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

Var noga med att märka kommatecken som skiljer värdena. Så för att se slumpmässiga nummer 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 lägg till -Nedåtgående .

När du rör cmdlets till Get-Member finns det fler egenskaper än standardutmatningen. Du väljer specifika egenskaper med Välj-objekt .

Precis som Sort-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

Medan det är bra att skriva ut all denna data, vad händer om du bara vill se specifik data? Get-ChildItem har viss inbyggd filtrering, men de flesta kommandon gör det inte. I dessa fall använder du Var-Objekt .

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

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

Den där -ekv i jämförelsen är Powershell för = . I Powershell gör du jämförelser med bokstavskombinationer:

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

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

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

Ibland har du en utdata som blir för bred för Powershell -fönstret. När det händer tvingar Powershell det till en listutmatning. För att vara säker på att du behåller den i tabellformatet, rör din produktion till Format-tabell .

Från kommandoraden till Scripting: Nästa steg

När du är bekväm är scripting en fråga om att ange cmdlets i en textfil och spara den. Om du är nervös för att prova manus, var inte det. Microsoft har en enorm mängd dokumentation på varje cmdlet. Detta är utöver den redan långa hjälpdokumentationen, så se till att kolla in Technet [No Longer Available].

Om du lär dig Powershell, låt oss veta i kommentarerna vad du är mest sugen på att göra. Om du har lite mer erfarenhet vill vi gärna höra om mer avancerade ämnen som du skulle vilja se täckt.

Dela med sig Dela med sig Tweet E-post Ta bort dessa Windows -filer och mappar för att frigöra diskutrymme

Behöver du rensa diskutrymme på din Windows -dator? Här är Windows -filer och mappar som säkert kan raderas för att frigöra diskutrymme.

Läs Nästa
Relaterade ämnen
  • Windows
  • Programmering
  • PowerShell
  • Scripting
Om författaren Michael McConnell(44 artiklar publicerade)

Michael använde inte en Mac när de var dömda, men han kan koda i Applescript. Han har examen i datavetenskap och engelska; han har skrivit om Mac, iOS och videospel ett tag nu; och han har varit en IT -apa på dagtid i över ett decennium, specialiserat sig på scripting och virtualisering.

Mer från Michael McConnell

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera