Powershell Cmdlets som kommer att förbättra dina Windows-administrativa färdigheter
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.
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. Verben är vanligtvis: Få, Ange och Nytt.
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.
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. Om du bara har använt kommandot med standardalternativ, hur kan du ta 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
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-Exemplar
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.
Om du vill spränga hjälpfilen i ett separat fönster kan du använda -Visa fönster. 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 -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 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 hjälp av Get-ChildItem kommando. 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
- Tillfälliga
- SparseFile
- ReparsePoint
- Komprimerad
- Off-line
- NotContentIndexed
- krypterad
Om du vill ha 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 då 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 -Skrivskyddad. 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ä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 mappanvändning:
Flytta-objekt-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 Copy-Post cmdlet.
Ö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 dock 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-medlem. Ange cmdlet:
Get-Process | Get-medlem
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.
Vi kan också se från denna produktion som 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:
Get-Process | Välj-objektprodukt, NPM, CPU, Namn, ID | Sortera-objekt-CPU -avsändande
(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
Byta ut 49.560 med ID för din resurs hog.
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: \ Programfiler (x86) GoogleChromeApplicationchrome.exe"
(Du måste ha citaten runt filvägen på grund av mellanslag.) -argument parameter kan du skicka kommandoradsalternativ till applikationen. När det gäller Chrome kan du tvinga det att starta i Incognito Mode med hjälp av -inkognito flagga. Hela cmdlet är:
Start-Process -Filepath "C: \ Program Files (x86) GoogleChromeApplicationchrome.exe" -ArgumentList "--incognito"
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 Starta service 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 Sort-Object. 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:
$ (Slumpmässig), $ (Slumpmässig), $ (Slumpmässig)
Var noga med att märka kommatecken som skiljer värdena. Så för att se de slumpmässiga numren sorterade kör:
$ (Slumpmässig), $ (Slumpmässig), $ (Slumpmässig) | Sort-Object
Cmdleten matar ut siffrorna från minsta till största, om du vill vända det tillägget -Nedåtgående.
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 | Välj-Objekt 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-Object.
Återgår till tjänster igen, den här gången kommer du bara att få löpande tjänster. Ange cmdlet:
Get-Service | Var-Objektstatus -Eq "Running"
Den där -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 uppgifter som anges med deras egenskaper individuellt, rör cmdlet till Format-List.
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 försäkra dig om att du håller det i tabellformatet rör du utmatningen till Format-tabell.
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.
Utforska mer om: PowerShell, Scripting.