Če ste se borili z operacijskim sistemom Windows 10, ste nedvomno že slišali za PowerShell. Če ste s Win7 / 8.1 v zadnjem času poskušali narediti kaj modnega, je verjetno prišel tudi PowerShell. Po letih zanašanja na ukazno vrstico sistema Windows in združene paketne datoteke je čas, da si ogledate nekaj močnejšega, bolj prilagodljivega - boljšega.
PowerShell je izjemen dodatek orodjarni Windows in lahko zaradi te ogromnosti sproži nekoliko strahu. Je to skriptni jezik, ukazna lupina, talni vosek? Ali morate povezati cmdlet s primernim .Net razredom za zagon s ponudniki? In zakaj vsi dokumenti o podpori govorijo o skrbnikih - ali moram biti profesionalni skrbnik sistema Windows, da ga lahko uporabim?
Sprostite se PowerShell je zmogljiv, vendar ga ni treba zastraševati.
Naslednji vodnik je namenjen tistim, ki so zagnali ukaz Windows ali dva ali jim dodelili paketno datoteko. Razmislite o postopni preobrazbi iz PowerShell radovedne v PowerShell.
1. korak: Izvlecite ga
Prva stvar, ki jo boste potrebovali, je PowerShell sama. Če uporabljate Windows 10, imate že nameščeno PowerShell 5 - najnovejšo različico. (Win10 Anniversary Update ima 5.1, vendar ne boste vedeli razlike pri jesenski posodobitvi 5.0.) Windows 8 in 8.1 sta na voljo z PowerShell 4, ki je dovolj dober, da si namočite noge. Namestitev PowerShell-a v sistem Windows 7 ni težavna, vendar je potrebna posebna skrb - in .Net Framework morate namestiti ločeno. JuanPablo Jofre podrobno opisuje, kako namestiti WMF 5.0 (Windows Management Framework), ki vključuje PowerShell, poleg orodij, ki jih verjetno ne boste uporabili ob zagonu, na MSDN.
PowerShell ponuja dva vmesnika. Napredni uporabniki se bodo odločili za popoln GUI, znan kot integrirano skriptno okolje (ISE). Začetnike pa najbolje uporablja PowerShell Console, preprost besedilni vmesnik, ki spominja na ukazno vrstico sistema Windows ali celo DOS 3.2.
Če želite zagnati PowerShell kot skrbnik v sistemu Windows 10, kliknite Start in se pomaknite po seznamu aplikacij do Windows PowerShell. Kliknite to vrstico, z desno tipko miške kliknite lupino Windows PowerShell in izberite Zaženi kot skrbnik. V operacijskem sistemu Windows 8.1 poiščite lupino Windows PowerShell v sistemski mapi Windows. V Win7 je v mapi Dodatki. PowerShell lahko zaženete kot "običajnega" uporabnika, tako da sledite istemu zaporedju, vendar z levim klikom.
V kateri koli različici sistema Windows lahko z iskanjem sistema Windows poiščete PowerShell. V operacijskih sistemih Windows 8.1 in Windows 10 ga lahko vstavite v svoj meni za vklop Ctrl-X (z desno miškino tipko kliknite prazno mesto v opravilni vrstici in izberite Lastnosti; na zavihku Navigacija potrdite polje Zamenjaj ukazni poziv). Ko jo odprete, je dobro, da PowerShell pripnete na opravilno vrstico. Ja, tako všeč vam bo.
2. korak: Vnesite staromodne ukaze za Windows
Presenečeni bi bili nad tem, kako sintaksa ukazne vrstice sistema Windows deluje po pričakovanjih v PowerShell.
Na primer, cd
spreminja imenike (aka mape) in dir
še vedno navaja vse datoteke in mape, ki so vključene v trenutno mapo.
Odvisno od tega, kako zaženete konzolo PowerShell, lahko začnete pri c: \ Windows \ system32
ali ob c: \ Uporabniki \
. V primeru posnetka zaslona uporabljam cd ..
(upoštevajte presledek), da se premaknete za eno stopnjo navzgor, nato zaženite dir
za seznam vseh datotek in podmap v C: \
imenik.
3. korak: Namestite datoteke s pomočjo
Ukazi kot cd
in dir
niso izvorni ukazi PowerShell. So vzdevki - nadomestki za prave ukaze PowerShell. Vzdevki so lahko priročni za tiste, ki imamo težko premagati prstni spomin. Toda niti najpomembnejših delov PowerShell se ne začnejo dotikati.
Če želite začeti dobivati občutek za PowerShell, vnesite pomoč
čemur sledi ukaz, ki ga poznate. Na primer, na posnetku zaslona vtipkam pomoč dir
.
Pomoč PowerShell mi to pove dir
je vzdevek za ukaz PowerShell Get-ChildItem
. Seveda, če tipkate get-childitem
pri PS C: \>
v pozivu vidite natančno tisto, kar ste videli z dir
ukaz.
Kot je navedeno na dnu posnetka zaslona, se datoteke za pomoč za PowerShell ne namestijo samodejno. Da jih pridobite (vi naredi jih želite dobiti), se v skrbniškem načinu prijavite v PowerShell in nato vnesite posodobitev-pomoč
. Namestitev datotek s pomočjo bo trajala nekaj minut in morda manjka nekaj modulov - Pomoč za NetWNV in SecureBoot se ni uspela namestiti na moji preizkusni napravi. Ko pa končate, vam bo na voljo popoln sistem pomoči.
Od tega trenutka naprej vnesite Poišči pomoč
čemur sledi ukaz ("cmdlet" v PowerShell govori, izgovorjeno "command-let"), ki vas zadeva, in si oglejte vso pomoč za ta element. Na primer, get-help get-childitem
pripravi povzetek get-childitem
opcije. Prav tako vas bo pozval, da vnesete različice teme. Tako je naslednje:
get-help get-childitem -examples
pripravi sedem podrobnih primerov uporabe get-childitem
. Ukaz PowerShell
get-help get-childitem -detailed
vključuje teh sedem primerov ter podrobno razlago vseh parametrov, ki so na voljo za get-childitem
cmdlet.
4. korak: Poiščite pomoč glede parametrov
V pomoč dir
posnetek zaslona, ste morda opazili, da sta pod SINTAKS
za get-childitem
. Dejstvo, da obstajata dve ločeni skladnji za ukaz cmdlet, pomeni, da obstajata dva načina za zagon ukaznika. Kako ohraniti ločeni sintaksi - in kaj pomenijo parametri? Odgovor je enostaven, če poznate trik.
Da bi dobili vse podrobnosti o parametrih za get-childitem
cmdlet ali kateri koli drug cmdlet, uporabite -poln
parameter, kot je ta:
get-help get-childitem -full
Tako dobite vrstni seznam, kaj lahko naredite s cmdletom in kaj se lahko (ali pa ne!) Zgodi. Oglejte si posnetek zaslona.
Prelistavanje podrobnosti parametrov je razmeroma enostavno videti get-childitem
se lahko uporablja za pridobivanje "podrejenih" elementov (kot so imena podmap ali imen datotek) na mestu, ki ste ga določili, z ali brez ujemanja določenih znakov. Na primer:
get-childItem “* .txt” -recurse
pridobi seznam vseh* .txt
"V trenutni mapi in vseh podmapah (zaradi -poklic
parameter). Ob upoštevanju naslednjega:
get-childitem “HKLM: \ Software”
vrne seznam vseh registrskih ključev na visoki ravni v HKEY_LOCAL_MACHINE \ Programska oprema
.
Če ste kdaj poskusili vstopiti v register z ukazno vrstico sistema Windows ali paketno datoteko, sem prepričan, da lahko vidite, kako močan mora biti takšen dostop.
5. korak: Zabijte imena
Obstaja razlog, da smo komandne plošče, ki smo jih videli do zdaj, videti enako: get-childitem
, posodobitev-pomoč
, in Poišči pomoč
vsi sledijo isti glagolsko-samostalniški konvenciji. K sreči vsi komandirji PowerShella uporabljajo to konvencijo z glagolom pred samostalnikom (ednino). Tisti, ki ste se tedne borili za nedosledno imenovana ukaza VB in VBA, si lahko oddahnete.
Če si želite ogledati, kam gremo, si oglejte nekaj najpogostejših komandnih gumbov (zahvaljujoč blogu Eda Wilsona Hey, Scripting Guy!). Začnite s komandnimi gumbi, ki segajo v vaš sistem, in izvlecite koristne informacije, na primer naslednje:
set-location
: Nastavi trenutno delovno lokacijo na določeno lokacijoget-content
: Pridobi vsebino datotekeget-item
: Pridobi datoteke in mapecopy-item
: Kopira element z ene lokacije na drugoodstrani-element
: Izbriše datoteke in mapeget-proces
: Pridobi procese, ki se izvajajo v lokalnem ali oddaljenem računalnikuget-service
: Pridobi storitve, ki se izvajajo v lokalnem ali oddaljenem računalnikuinvoke-webrequest
: Pridobi vsebino s spletne strani v internetu
Če si želite ogledati, kako določena ukazna miza deluje, uporabite Poišči pomoč
, kot v
get-help copy-item -full
Na podlagi opisa pomoči lahko zlahka ugotovite, kaj želi cmdlet. Na primer, če želite kopirati vse datoteke in mape iz Dokumenti
do c: \ temp
, bi uporabili:
copy-item c: \ users \ [uporabniško ime] \ documents \ * c: \ temp
Ko vnesete ta ukaz, boste videli nekaj lepih dotikov, vgrajenih v okolje PowerShell. Na primer, če tipkate copy-i
in pritisnite tipko Tab, PowerShell izpolni Kopiraj-element
in prostor. Če vtipkate ukaz cmdlet in PowerShell tega ne more ugotoviti, dobite zelo natančen opis, kaj je šlo narobe.
Preizkusite ta cmdlet. (Morda vas bo poskušal namestiti program, da preberete polje »približno«. Če je tako, ga prezrite.)
invoke-webrequest askwoody.com
Prejmete kratek seznam izjav vsebine spletne strani, glav, slik, povezav in še več. Poglejte, kako to deluje? Obvestilo v Poišči pomoč
seznam za invoke-webrequest
da invoke-webrequest
cmdlet »vrne zbirke obrazcev, povezav, slik in drugih pomembnih elementov HTML« - natanko tisto, kar bi morali videti na zaslonu.
Nekatere komandne komande vam pomagajo nadzorovati ali preučiti sam PowerShell:
get-command
: Našteje vse razpoložljive ukazne gumbe (dolg seznam!)get-glagol
: Seznam vseh razpoložljivih glagolov (leve polovice komandnih gumbov)jasen gostitelj
: Počisti zaslon v gostiteljskem programu
Različni parametri (ne pozabite, Poišči pomoč
) vam omogočajo, da zmanjšate ukaze in zožite možnosti, ki so vam lahko koristne. Če si želite na primer ogledati seznam vseh ukazov, ki delujejo s storitvami Windows, poskusite to:
get-command * -service
Navede vse glagole, ki so na voljo z storitev
kot samostalnik. Tu je rezultat:
Get-Service
Nova storitev
Ponovni zagon storitve
Nadaljuj-storitev
Set-Service
Start-Service
Stop-Service
Suspend-Service
Te ukazne gumbe lahko kombinirate z drugimi ukaznimi mizami, da se poglobite v skoraj kateri koli del PowerShell-a. Tam se na sliki pojavijo cevi.
6. korak: Vstavite cevi
Če ste že kdaj uporabili ukazno vrstico sistema Windows ali se premešali po paketni datoteki, veste o preusmerjanju in kanalih. Preprosto povedano, preusmeritev (>
znak) in cevi ( |
znak) vzemite izhod iz akcije in jo prilepite nekam drugam. Izhod a lahko na primer preusmerite dir
ukaz v besedilno datoteko ali "pipe" rezultat a ping
ukaz v najti
, da filtriramo zanimive rezultate, na primer tako:
dir> temp.txt
ping askwoody.com | poiščite “pakete”> temp2.txt
V drugem zgornjem ukazu je najti
ukaz išče niz paketov
v cevnem izhodu askwoody.com ping
in prilepi vse vrstice, ki se ujemajo v datoteki z imenom temp2.txt
.
Morda presenetljivo je, da prvi od teh ukazov v PowerShell-u deluje dobro. Če želite zagnati drugi ukaz, želite nekaj takega:
ping askwoody.com | paketi izbirnega niza | zunanja datoteka temp2.txt
Uporaba preusmeritve in cevi močno razširi zmogljivosti ukazne vrstice sistema Windows: Namesto da bi se na primer neskončno pomikali po zaslonu in iskali besedilni niz, lahko sestavite cevni ukaz Windows, ki za vas opravi preverjanje.
PowerShell ima možnost cevovoda, vendar ni omejen na besedilo. Namesto tega PowerShell omogoča prenos celotnega predmeta iz enega ukaznega gumba v drugega, pri čemer je »objekt« kombinacija podatkov (imenovane lastnosti) in dejanj (metod), ki jih je mogoče uporabiti na podatkih.
Težji del pa je v poravnavi predmetov. Vrsta predmeta, ki ga dostavi en cmdlet, se mora ujemati s vrstami predmetov, ki jih sprejme cmdlet, ki ga prejme. Besedilo je zelo preprosta vrsta predmeta, zato je, če delate z besedilom, postavitev elementov enostavno. Drugi predmeti niso tako osnovni.
Kako ugotoviti? Dobrodošli v get-member
cmdlet. Če želite vedeti, katero vrsto predmeta ukazna vrstica ustvari, jo napeljite skozi get-member
. Če na primer poskušate ugotoviti procese, ki se izvajajo v računalniku, in ste možnosti zožili na get-proces
cmdlet, tukaj boste izvedeli, kaj je get-proces
cmdlet proizvaja:
postopek pridobivanja | get-member
Zagon tega ukaza ustvari dolg seznam lastnosti in metod za get-proces
, a na samem začetku seznama lahko vidite vrsto predmeta, ki je get-proces
ustvarja:
TypeName: System.Diagnostics.Process
To vam pove tudi spodnji posnetek zaslona get-proces
ima imenovane lastnosti Ročaji
, Ime
, NPM
, PM
, SI
, VM
, in WS
.
Če želite manipulirati z izhodno datoteko get-proces
da boste lahko delali z njim (v nasprotju s tem, da bo na monitorju prikazoval dolg seznam aktivnih procesov), morate poiskati drugo ukazno mapo, ki bo delovala z System.Diagnostics.Process
kot vhod. Če želite poiskati pripravljeni cmdlet, preprosto uporabite… počakajte… PowerShell:
get-command -Parametertype System.Diagnostics.Process
Tako dobite seznam vseh komandnih mest, ki jih lahko obvladate System.Diagnostics.Process
.
Nekatere komandne plošče so znane po tem, da jemljejo skoraj kakršen koli vnos. Glavni med njimi: kje-objekt
. Mogoče zmedeno, kje-objekt
en za drugim pregleduje vsak element, poslan po cevovodu, in uporabi poljubna izbirna merila, ki jih zahtevate. Obstaja posebna oznaka, imenovana $_
. ki vam omogoča, da stopite skozi vsak element v cevi, enega za drugim.
Recimo, da ste želeli pripraviti seznam vseh procesov, ki se izvajajo v vaši napravi in se imenujejo »svchost
”- v PowerShell govori želite, da se ujema z a Ime
lastninasvchost
. Preizkusite ta ukaz PowerShell:
postopek pridobivanja | kje-objekt {$ _. Ime -eq “svchost”}
The kje-objekt
cmdlet si ogleda vsakega System.Diagnostics.Process
postavka, primerja .Ime
tega predmeta na “svchost
"; če se element ujema, izpljune konec cevi in se vnese na vaš monitor. Oglejte si posnetek zaslona.