Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Itan-akọọlẹ, awọn ohun elo laini aṣẹ lori awọn eto Unix ti ni idagbasoke dara julọ ju lori Windows, ṣugbọn pẹlu dide ti ojutu tuntun, ipo naa ti yipada.

Windows PowerShell ngbanilaaye awọn alabojuto eto lati ṣe adaṣe awọn iṣẹ ṣiṣe deede julọ. Pẹlu iranlọwọ rẹ, o le yi awọn eto pada, da duro ati bẹrẹ awọn iṣẹ, ati tun ṣe itọju awọn ohun elo ti a fi sii julọ. Yoo jẹ aṣiṣe lati woye ferese buluu naa bi onitumọ aṣẹ miiran. Ọna yii ko ṣe afihan pataki ti awọn imotuntun ti Microsoft dabaa. Ni otitọ, awọn agbara ti Windows PowerShell jẹ anfani pupọ: ni ọna kukuru ti awọn nkan a yoo gbiyanju lati ro ero bii ojutu Microsoft ṣe yatọ si awọn irinṣẹ ti a faramọ pẹlu.

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Awọn ẹya pataki 

Nitoribẹẹ, Windows PowerShell jẹ nipataki ikarahun aṣẹ pẹlu ede kikọ, ti a kọ ni akọkọ lori NET Framework ati nigbamii lori .NET Core. Ko dabi awọn ikarahun ti o gba ati da data ọrọ pada, Windows PowerShell ṣiṣẹ pẹlu awọn kilasi NET, eyiti o ni awọn ohun-ini ati awọn ọna. PowerShell gba ọ laaye lati ṣiṣe awọn aṣẹ ti o wọpọ ati tun fun ọ ni iraye si COM, WMI, ati awọn ohun ADSI. O nlo awọn ibi ipamọ pupọ, gẹgẹbi eto faili tabi iforukọsilẹ Windows, fun iraye si eyiti a pe ni. awọn olupese. O tọ lati ṣe akiyesi iṣeeṣe ti ifibọ PowerShell awọn paati imuṣiṣẹ sinu awọn ohun elo miiran lati ṣe ọpọlọpọ awọn iṣẹ ṣiṣe, pẹlu. nipasẹ ayaworan ni wiwo. Yiyipada tun jẹ otitọ: ọpọlọpọ awọn ohun elo Windows n pese iraye si awọn atọkun iṣakoso wọn nipasẹ PowerShell. 

Windows PowerShell gba ọ laaye lati:

  • Yipada awọn eto iṣẹ ṣiṣe;
  • Ṣakoso awọn iṣẹ ati awọn ilana;
  • Ṣe atunto awọn ipa olupin ati awọn paati;
  • Fi software sori ẹrọ;
  • Ṣakoso sọfitiwia ti a fi sori ẹrọ nipasẹ awọn atọkun pataki;
  • Fi awọn ohun elo ṣiṣe ṣiṣẹ sinu awọn eto ẹnikẹta;
  • Ṣẹda awọn iwe afọwọkọ lati ṣe adaṣe awọn iṣẹ ṣiṣe iṣakoso;
  • Ṣiṣẹ pẹlu eto faili, iforukọsilẹ Windows, ile itaja ijẹrisi, ati bẹbẹ lọ.

Ikarahun ati ayika idagbasoke

Windows PowerShell wa ni awọn fọọmu meji: ni afikun si emulator console pẹlu ikarahun aṣẹ kan, agbegbe kikọ iwe afọwọkọ kan wa (ISE). Lati wọle si wiwo laini aṣẹ, nìkan yan ọna abuja ti o yẹ lati inu akojọ Windows tabi ṣiṣe powershell.exe lati inu akojọ Ṣiṣe. Ferese buluu yoo han loju iboju, ni akiyesi yatọ ni awọn agbara lati antediluvian cmd.exe. Ipari adaṣe wa ati awọn ẹya miiran ti o faramọ si awọn olumulo ti awọn ikarahun aṣẹ fun awọn eto Unix.

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Lati ṣiṣẹ pẹlu ikarahun o nilo lati ranti diẹ ninu awọn ọna abuja keyboard:

  • Awọn itọka oke ati isalẹ yi lọ nipasẹ itan-akọọlẹ lati tun awọn aṣẹ ti a tẹ tẹlẹ;
  • Ọfà ọtun ni opin ila naa tun ṣe atunṣe aṣẹ aṣẹ ti tẹlẹ nipasẹ kikọ;
  • Ctrl+Home npa ọrọ ti a tẹ kuro lati ipo kọsọ si ibẹrẹ laini;
  • Ctrl+Opin npa ọrọ rẹ kuro lati kọsọ si opin ila.

F7 fihan window kan pẹlu awọn aṣẹ ti a tẹ ati gba ọ laaye lati yan ọkan ninu wọn. Awọn console tun ṣiṣẹ nipa yiyan ọrọ pẹlu awọn Asin, daakọ-pasting, kọsọ aye, piparẹ, backspace – ohun gbogbo ti a ni ife.

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
Windows PowerShell ISE jẹ agbegbe idagbasoke ti o ni kikun pẹlu olootu koodu ti o ṣe atilẹyin awọn taabu ati fifi aami sintasi, oluṣeto aṣẹ, olutọpa ti a ṣe sinu, ati awọn igbadun siseto miiran. Ti o ba kọ hyphen kan lẹhin orukọ aṣẹ ni olootu ayika idagbasoke, iwọ yoo gba gbogbo awọn ayeraye ti o wa ninu atokọ jabọ-silẹ, nfihan iru naa. O le ṣe ifilọlẹ PowerShell ISE boya nipasẹ ọna abuja lati inu akojọ eto tabi lilo faili ti o ṣiṣẹ powershell_ise.exe.

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Cmdlets 

Ni Windows PowerShell, ti a npe ni. cmdlets. Iwọnyi jẹ awọn kilasi .NET pataki ti o pese ọpọlọpọ iṣẹ ṣiṣe. Wọn jẹ orukọ wọn ni ibamu si ilana “Action-Object” (tabi “Ọrọ-ọrọ-ọrọ, ti o ba fẹ), ati asopọ ti o ya sọtọ-ara jọra asọtẹlẹ ati koko-ọrọ ni awọn gbolohun ọrọ ede adayeba. Fun apẹẹrẹ, Gba-Iranlọwọ ni itumọ ọrọ gangan tumọ si “Gba-Iranlọwọ” tabi ni aaye PowerShell kan: “Iranlọwọ-Iranlọwọ”. Ni otitọ, eyi jẹ afọwọṣe ti aṣẹ ọkunrin ni awọn eto Unix, ati awọn iwe ilana ni PowerShell nilo lati beere ni ọna yii, kii ṣe nipa pipe cmdlets pẹlu bọtini –help tabi /?.. Maṣe gbagbe nipa iwe ori ayelujara fun PowerShell: Microsoft ni alaye pupọ.

Ni afikun si Gba, cmdlets tun lo awọn ọrọ-ọrọ miiran lati tọka awọn iṣe (kii ṣe awọn ọrọ-ọrọ nikan, sisọ ni muna). Ninu atokọ ti o wa ni isalẹ a fun awọn apẹẹrẹ diẹ:

Add - afikun;
Clear - mọ;
Enable - tan-an;
Disable - pa;
New - ṣẹda;
Remove - parẹ;
Set - beere;
Start - ṣiṣe;
Stop - Duro;
Export - okeere;
Import - gbe wọle.

Eto wa, olumulo ati cmdlets iyan: bi abajade ti ipaniyan, gbogbo wọn da ohun kan pada tabi titobi awọn nkan. Wọn kii ṣe akiyesi ọran, i.e. Lati oju wiwo onitumọ aṣẹ, ko si iyatọ laarin Gba-Iranlọwọ ati iranlọwọ-gba. Aami ';' ni a lo fun iyapa, ṣugbọn o nilo nikan ti ọpọlọpọ cmdlets ba ṣiṣẹ lori laini kan. 

Awọn cmdlets Windows PowerShell jẹ akojọpọ si awọn modulu (NetTCPIP, Hyper-V, ati bẹbẹ lọ), ati pe cmdlet Gba-aṣẹ kan wa fun wiwa nipasẹ ohun ati iṣe. O le ṣe afihan iranlọwọ lori rẹ bi eleyi:

Get-Help Get-Command

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Nipa aiyipada, aṣẹ naa ṣafihan iranlọwọ iyara, ṣugbọn awọn paramita (awọn ariyanjiyan) ti kọja si cmdlets bi o ṣe nilo. Pẹlu iranlọwọ wọn, o le, fun apẹẹrẹ, gba alaye (-Paramita Apejuwe) tabi iranlọwọ pipe (-Full), ati awọn apẹẹrẹ ifihan (-Parimita Awọn apẹẹrẹ):

Get-Help Get-Command -Examples

Iranlọwọ ninu Windows PowerShell ti ni imudojuiwọn pẹlu cmdlet Imudojuiwọn-Iranlọwọ. Ti laini awọn aṣẹ ba ti gun ju, awọn ariyanjiyan cmdlet le gbe lọ si atẹle nipa kikọ kikọ iṣẹ '`' ati titẹ Tẹ - nirọrun pari kikọ aṣẹ lori laini kan ati tẹsiwaju lori miiran kii yoo ṣiṣẹ.

Ni isalẹ wa diẹ ninu awọn apẹẹrẹ ti cmdlets ti o wọpọ: 

Get-Process - ṣafihan awọn ilana ti n ṣiṣẹ ninu eto;
Get-Service - ṣe afihan awọn iṣẹ ati ipo wọn;
Get-Content - ṣe afihan awọn akoonu ti faili naa.

Fun awọn cmdlets ti a lo nigbagbogbo ati awọn ohun elo ita, Windows PowerShell ni awọn itumọ ọrọ kukuru - awọn inagijẹ. Fun apẹẹrẹ, dir jẹ inagijẹ fun Get-ChildItem. Awọn afọwọṣe ti awọn aṣẹ tun wa lati awọn eto Unix ninu atokọ ti awọn itumọ ọrọ-ọrọ (ls, ps, ati bẹbẹ lọ), ati cmdlet Get-Help ni a pe nipasẹ aṣẹ iranlọwọ. Atokọ kikun ti awọn itumọ ọrọ le ṣee wo ni lilo Get-Alias ​​​​cmdlet:

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Awọn iwe afọwọkọ PowerShell, Awọn iṣẹ, Awọn modulu, ati Ede

Awọn iwe afọwọkọ Windows PowerShell wa ni ipamọ bi awọn faili ọrọ itele pẹlu itẹsiwaju .ps1. O ko le ṣiṣe wọn nipa titẹ-lẹẹmeji: o nilo lati tẹ-ọtun lati ṣii akojọ aṣayan ọrọ ati yan “Ṣiṣe ni PowerShell”. Lati console iwọ yoo ni lati pato ọna kikun si iwe afọwọkọ, tabi lọ si itọsọna ti o yẹ ki o kọ orukọ faili naa. Ṣiṣe awọn iwe afọwọkọ tun ni opin nipasẹ eto imulo eto, ati pe o le lo Get-ExecutionPolicy cmdlet lati ṣayẹwo awọn eto lọwọlọwọ, eyiti yoo da ọkan ninu awọn iye wọnyi pada:

Restricted - nṣiṣẹ awọn iwe afọwọkọ ti ni idinamọ (nipa aiyipada);
AllSigned - awọn iwe afọwọkọ nikan ti o fowo si nipasẹ olupilẹṣẹ ti o gbẹkẹle ni a gba laaye lati ṣiṣẹ;
RemoteSigned - Ti gba laaye lati ṣiṣẹ awọn iwe afọwọkọ ti o fowo si ati ti ara rẹ;
Unrestricted - Gba laaye lati ṣiṣe eyikeyi awọn iwe afọwọkọ.

Alakoso ni awọn aṣayan meji. Ti o ni aabo julọ jẹ pẹlu wíwọlé awọn iwe afọwọkọ, ṣugbọn eyi jẹ oṣó to ṣe pataki - a yoo ṣe pẹlu rẹ ni awọn nkan atẹle. Bayi jẹ ki a mu ọna ti o kere ju resistance ati yi eto imulo pada:

Set-ExecutionPolicy RemoteSigned

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
Lati ṣe eyi, iwọ yoo ni lati ṣiṣẹ PowerShell bi oluṣakoso, botilẹjẹpe o le lo paramita pataki kan lati yi eto imulo pada fun olumulo lọwọlọwọ.

Awọn iwe afọwọkọ ni a kọ sinu ede siseto ti o da lori ohun, awọn aṣẹ eyiti o jẹ orukọ rẹ gẹgẹbi ilana kanna gẹgẹbi cmdlets ti a ti jiroro tẹlẹ: “Action-Object” (“Verb-Noun”). Idi akọkọ rẹ ni lati ṣe adaṣe awọn iṣẹ ṣiṣe iṣakoso, ṣugbọn o jẹ ede itumọ kikun ti o ni gbogbo awọn itumọ to ṣe pataki: fo ipo, awọn losiwajulosehin, awọn oniyipada, awọn akojọpọ, awọn nkan, mimu aṣiṣe, ati bẹbẹ lọ. Olootu ọrọ eyikeyi dara fun kikọ awọn iwe afọwọkọ, ṣugbọn o rọrun julọ lati ṣiṣẹ Windows PowerShell ISE.

O le kọja awọn paramita si iwe afọwọkọ, jẹ ki wọn jẹ dandan, ati tun ṣeto awọn iye aiyipada. Windows PowerShell tun gba ọ laaye lati ṣẹda ati pe awọn iṣẹ ni ọna kanna bi cmdlets, ni lilo iṣẹ ṣiṣe ati awọn àmúró iṣupọ. Iwe afọwọkọ pẹlu awọn iṣẹ ni a pe ni module ati pe o ni itẹsiwaju .psm1. Awọn modulu gbọdọ wa ni ipamọ ni awọn ilana ti a ṣalaye ni awọn oniyipada agbegbe PowerShell. O le wo wọn nipa lilo pipaṣẹ atẹle:

Get-ChildItem Env:PSModulePath | Format-Table -AutoSize

Awọn apejọ

Ninu apẹẹrẹ ti o kẹhin, a lo apẹrẹ ti o faramọ si awọn olumulo ti awọn ikarahun Unix. Ni Windows PowerShell, igi inaro tun gba ọ laaye lati ṣe abajade ti aṣẹ kan si titẹ sii ti omiiran, ṣugbọn iyatọ nla wa ninu imuse ti opo gigun ti epo: a ko sọrọ nipa ṣeto awọn ohun kikọ tabi ọrọ kan. Awọn cmdlets ti a ṣe sinu tabi awọn iṣẹ asọye olumulo da awọn nkan pada tabi awọn akojọpọ ohun, ati pe o tun le gba wọn bi titẹ sii. Bii ikarahun Bourne ati ọpọlọpọ awọn arọpo rẹ, PowerShell nlo opo gigun ti epo lati rọ awọn iṣẹ ṣiṣe ti o nipọn.

Apẹẹrẹ ti o rọrun julọ ti opo gigun ti epo dabi eyi:

Get-Service | Sort-Object -property Status

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
cmdlet Get-Service yoo ṣiṣẹ ni akọkọ, lẹhinna gbogbo awọn iṣẹ ti o gba ni a kọja si cmdlet too-Ohun fun yiyan nipasẹ ohun-ini Ipo. Awọn ariyanjiyan wo ni abajade ti apakan ti tẹlẹ ti opo gigun ti epo ti kọja si da lori iru rẹ - nigbagbogbo o jẹ InputObject. A yoo jiroro lori atejade yii ni awọn alaye diẹ sii ninu nkan ti a ṣe igbẹhin si ede siseto PowerShell. 

Ti o ba fẹ, o le tẹsiwaju pq ki o kọja abajade ti too-Nkan si cmdlet miiran (wọn yoo ṣe lati osi si otun). Nipa ọna, awọn olumulo Windows tun ni iwọle si apẹrẹ ti o faramọ si gbogbo Unixoids fun iṣelọpọ oju-iwe nipasẹ oju-iwe: 

Get-Service | Sort-Object -property Status | more

Ṣiṣe awọn iṣẹ-ṣiṣe ni abẹlẹ 

Nigbagbogbo o jẹ dandan lati ṣiṣẹ aṣẹ kan ni abẹlẹ ki o maṣe duro fun abajade ti ipaniyan rẹ ni igba ikarahun. Windows PowerShell ni ọpọlọpọ awọn cmdlets fun ipo yii:

Start-Job - ṣe ifilọlẹ iṣẹ-ṣiṣe lẹhin;
Stop-Job - idaduro iṣẹ-ṣiṣe lẹhin;
Get-Job - wiwo atokọ ti awọn iṣẹ abẹlẹ;
Receive-Job - wiwo abajade ti iṣẹ-ṣiṣe lẹhin;
Remove-Job - piparẹ iṣẹ-ṣiṣe lẹhin;
Wait-Job - Gbigbe iṣẹ abẹlẹ pada si console.

Lati bẹrẹ iṣẹ-ṣiṣe lẹhin, a lo Start-Job cmdlet ati pato aṣẹ kan tabi ṣeto awọn aṣẹ ni awọn àmúró:

Start-Job {Get-Service}

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
Awọn iṣẹ-ṣiṣe abẹlẹ ni Windows PowerShell le jẹ afọwọyi nipasẹ mimọ awọn orukọ wọn. Ni akọkọ, jẹ ki a kọ bi a ṣe le ṣafihan wọn:

Get-Job

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
Bayi jẹ ki a ṣe afihan abajade Job1:

Receive-Job Job1 | more

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
O rọrun pupọ.

Latọna pipaṣẹ ipaniyan

Windows PowerShell gba ọ laaye lati ṣiṣe awọn aṣẹ ati awọn iwe afọwọkọ kii ṣe ni agbegbe nikan, ṣugbọn tun lori kọnputa latọna jijin ati paapaa lori gbogbo ẹgbẹ awọn ẹrọ. Awọn ọna pupọ lo wa lati ṣe eyi:

  • Ọpọlọpọ awọn cmdlets ni paramita kan -ComputerName, ṣugbọn ni ọna yii kii yoo ṣee ṣe, fun apẹẹrẹ, lati ṣẹda gbigbe;
  • Cmdlet Enter-PSSession gba ọ laaye lati ṣẹda igba ibanisọrọ lori ẹrọ latọna jijin; 
  • Lilo cmdlet kan Invoke-Command O le ṣiṣe awọn aṣẹ tabi awọn iwe afọwọkọ lori ọkan tabi diẹ ẹ sii awọn kọnputa latọna jijin.

PowerShell awọn ẹya

Lati itusilẹ akọkọ rẹ ni ọdun 2006, PowerShell ti yipada pupọ. Ọpa naa wa fun ọpọlọpọ awọn ọna ṣiṣe ti n ṣiṣẹ lori awọn iru ẹrọ ohun elo oriṣiriṣi (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux ati OS X. Itusilẹ tuntun 6.2 ti tu silẹ ni Oṣu Kini Ọjọ 10, Ọdun 2018. Awọn iwe afọwọkọ ti a kọ fun awọn ẹya iṣaaju ni o ṣeeṣe pupọ lati ṣiṣẹ ni awọn nigbamii, ṣugbọn awọn iṣoro le dide pẹlu gbigbe iyipada, nitori awọn ọdun ti idagbasoke, nọmba nla ti cmdlets tuntun ti han ni PowerShell. O le wa ẹya ti ikarahun aṣẹ ti a fi sori kọnputa rẹ nipa lilo ohun-ini PSVersion ti oniyipada $PSVersionTable ti a ṣe sinu:

$PSVersionTable.PSVersion

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
O tun le lo cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ
Ohun kanna le ṣee ṣe nipa lilo cmdlet Get-Host. Ni otitọ, ọpọlọpọ awọn aṣayan wa, ṣugbọn lati lo wọn o nilo lati kọ ẹkọ ede siseto PowerShell, eyiti a yoo ṣe ni tókàn article

Awọn esi 

Microsoft ti ṣakoso lati ṣẹda ikarahun aṣẹ ti o lagbara nitootọ pẹlu agbegbe iṣọpọ irọrun fun idagbasoke awọn iwe afọwọkọ. Ohun ti o ṣe iyatọ si awọn irinṣẹ ti a mọ ni agbaye Unix ni isọpọ jinlẹ pẹlu awọn ọna ṣiṣe ti idile Windows, ati pẹlu sọfitiwia fun wọn ati pẹpẹ .NET Core. PowerShell ni a le pe ni ikarahun-Oorun ohun nitori cmdlets ati awọn iṣẹ asọye olumulo da awọn nkan pada tabi awọn akojọpọ ohun ati pe o le gba wọn bi titẹ sii. A ro pe gbogbo awọn alakoso olupin Windows yẹ ki o ni ohun elo yii: akoko ti kọja nigbati wọn le ṣe laisi laini aṣẹ. Ikarahun console to ti ni ilọsiwaju jẹ pataki paapaa lori wa kekere-iye owo VPS nṣiṣẹ Windows Server Core, ṣugbọn iyẹn jẹ itan ti o yatọ patapata.

Kini Windows PowerShell ati kini o jẹ pẹlu? Apá 1: Key Awọn ẹya ara ẹrọ

Awọn olumulo ti o forukọsilẹ nikan le kopa ninu iwadi naa. wọle, Jowo.

Àwọn kókó ọ̀rọ̀ wo ló yẹ ká kọ́kọ́ sọ̀rọ̀ rẹ̀ nínú àwọn àpilẹ̀kọ tó kàn nínú ọ̀wọ́ àpilẹ̀kọ náà?

  • 53,2%Siseto ni PowerShell123

  • 42,4%Awọn iṣẹ PowerShell98 ati Awọn modulu

  • 22,1%Bawo ni lati wole awọn iwe afọwọkọ tirẹ?51

  • 12,1%Ṣiṣẹ pẹlu awọn ohun elo ipamọ nipasẹ awọn olupese28

  • 57,6%Ṣe iṣakoso kọnputa adaṣe ni lilo PowerShell133

  • 30,7%Ṣiṣakoso sọfitiwia ati ifibọ awọn iṣẹ ṣiṣe PowerShell sinu awọn ọja ẹnikẹta71

231 olumulo dibo. 37 olumulo abstained.

orisun: www.habr.com

Fi ọrọìwòye kun