10Aug

Geek šola: učenje uporabe ukaznih vrstic v PowerShell

Če ste z ukaznim pozivom uporabljali ipconfig ali ping, na pol poti postanete PowerShell ninja. Zato pridite in se nam pridružite, ko v tej namestitvi šole Geek odkrivamo cmdletov.

Bodite prepričani, da preverite naš prvi članek, ki uvaja PowerShell, in ostanejo nastavljeni za preostanek naše serije ves teden.

Anatomija Cmdlet

V prvem delu serije smo videli cmdlet, ki je izgledal takole:

Update-Help

cmdletji PowerShell imajo sintakso s pomenko na glagolu, ki je prikazana zgoraj. Pomembno je omeniti, da je samostalnik vedno edinstven, čeprav lahko cmdlet vrne več kot en rezultat.Če si želite ogledati seznam pravnih glagolov v PowerShell-u, lahko uporabite ukaz cmdlet Get-Verb.

Poznavanje pravnih glagolov in spominjanje na edinstveno pravilo o pravicah resnično pomaga uganiti imena cmdletov. Recimo, da želite, da dobite seznam storitev in njihov status - to je prav, tako preprosto kot Get-Service. Kako mislite, da bi dobili seznam tekočih procesov - to je prav, Get-Process bo naredil trik.

Get-Process

To omogoča enostavno delo s katero koli tehnologijo. Na primer, če ste imeli naložene ukaze cmdletov Exchange, lahko preprosto dobimo seznam poštnih nabiralnikov na strežniku z uporabo:

Get-Mailbox

Vendar pa obstaja izjema.Če zamenjate, bodo vsi drugi ukazi, specifični za tehnologijo, potrebovali predpono.Če želimo na primer uporabnike, ki so trenutno prijavljeni prek oddaljenega namizja, vnesli:

Get-RDUserSession

Kateri je prikazan na sliki spodaj.

Opomba: Ta posnetek zaslona je bil posnet na polju Server 2012, saj boste tam našli večino modulov, specifičnih za tehnologijo.

Pred časom sem prebral članek Don Jonesa, Godfather PowerShell, kjer je pojasnil, da je bila Exchange prenesena pred to predpono, ki je bila dodana v cmdlet, zato jih ni nikoli izvajala in nikoli ne bo.

Aliases

Še ena funkcija PowerShell je možnost, da imate več načinov za izvajanje istega ukaza - vzdevki, če jih boste. Neverjetna stvar je, da so vključevali veliko ukazov, ki ste jih morda uporabljali v ukaznem pozivu, in tudi nekatere vzdevke Linuxa. Na primer v PowerShellu lahko dobimo vnos v imeniku z uporabo:

Get-ChildItem

Ali se uporablja ukazni poziv? Ne skrbi, ti si pokrit.

Ali imate ozadje Linuxa? Tudi tam so pokrivali.

Ko ste že nekaj let skriptirali, se nagibate k leni in začnete uporabljati vzdevke veliko, vendar to ne pomaga novincem, ki bodo prebrali našo kodo.Če si želite ogledati, kateri ukaz je vzdevek pod pokrovom, lahko uporabite naslednje:

Get-Alias ​​-Name ls

Če pa menite, da je čas, da se vaša igra premakne, lahko uporabite parameter definicije, da dobitevsi vzdevki za cmdlet:

Get-ChildItem -Definition Get-ChildItem

Če prihajate iz nekega drugega ozadja, lahko dodate svoje vzdevke tako, da naredite naslednje:

New-Alias-Ime icanhazfilez -Value Get-ChildItem

Očitno je,boste morali zamenjati »icanhazfilez« z imenom novega vzdevka in Get-ChildItem z ukazno vrstico, ki jo želite zagnati pod pokrovom.

Treba je omeniti, da izgubite vse vzdevke, ki ste jih določili, ko zaprete lupino. O tem lahko preberete, tako da dodate svojo definicijo v svoj skriptni profil.

Odrezavanje parametrov

Windows PowerShell vam omogoča tudi, da skrajšate imena parametrov do točke, ko postanejo dvoumni, torej do točke, ko PowerShell ne more več ugotoviti, kateri parameter ste govorili. Na primer:

Get-Service -Name "Apple Mobile Device" -podatki lokalnega gostitelja za računalniško nameščen

Je enak kot:

Get-Service -Na "Apple Mobile Device" -Kom localhost

Če boste v vsakem primeru imeli imena parametrov preveč dvoumnibo prišlo do napake.

Legacy Commands

Končno, ukazi, ki jih poznate in ljubite, bodo še vedno delali v programu PowerShell.

ping www.google.com

Samo zapomnite si, da starejše aplikacije, kot je ping, izdelajo niz in pogosto je boljši način, da naredite isto stvar z uporabo cmdletja PowerShell.

Namesto izdaje dolgega niza besedila smo zdaj pustili predmet, ki ga bomo videli v jutrišnji izdaji Geek šole.