close

PowerShell

Siirry navigointiin Siirry hakuun
PowerShell-
ohjelmisto
Logo
Windows Powershell , joka toimii Windows 7 :ssä
GenreTerminaali
KehittäjäMicrosoft yhtiö
Ensimmäisen version päivämäärä14. marraskuuta 2006
Uusin versio7.2.5 (21. kesäkuuta 2022)
KäyttöjärjestelmäMicrosoft Windows
macOS
Linux
KieliC #
LisenssiMIT - lisenssi versiosta 6.0.0
( ilmainen lisenssi )
VerkkosivustoPowerShell

PowerShell , joka tunnettiin alun perin nimellä Microsoft Shell , MSH tai koodinimellä Monad ja sitten Windows PowerShell , on kuori , jolle on tunnusomaista komentoriviliittymä (CLI) ja Microsoftin kehittämä komentosarjakieli , joka perustuu objektien ja Microsoftin ohjelmointiin. .NET- kehys .

Microsoft aikoi alun perin ottaa PowerShellin käyttöön Windows Vistan rinnalla , mutta määritti myöhemmin PowerShellille eri käyttöönottopäivämäärät. Vaatii .NET Frameworkin version 2.0, ja sitä tuetaan Windows XP- , Windows Server 2003- , Windows Vista- , Windows Server 2008- , Windows 7- , Windows 8- ja Windows 10 -käyttöjärjestelmissä , jotka ovat saatavilla x86- , x64- ja Itanium - versioissa . Se oli Windows 7:n versiossa 2, josta sitä ei voi poistaa. Powershell-asennus Windows 2000 -käyttöjärjestelmään on mahdollista (kehyksen asennuksen jälkeen), mutta tuloksena oleva järjestelmä on täysin epästandardi ja sitä ei tueta.

Se muodostaa myös perustan Microsoft Exchange Server 2007 :n hallintaliittymälle, jossa kaikki toiminnot suoritetaan komentorivin kautta ja graafinen käyttöliittymä sijaitsee kerroksella näiden komentojen yläpuolella.

Elokuun 2016 versiosta 6.0 lähtien PowerShellistä on tullut ilmainen ohjelmisto , ja Microsoft on tehnyt sen saataville myös Linuxille ja macOS :lle . [1]

Historia

Jokainen MS-DOS- ja Microsoft Windows -jakelu on aina sisältänyt komentoriviliittymän : command.com MS-DOS- pohjaisissa versioissa ; cmd.exe Windows NT :hen perustuvissa : ne eivät kuitenkaan pystyneet toistamaan tai automatisoimaan kaikkia graafisen käyttöliittymän kautta saatavilla olevia hallintotoimintoja , vaikka tilanne on parantunut Windows Server 2003 :n myötä . Tämä johtui komentorivivastaavien työkalujen luontaisten rajoitusten yhdistelmästä tai siitä, että Microsoft ei ole tarjonnut tämän tyyppisiä luotettavia apuohjelmia pitkään aikaan. [2]

Toisin kuin Unix -ympäristöt , eivät myöskään command.com tai cmd.exe ole POSIX.2 -standardin mukaisia . Services for UNIX sisältää tämän standardin mukaisen pdksh :n, mutta sekä tämä että muut saatavilla olevat UNIX -kuoret eivät pysty suorittamaan monia rutiinitehtäviä, jotka pysyvät sidottuna Windowsin käyttöliittymään. Vaikka UNIXin palvelupaketti integroitiin Windows Server 2003 R2:een ja sisältyi sitten myös joihinkin Windows Vistan versioihin, se oli aiemmin saatavilla maksullisena lisäosana (esimerkiksi Windows 2000 -resurssisarjana), mikä esti sen tosiasiassa laajamittaista adoptiota.

Käyttäjät eivät halunneet käyttää komentoriviominaisuuksia kattavan dokumentaation puutteen vuoksi. Toisaalta jopa monet graafiset sovellukset Unixissa olivat periaatteessa komentorivityökalujen kääreitä , mutta mukana oli kuitenkin dokumentaatio.

Microsoft yritti sitten korjata joitakin näistä rajoituksista ottamalla käyttöön Windows Script Hostin vuonna 1998 , samanaikaisesti Windows 98 :n jakelun kanssa . Se oli uuden tason tulkki lauseille, jotka voitiin ilmaista useilla skriptikielillä sovellusten ohjaamiseksi. Script Hostilla oli kuitenkin myös merkittäviä rajoituksia: sitä ei integroitu shelliin, sen dokumentaatio ei ollut kovin tavoitettavissa ja sitä pidettiin pian vaarana järjestelmän turvallisuudelle, kun useat virukset korostivat sen mallin oleellista heikkoutta. turvallisuutta.

Windows Server 2003 ja jotkin Windows XP:n versiot sisältävät Cscript.exe-nimisen komentorivikomentosarjapalvelimen (tämä on pohjimmiltaan yllä olevan Windows Script Hostin itsenäinen osa), jota ei ole integroitu olemassa olevaan komentotulkkiin (cmd. exe). Nämä käyttöjärjestelmät tarjoavat myös muita ad hoc -komentoriviä (esim . netsh ), joita ei myöskään ole täysin integroitu.

Perusrajoituksena tehtävien automatisoinnissa Windowsissa oli se, että sen alkuperäiset hallintaliittymät olivat avoimia Microsoftin omistamille graafisille työkaluille ja kaikille Microsoftin mahdollisesti tarjoamille komentosarjaliittymille. Koska graafinen käyttöliittymä oli ensisijainen käyttöliittymä, oli vaikeaa tarjota "kääreitä", jotka pystyivät skriptaamaan - tilanne, joka on täsmälleen päinvastainen kuin useimmissa UNIX -toteutuksissa , joissa komentorivi, joka pystyi suorittamaan komentosarjoja, tarjosi perustoiminnot.

Microsoft suunnitteli PowerShellin tekemään näistä ongelmista vähemmän ylitsepääsemättömiä ja vähentämään uusien graafisten ja komentorivisovellusten kehittämisprosessia integroimalla turvallisemman komentosarjakielen uuteen laajennettavaan komentokulkoon, joka pystyi suorittamaan ja automatisoimaan samat perushallinnolliset tehtävät. jotka suoritetaan Windowsin graafisen käyttöliittymän kautta. Esimerkiksi Exchange Server 2007 -hallintakäyttöliittymä perustuu PowerShelliin. Useimmissa jokapäiväisissä tehtävissä PowerShell voi korvata cmd.exe- ja Windows Script Host (WSH) -tiedoston. Kuitenkin taaksepäin yhteensopivuuden syistä Windows tukee edelleen sekä cmd.exe- että WSH-tiedostoa. Microsoft on sitoutunut rakentamaan tulevaisuuden graafiset työkalut PowerShellin päälle ja varmistamaan, että järjestelmänvalvojan perustoiminnot ovat jatkossakin käytettävissä komentorivin kautta Unix-käyttöjärjestelmän tavoin.

Microsoft julkaisi "Monadin" toisen julkisen betaversion 11. syyskuuta 2005 ja kolmas 10. tammikuuta 2006 .

Microsoft ilmoitti 25. huhtikuuta 2006 , että WSH muuttaa nimensä Windows PowerShelliksi ja siitä tulee merkittävä osa sen järjestelmänhallintatyökalujen tarjontaa [3] .

Ensimmäinen PowerShell-julkaisuehdokas julkaistiin samaan aikaan ilmoituksen kanssa. Toinen julkaisuehdokas julkaistiin 26. syyskuuta 2006 . Versio 1.0 julkaistiin 14. marraskuuta 2006 . Versio 2.0 on vakiona Windows 7 :ssä . Versio 3.0, joka on saatavilla Windows 7 SP1:lle ja Windows 2008 Server R2 SP1:lle, on vakiona Windows 8:ssa ja Windows Server 2012:ssa osana laajempaa Windows Management Framework V3:a, johon myös WinRM on osa.

Versio 6 julkaistiin 2. elokuuta 2016, ja se tekee avoimen lähdekoodin ohjelmistoja MIT-lisenssillä [4] ja mahdollistaa sen myös Linuxille ja Mac OS:lle. Nimi muutetaan poistamalla Windows nimestä ja jättämällä vain PowerShell.

Kuvaus

Periaatteet

PowerShellin koodinimi Monad tulee Gottfried Leibnizin monadologiasta , filosofiasta, jossa maailmankaikkeus koostuu peruselementeistä, monadeista , jotka on järjestetty " ennalta määrättyyn harmoniaan ". Samoin PowerShell on yhdistelmä monimutkaisia ​​tehtäviä ja sarjan komponentteja, cmdlettejä ( komento lets ), jotka ovat .NET-luokkia, jotka on suunniteltu hyödyntämään ympäristön ominaisuuksia. Perimmäinen ero Unix-lähestymistavan ja PowerShellin välillä on siinä tosiasiassa, että sen sijaan, että luotaisiin "putkilinjaa" (kirjaimellisesti putkea ), joka perustuu tekstisisääntuloihin ja -lähtöihin, PowerShell siirtää tietoja yhdestä cmdletistä toiseen objekteina (data, joka on varustettu kaivolla). -määritelty rakenne).

Jos yrität käyttää sitä komentorivin kautta, cmdletin tulos muunnetaan automaattisesti tekstiksi. sen sijaan, jos yrität käyttää sitä toisessa cmdletissä, se muunnetaan sopivimmaksi objektiksi kyseisen toisen cmdlet-syötteen kannalta. Tällä tavalla erilaisia ​​Unix-putkissa yleisesti käytettyjä apuohjelmia, kuten grep ja awk , ei enää tarvita, ja ne mahdollistavat yksittäisten elementtien interaktiivisen yhdistelmän tai komentosarjaympäristön, mikä muuten olisi vaatinut tehokkaamman ohjelmointikielen. monimutkainen. Esimerkiksi luettelo käynnissä olevista prosesseista ei koostu niitä kuvaavasta tekstistä, vaan sen muodostavista objekteista, joten on mahdollista kutsua menetelmiä näissä objekteissa viittaamatta nimenomaisesti mihinkään rakenteeseen tai kirjastoon .

Ominaisuudet

  • C # :n kaltainen komentosarjakieli , jossa on monia erikoiskäyttäjille tarkoitettuja ominaisuuksia, kuten suora tuki hash-taulukoille , säännöllisiin lausekkeisiin perustuvat kytkinrakenteet, taulukoiden hajottaminen , mahdollisuus tallentaa nimettömiä menetelmiä datana myöhempää suoritusta varten. Siellä on tietysti kaikki ominaisuudet, joita komentosarjakielellä voi odottaa olevan, kuten iteraatio (for / foreach / while), ehdolliset konstruktit (if / switch), muuttuvat näkökentät (globaali / script / paikallinen / yksityinen ) ja kyky määritellä toimintoja.
  • Kaikki cmdletit perivät joitain ominaisuuksia, joiden avulla käyttäjä voi valita esimerkiksi vuorovaikutuksen tason ja virheiden käsittelyn; Harkitse esimerkiksi "suspend", jonka avulla voit syöttää uuden komentotulkin, tutkia ongelman ja jatkaa sitten alkuperäisellä komennolla. Ohjelmoijassa on yksinkertainen sisäänrakennettu mekanismi, joka määrittää tällaisissa tilanteissa näytettävät kehotteet. Cmdletit, jotka palauttavat jotain ulkoisesti, tukevat -WHATIF- ja -CONFIRM-vaihtoehtoja. -WHATIF simuloi toimenpiteen suorittamista ja välittää mahdollisen tuloksen käyttäjälle. -CONFIRM ilmoittaa käyttäjälle mitä tulee tapahtumaan ja antaa hänen päättää mitä tehdä.
  • Laajentuva toimittajamalli tarjoaa mahdollisuuden käyttää ja käsitellä tiedostojärjestelmän lisäksi myös muita hierarkkisia tietorakenteita. Esimerkiksi PowerShell integroi Windows-rekisterin toimittajan , joka sallii pääsyn "HKLM"- (HKEY_LOCAL_MACHINE)- ja "HKCU"- (HKEY_CURRENT_USER)-puihin. Tällä tavalla lokia voidaan tarkastella komentotulkkikehotteesta komennoilla, kuten "HKLM dir: \ SOFTWARE \ Microsoft". PowerShell tarjoaa palveluntarjoajia suojaussertifikaattikirjastolle, ympäristölle ja kuorimuuttujille, funktioille ja aliaksille; käyttäjät voivat luoda omia palveluntarjoajia ja integroida ne PowerShelliin.
  • Komentorivivaihtoehdot ovat tyypillisesti kokonaisia ​​sanoja, mutta niihin voidaan viitata nopeammin määrittämällä vain vähimmäismäärä kirjaimia, jotka tarvitaan erottamaan ne muista (esimerkiksi vaihtoehto -mostra-informazioni-dettagliatevoidaan kutsua määrittämällä vain, -mjos mikään muu vaihtoehto ei ala kirjaimella "m"). .
  • Käyttäjän laajennettavissa oleva komentojen automaattinen suorittaminen. Ajattele, että Windowsin uusimpien versioiden cmd.exe voi täydentää vain tiedostojen ja hakemistojen nimiä, toisin kuin komentotulkeissa, kuten bash ja zsh .
  • Kyky määrittää komennon tulos muuttujalle, josta tulee objekti tai objektijoukko, joka voidaan näyttää haluamallasi tavalla.

Windows PowerShell ISE

Windows PowerShell Integrated Scripting Environment (ISE) on sovellus, joka esiteltiin PowerShell 2.0:sta alkaen [5] . Tällä PowerShell-versiolla voit suorittaa komentoja, testata ja korjata skriptejä yhdessä usean näkymän käyttöliittymässä (ja Windows-grafiikassa). Ruudut ovat erityisiä komentoja, komentosarjoja ja tuloksia varten.

Muistiinpanot

  1. ^ PowerShell on avoimen lähdekoodin ja saatavilla Linux | Azure-blogi ja päivitykset | Microsoft Azure osoitteessa azure.microsoft.com . Haettu 22.8.2020 .
  2. ^ DOS on edelleen elossa, piilotettu Windows 10 - Wired -käyttöjärjestelmään , Wired - versiossa 17. tammikuuta 2017. Haettu 4. helmikuuta 2017 .
  3. ^ Jeffrey Snover, Windows PowerShell ( Monad ) on saapunut , Windows PowerShell -tiimin blogi , MSDN, 25. huhtikuuta 2006. Haettu 26. huhtikuuta 2006 .
  4. ^ LICENSE.txt ( TXT ) , Powershellissä , Githubissa . Haettu 22.8.2020 .
  5. ^ Stefano Serafino, Windows PowerShell: mikä se on ja mihin se on tarkoitettu (täydellinen opas) | 'L' | , Memex Computerissa , 18. toukokuuta 2017.

Bibliografia

Muut projektit

Ulkoiset linkit