Jos olet kamppaillut Windows 10: n kanssa, olet epäilemättä kuullut PowerShellistä. Jos olet äskettäin yrittänyt tehdä jotain hienoa Win7 / 8.1: n kanssa, myös PowerShell tulee todennäköisesti esiin. Kun olet vuosien ajan luottanut Windowsin komentoriviin ja heittänyt yhteen eräajotiedostoja, on aika asettaa tähtäimet tehokkaammalle, mukautuvammalle - paremmalle.
PowerShell on valtava lisäys Windowsin työkalupakettiin, ja se voi aiheuttaa hieman pelkoa, kun otetaan huomioon tämä valtavuus. Onko se komentosarjakieli, komentokuori, lattiavaha? Pitääkö sinun linkittää cmdlet-tiedosto instantisoituun .Net-luokkaan, jotta voit suorittaa palveluntarjoajien kanssa? Ja miksi kaikki tukidokumentit puhuvat järjestelmänvalvojista - onko minun oltava ammattimainen Windows-järjestelmänvalvoja voidaksesi käyttää sitä?
Rentoutua. PowerShell on tehokas, mutta sen ei tarvitse olla pelottava.
Seuraava opas on tarkoitettu niille, jotka ovat suorittaneet Windows-komennon tai kaksi tai hämmentäneet eräajotiedostoa. Pidä sitä vaiheittaisena muutoksena utelias PowerShellistä PowerShell-yhteensopivaksi.
Vaihe 1: Käynnistä se
Ensimmäinen tarvitsemasi asia on itse PowerShell. Jos käytät Windows 10: tä, sinulla on jo asennettuna PowerShell 5 - uusin versio. (Win10 Anniversary Update -sovelluksessa on 5.1, mutta et tiedä eroa Fall Update -sovelluksen 5.0 kanssa.) Windows 8 ja 8.1 toimitetaan PowerShell 4: n kanssa, mikä on tarpeeksi hyvä jalkojesi kastelemiseen. PowerShellin asentaminen Windows 7: een ei ole vaikeaa, mutta se vaatii erityistä varovaisuutta - ja .Net Framework on asennettava erikseen. JuanPablo Jofre kertoo kuinka WMF 5.0 (Windows Management Framework), joka sisältää PowerShellin, asennetaan työkalujen lisäksi, joita et todennäköisesti käytä aloittaessasi, MSDN: ään.
PowerShell tarjoaa kaksi liitäntää. Edistyneet käyttäjät käyttävät täysimittaista käyttöliittymää, joka tunnetaan nimellä Integrated Scripting Environment (ISE). Aloittelijoille palvelee kuitenkin parhaiten PowerShell Console, yksinkertainen tekstirajapinta, joka muistuttaa Windowsin komentoriviä, tai jopa DOS 3.2.
Voit aloittaa PowerShellin järjestelmänvalvojana Windows 10: stä napsauttamalla Käynnistä ja vierittämällä sovellusten luetteloa alaspäin Windows PowerShelliin. Napsauta sitä riviä, napsauta hiiren kakkospainikkeella Windows PowerShell ja valitse Suorita järjestelmänvalvojana. Etsi Windows 8.1: ssä Windows PowerShell Windows System -kansiosta. Win7: ssä se on Tarvikkeet-kansiossa. Voit suorittaa PowerShellin "normaalina" käyttäjänä seuraamalla samaa järjestystä mutta vasemmalla napsautuksella.
Missä tahansa Windows-versiossa voit etsiä PowerShelliä Windows-haulla. Windows 8.1: ssä ja Windows 10: ssä voit laittaa sen Ctrl-X: n "Virta-valikkoon" (napsauta hiiren kakkospainikkeella tyhjää kohtaa tehtäväpalkissa ja valitse Ominaisuudet; valitse Navigointi-välilehdessä Korvaa komentokehote). Kun se on auki, on hyvä kiinnittää PowerShell tehtäväpalkkiin. Kyllä, pidät siitä niin paljon.
Vaihe 2: Kirjoita vanhanaikaiset Windows-komennot
Olisit hämmästynyt siitä, kuinka paljon Windowsin komentorivisyntaksia toimii odotetusti PowerShellissä.
Esimerkiksi, CD
muuttaa hakemistoja (alias kansioita) ja ohj
luetteloi edelleen kaikki nykyiseen kansioon sisältyvät tiedostot ja kansiot.
PowerShell-konsolin käynnistystavasta riippuen voit aloittaa osoitteesta c: \ Windows \ system32
tai c: \ Käyttäjät \
. Kuvakaappausesimerkissä käytän cd ..
(huomaa välilyönti) siirtyäksesi ylöspäin kerrallaan, sitten ajaa ohj
luetteloida kaikki tiedostot ja alikansiot C: \
hakemistoon.
Vaihe 3: Asenna ohjetiedostot
Komennot kuten CD
ja ohj
eivät ole alkuperäisiä PowerShell-komentoja. Ne ovat aliaksia - korvaavat todelliset PowerShell-komennot. Aliakset voivat olla käteviä niille meistä, joiden sormimuisti on vaikea voittaa. Mutta he eivät edes ala koskettaa PowerShellin tärkeimpiä osia.
Aloita tuntea itse PowerShell, kirjoittamalla auta
seuraa komento, jonka tiedät. Esimerkiksi kuvakaappauksessa kirjoitan apua ohj
.
PowerShell-ohje kertoo sen minulle ohj
on alias PowerShell-komennolle Get-ChildItem
. Tosiaan, jos kirjoitat get-childitem
klo PS C: \>
kehote, näet tarkalleen mitä näit ohj
komento.
Kuten kuvakaappauksen alaosassa todettiin, PowerShellin ohjetiedostoja ei asenneta automaattisesti. Niiden hakemiseksi (sinä tehdä haluat saada ne), kirjaudu PowerShelliin järjestelmänvalvojan tilassa ja kirjoita sitten update-help
. Ohjetiedostojen asentaminen kestää useita minuutteja, ja muutamia moduuleja saattaa puuttua - NetWNV: n ja SecureBootin ohjeiden asennus epäonnistui testikoneellani. Mutta kun olet valmis, koko apujärjestelmä on käytettävissäsi.
Kirjoita siitä lähtien Hae apua
seuraa komento ("cmdlet" PowerShell-puheessa, lausutaan "command-let"), joka koskee sinua ja näet kaikki kyseisen tuotteen ohjeet. Esimerkiksi, get-help get-childitem
tuottaa yhteenvedon get-childitem
vaihtoehtoja. Se kehottaa myös kirjoittamaan muunnelmia teemasta. Näin ollen seuraavat:
get-help get-childitem -esimerkkejä
tuottaa seitsemän yksityiskohtaista esimerkkiä käytöstä get-childitem
. PowerShell-komento
get-help get-childitem -detailed
sisältää nämä seitsemän esimerkkiä sekä yksityiskohtaisen selityksen jokaisesta parametrille käytettävissä olevasta parametrista get-childitem
cmdlet.
Vaihe 4: Hanki apua parametreista
vuonna apua ohj
kuvakaappaus, olet ehkä huomannut, että alla on kaksi ilmoitusta SYNTAKSI
varten get-childitem
. Se, että cmdlet-sovelluksessa on kaksi erillistä syntaksia, tarkoittaa sitä, että cmdlet-komentoa voidaan käyttää kahdella tavalla. Kuinka pidät syntaksit erillään - ja mitä parametrit tarkoittavat? Vastaus on helppo, jos tiedät temppun.
Saadaksesi kaikki yksityiskohdat get-childitem
cmdlet-tiedostoa tai muuta cmdlet-tiedostoa, käytä -koko
parametri, kuten tämä:
get-help get-childitem-täysi
Se tuottaa rivi riviltä luettelon siitä, mitä voit tehdä cmdlet-sovelluksella ja mitä voi tapahtua (tai ei!) Katso kuvakaappaus.
Parametrien yksityiskohtia on melko helppo nähdä get-childitem
voidaan käyttää "lapsi" -kohteiden (kuten alikansioiden tai tiedostojen nimien) noutamiseen määritetystä sijainnista, joko tietyillä merkkitavoilla tai ilman. Esimerkiksi:
get-childItem “* .txt” -recurse
hakee luettelon kaikista* .txt
”Tiedostot nykyisessä kansiossa ja kaikissa alikansioissa (johtuen -toistua
parametri). Seuraavat:
get-childitem "HKLM: \ Ohjelmisto"
palauttaa luettelon kaikista korkean tason rekisteriavaimista HKEY_LOCAL_MACHINE \ Ohjelmisto
.
Jos olet joskus yrittänyt päästä rekisteriin Windowsin komentorivillä tai erätiedostolla, voit varmasti nähdä, kuinka tehokkaan tällaisen pääsyn on oltava.
Vaihe 5: Naulaa nimet alas
Tähän mennessä näkemämme cmdletit näyttävät samalta: get-childitem
, update-help
ja Hae apua
kaikki noudattavat samaa verbi-substantiivisopimusta. Armollisesti kaikki PowerShellin cmdletit käyttävät tätä käytäntöä, ja verbi edeltää (yksikkö) substantiivia. Ne teistä, jotka viettivät viikkoja kamppailemalla epäjohdonmukaisesti nimettyjen VB- ja VBA-komentojen kanssa, voivat hengittää helpotusta.
Jos haluat nähdä, mihin olemme menossa, tutustu yleisimpiin cmdlet-tiedostoihin (kiitos Ed Wilsonin Hey, Scripting Guy! -Blogista). Aloita järjestelmään ulottuvilla cmdlet-tiedostoilla ja poimi hyödyllisiä tietoja, kuten seuraava:
asetettu sijainti
: Asettaa nykyisen työskentelypaikan määritettyyn sijaintiinget-content
: Noutaa tiedoston sisällönget-item
: Haetaan tiedostot ja kansiotcopy-item
: Kopioi kohteen paikasta toiseenPoista esine
: Poistaa tiedostot ja kansiotget-prosessi
: Hankkii prosessit, jotka ovat käynnissä paikallisella tai etätietokoneellaget-palvelu
: Palvelut käynnistetään paikallisella tai etätietokoneellainvoke-webrequest
: Haetaan sisältöä Internet-verkkosivulta
Jos haluat nähdä, kuinka tietty cmdlet toimii, käytä Hae apua
, kuten
get-help copy-item -full
Sen ohjeiden perusteella voit helposti selvittää, mitä cmdlet-kirjain haluaa. Esimerkiksi, jos haluat kopioida kaikki tiedostot ja kansiot Asiakirjat
että c: \ lämpötila
, käytät:
copy-item c: \ users \ [username] \ documents \ * c: \ temp
Kun kirjoitat komentoa, näet muutaman hienon kosketuksen PowerShell-ympäristöön. Esimerkiksi, jos kirjoitat copy-i
ja paina sarkainnäppäintä, PowerShell täyttää Kopioi-kohde
ja välilyönti. Jos kirjoitat cmdletin väärin ja PowerShell ei pysty selvittämään sitä, saat erittäin perusteellisen kuvauksen siitä, mikä meni pieleen.
Kokeile tätä cmdlet-tiedostoa. (Se voi yrittää saada sinut asentamaan ohjelman lukemaan "About" -ruutu. Jos näin on, ohita se.)
invoke-webrequest askwoody.com
Saat ytimekkään luettelon verkkosivun sisältöilmoituksista, otsikoista, kuvista, linkeistä ja muusta. Katso miten se toimii? Ilmoitus Hae apua
listalle invoke-webrequest
että invoke-webrequest
cmdlet "palauttaa lomakekokoelmat, linkit, kuvat ja muut merkittävät HTML-elementit" - juuri sen, mitä sinun pitäisi nähdä ruudulla.
Jotkin cmdlet-komennot auttavat sinua hallitsemaan itse PowerShelliä tai grokki:
get-komento
: Luettelee kaikki saatavilla olevat cmdletit (se on pitkä luettelo!)get-verbi
: Luettelee kaikki käytettävissä olevat verbit (cmdletien vasen puolisko)selkeä isäntä
: Tyhjentää isäntäohjelman näytön
Eri parametrit (muista, Hae apua
) avulla voit pilata komentoja ja rajata vaihtoehtoja, joista voi olla hyötyä sinulle. Esimerkiksi, jos haluat nähdä luettelon kaikista Windows-palveluiden kanssa toimivista cmdlet-moduuleista, kokeile tätä:
get-command * -palvelu
Siinä luetellaan kaikki verbit, jotka ovat käytettävissä palvelu
substantiivina. Tässä on tulos:
Hanki palvelu
Uusi palvelu
Käynnistä palvelu uudelleen
Jatka palvelua
Set-Service
Käynnistä palvelu
Stop-palvelu
Keskeytä palvelu
Voit yhdistää nämä cmdletit muiden cmdlet-kirjaimien kanssa kaivamaan alas melkein mihin tahansa PowerShell-osaan. Siellä putket tulevat kuvaan.
Vaihe 6: Tuo putket sisään
Jos olet joskus käyttänyt Windowsin komentoriviä tai löytänyt eräajotiedostoa, tiedät uudelleenohjauksesta ja putkista. Yksinkertaisesti sanottuna molemmat uudelleenohjaukset (>
merkki) ja putket ( |
merkki) ottaa toiminnan tulos ja kiinnitä se jonnekin muualle. Voit esimerkiksi ohjata uudelleen a: n tuloksen ohj
komento tekstitiedostoon tai "putki" a: n tuloksesta ping
komento a löytö
, suodattaa mielenkiintoisia tuloksia, kuten:
dir> temp.txt
ping askwoody.com | etsi paketit> temp2.txt
Yllä olevassa toisessa komennossa löytö
komento etsii merkkijonoa paketteja
askwoody.com-sovelluksen putkilähdössä ping
ja kiinnittää kaikki vastaavat rivit tiedostoon nimeltä temp2.txt
.
Ehkä yllättävää kyllä, ensimmäinen näistä komennoista toimii hyvin PowerShellissä. Toisen komennon suorittamiseksi haluat jotain tällaista:
ping askwoody.com | valitse merkkijonopaketit | out-tiedosto temp2.txt
Uudelleenohjauksen ja putkien käyttäminen laajentaa huomattavasti Windowsin komentorivin ominaisuuksia: Sen sijaan, että vierität loputtomasti näyttöä alaspäin etsimällä esimerkiksi tekstimerkkijonoa, voit koota putkitetun Windows-komennon, joka tekee tarkastuksen puolestasi.
PowerShellillä on putkisto-ominaisuus, mutta se ei rajoitu tekstiin. Sen sijaan PowerShell antaa sinun siirtää koko objektin cmdlet-tiedostosta toiseen, jossa "objekti" on yhdistelmä tietoja (joita kutsutaan ominaisuuksiksi) ja toiminnoissa (menetelmiä), joita voidaan käyttää tiedoissa.
Vaikea osa on kuitenkin esineiden kohdistus. Yhden cmdlet-muistin toimittaman objektin on vastattava vastaanottavan cmdletin hyväksymiä esineitä. Teksti on hyvin yksinkertainen objekti, joten jos työskentelet tekstin kanssa, kohteiden järjestäminen on helppoa. Muut esineet eivät ole niin alkeellisia.
Kuinka selvittää se? Tervetuloa get-jäsen
cmdlet. Jos haluat tietää minkä tyyppisen objektin cmdlet-tiedosto tuottaa, vie se läpi get-jäsen
. Jos esimerkiksi yrität selvittää tietokoneellasi käynnissä olevia prosesseja, ja olet kaventanut vaihtoehtoja get-prosessi
cmdlet, täältä saat selville, mitä get-prosessi
cmdlet tuottaa:
get-prosessi | get-jäsen
Komennon suorittaminen tuottaa pitkän luettelon ominaisuuksista ja menetelmistä get-prosessi
, mutta luettelon alusta näet kyseisen objektityypin get-prosessi
luo:
TypeName: System.Diagnostics.Process
Alla oleva kuvakaappaus kertoo myös sen get-prosessi
on ominaisuuksia kutsutaan Kahvat
, Nimi
, NPM
, PM
, SI
, VM
ja WS
.
Jos haluat manipuloida get-prosessi
jotta voit työskennellä sen kanssa (toisin kuin se näyttää pitkän luettelon aktiivisista prosesseista näytöllä), sinun on löydettävä toinen cmdlet, joka toimii Järjestelmä, diagnostiikka, prosessi
syötteenä. Löydät haluamasi cmdlet-numeron yksinkertaisesti… odota sitä ... PowerShell:
get-command -Parametertype System.Diagnostics.Process
Se tuottaa luettelon kaikista käsiteltävistä cmdlet-tiedostoista Järjestelmä, diagnostiikka, prosessi
.
Jotkut cmdletit ovat tunnettuja siitä, että ne ottavat melkein kaikenlaisia syötteitä. Chief heidän joukossaan: missä-esine
. Ehkä hämmentävästi, missä-esine
silmukkaa jokaisen putkistoon lähetetyn kohteen läpi yksitellen ja käyttää mitä tahansa valitsemiasi valintaperusteita. Siinä on erityinen merkki $_
. jonka avulla voit siirtyä putken jokaisen kohteen läpi yksi kerrallaan.
Oletetaan, että haluat luoda luettelon kaikista koneellasi käynnissä olevista prosesseista,svchost
”- PowerShell-puheessa haluat sovittaa yhteen Nimi
Omaisuuttasvchost
. Kokeile tätä PowerShell-komentoa:
get-prosessi | where-object {$ _. Nimi -eq "svchost"}
missä-esine
cmdlet tarkastelee kutakin Järjestelmä, diagnostiikka, prosessi
, vertaa .Nimi
kyseisen tuotteen "svchost
”; jos kohde täsmää, se sylkee putken pään ja kirjoitetaan näyttöön. Katso kuvakaappaus.