Geek School: Lære at bruge Cmdlets i PowerShell

Indholdsfortegnelse:

Video: Geek School: Lære at bruge Cmdlets i PowerShell

Video: Geek School: Lære at bruge Cmdlets i PowerShell
Video: How to Edit Your Custom Dictionary in Microsoft Word 2024, Marts
Geek School: Lære at bruge Cmdlets i PowerShell
Geek School: Lære at bruge Cmdlets i PowerShell
Anonim
Hvis du har brugt ipconfig eller ping gennem kommandoprompten, er du halvvejs til at blive en PowerShell ninja. Så kom og kom med os, da vi opdager cmdlets i denne installation af Geek School.
Hvis du har brugt ipconfig eller ping gennem kommandoprompten, er du halvvejs til at blive en PowerShell ninja. Så kom og kom med os, da vi opdager cmdlets i denne installation af Geek School.

Sørg for at tjekke vores første artikel, der introducerer PowerShell, og hold øje med resten af vores serie hele ugen.

Anatomien af en Cmdlet

I serieens første del så vi en cmdlet, der så noget sådan ud:

Update-Help

PowerShell cmdlets har en Verb-Noun syntaks, som kan ses ovenfor. Det vigtige at bemærke er, at substantivet altid er entydigt, selvom cmdletet måske returnerer mere end et resultat. For at se en liste over juridiske verb i PowerShell kan du bruge Get-Verb cmdlet.

Image
Image

At kende de juridiske verb og huske den entydige substantivregel hjælper virkelig med at gætte cmdletnavne. Antag for eksempel, at du vil en liste over tjenester og deres status - det er rigtigt, det er lige så nemt som Get-Service. Hvordan tror du, at vi ville en liste over løb processer - Det er rigtigt, Get-Process vil gøre tricket.

Get-Process

Dette gør det virkelig nemt at arbejde med enhver teknologi. For eksempel, hvis du havde indlæst Exchange cmdlets, kunne vi nemt få en liste over postkasser på serveren ved at bruge:

Get-Mailbox

Der er dog en undtagelse. Udveksling til side, vil alle andre teknologiske specifikke kommandoer kræve et præfiks. For eksempel, hvis vi ønskede at få de brugere, der for øjeblikket er logget på via Remote Desktop, ville vi skrive:

Get-RDUserSession

Som kan ses i skærmbilledet nedenfor.

Bemærk: Dette skærmbillede blev taget på en Server 2012-boks, da det er her, du skal finde de fleste af de teknologiske specifikke moduler.

For en tid siden læste jeg en artikel af Don Jones, Godfather of PowerShell, hvor han forklarede, at Exchange blev sendt før dette præfiks blev tilføjet til cmdlets, så det implementerede dem aldrig og vil aldrig.
For en tid siden læste jeg en artikel af Don Jones, Godfather of PowerShell, hvor han forklarede, at Exchange blev sendt før dette præfiks blev tilføjet til cmdlets, så det implementerede dem aldrig og vil aldrig.

aliasser

En anden funktion, PowerShell kommer med, er muligheden for at have flere måder at køre de samme kommandoaliaser, hvis du vil. Den fantastiske ting ved dem er, at de indeholdt mange kommandoer, du måske har brugt i kommandoprompten, samt nogle Linux-aliaser. I PowerShell kan vi f.eks. Få en katalogfortegnelse ved at bruge:

Get-ChildItem

Brugt til at bruge kommandoprompten? Bare rolig, de har du dækket.
Brugt til at bruge kommandoprompten? Bare rolig, de har du dækket.
Har du en Linux-baggrund? De har du dækket der også.
Har du en Linux-baggrund? De har du dækket der også.

Når du har skrevet script i et par år, har du tendens til at blive doven og begynder at bruge aliaser meget, men det hjælper ikke nykommere, der vil læse vores kode. For at se, hvilken kommando et alias kører under emhætten, kan du bruge følgende:

Get-Alias –Name ls

På den anden side, hvis du føler, at det er på tide at træde dit spil op, kan du bruge definitionparameteren til at få alle aliaser til en cmdlet:
På den anden side, hvis du føler, at det er på tide at træde dit spil op, kan du bruge definitionparameteren til at få alle aliaser til en cmdlet:

Get-ChildItem –Definition Get-ChildItem

Hvis du kommer fra en anden baggrund, kan du tilføje dine egne aliaser ved at gøre følgende:
Hvis du kommer fra en anden baggrund, kan du tilføje dine egne aliaser ved at gøre følgende:

New-Alias –Name icanhazfilez –Value Get-ChildItem

Du skal selvfølgelig erstatte "icanhazfilez" med navnet på dit nye alias og Get-ChildItem med cmdletet, du vil have det til at løbe under emhætten.

En ting at bemærke er, at du mister alle de aliaser du har defineret, når du lukker skallen. Du kan komme rundt ved at tilføje deres definition til dit profil script.
En ting at bemærke er, at du mister alle de aliaser du har defineret, når du lukker skallen. Du kan komme rundt ved at tilføje deres definition til dit profil script.

Trunkerende parametre

Windows PowerShell giver dig også mulighed for at afkorte parameternavne indtil det punkt, hvor de bliver tvetydige, det vil sige indtil det punkt, hvor PowerShell ikke længere kan finde ud af, hvilken parameter du taler om. For eksempel:

Get-Service -Name ‘Apple Mobile Device’ -ComputerName localhost

Er det samme som:
Er det samme som:

Get-Service -Na ‘Apple Mobile Device’ -Com localhost

Hvis du med en chance gør parametrene navne for tvetydige, får du en fejl.
Hvis du med en chance gør parametrene navne for tvetydige, får du en fejl.

Legacy Commands

Endelig arbejder de kommandoer, du kender og elsker, stadig i PowerShell.

ping www.google.com

Anbefalede: