Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Ho latela nalane, lits'ebeletso tsa line-taelo lits'ebetsong tsa Unix li ntlafalitsoe hamolemo ho feta Windows, empa ka ho fihla ha tharollo e ncha, boemo bo fetohile.

Windows PowerShell e lumella batsamaisi ba sistimi ho iketsetsa mesebetsi e mengata e tloaelehileng. Ka eona, o ka fetola li-setting, oa emisa le ho qala lits'ebeletso, hape oa lokisa lits'ebetso tse ngata tse kentsoeng. E ka ba phoso ho bona fensetere e putsoa e le mofetoleli e mong oa taelo. Mokhoa ona ha o bonts'e moelelo oa lintlafatso tse hlahisitsoeng ke Microsoft. Ha e le hantle, menyetla ea Windows PowerShell e pharaletse haholo: letotong le lekhutšoanyane la lihlooho, re tla leka ho fumana hore na tharollo ea Microsoft e fapane joang le lisebelisoa tseo re li tsebang haholoanyane.

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Litšobotsi tsa bohlokoa 

Ha e le hantle, Windows PowerShell haholo-holo ke khetla ea ho ngola, e hahiloeng qalong holim'a .NET Framework 'me hamorao ho .NET Core. Ho fapana le likhetla tse amohelang le ho khutlisa data ea mongolo, Windows PowerShell e sebetsa le litlelase tsa .NET tse nang le thepa le mekhoa. PowerShell e u lumella ho tsamaisa litaelo tse tloaelehileng hape e u fa monyetla oa ho fumana lintho tsa COM, WMI, le ADSI. E sebelisa li-storages tse fapaneng, joalo ka sistimi ea faele kapa ngoliso ea Windows, bakeng sa phihlello eo ho thoeng ke eona. bafani. Ho bohlokoa ho ela hloko monyetla oa ho kenya likarolo tse ka sebelisoang tsa PowerShell lits'ebetsong tse ling ho kenya tšebetsong lits'ebetso tse fapaneng, ho kenyeletsoa. ka sebopeho sa setšoantšo. Phetolelo e fapaneng hape ke 'nete: lits'ebetso tse ngata tsa Windows li fana ka phihlello ea li-interface tsa bona tsa taolo ka PowerShell. 

Windows PowerShell e u lumella ho:

  • Fetola litlhophiso tsa sistimi e sebetsang;
  • Laola litšebeletso le mekhoa;
  • Lokisa likarolo le likarolo tsa seva;
  • Kenya software;
  • Laola software e kentsoeng ka li-interfaces tse khethehileng;
  • Kenya likarolo tse ka phethisoang mananeong a mang;
  • Etsa mangolo ho iketsetsa mesebetsi ea tsamaiso;
  • Sebetsa ka sistimi ea faele, ngoliso ea Windows, lebenkele la setifikeiti, jj.

Shell le tikoloho ea ntlafatso

Windows PowerShell e teng ka mefuta e 'meli: ntle le emulator ea console e nang le khetla ea taelo, ho na le tikoloho e kopaneng ea mongolo (ISE). Ho fihlella sebopeho sa mola oa taelo, khetha feela tsela e khuts'oane e nepahetseng ho tsoa ho menyu ea Windows kapa tsamaisa powershell.exe ho tsoa ho Run menu. Ho tla hlaha fensetere e putsoa skrineng, e fapaneng ka mokhoa o hlakileng ka bokhoni ba cmd.exe ea mehleng ea khale. Ho na le ho phethela ka boits'oaro le likarolo tse ling tse tsebahalang ho basebelisi ba likhetla tsa litaelo bakeng sa litsamaiso tsa Unix.

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Ho sebetsa le khetla o hloka ho hopola likhutšoane tsa keyboard:

  • Metsu e eang holimo le tlase e tsamaisetsa nalaneng ho pheta litaelo tse neng li ngotsoe pele;
  • Motsu o ka ho le letona qetellong ea mola o ngola hape tlhaku ea taelo e fetileng ka tlhaku;
  • Ctrl+Home e hlakola mongolo o tlatsitsoeng ho tloha sebakeng sa cursor ho ea qalong ea mola;
  • Ctrl+End e tlosa mongolo ho tloha ho cursor ho ea qetellong ea mola.

F7 e bonts'a fensetere e nang le litaelo tse kentsoeng mme e u lumella ho khetha e 'ngoe ea tsona. Khokahano e boetse e sebetsa ka khetho ea mongolo ka toeba, kopi-peista, boemo ba cursor, ho hlakola, backspace - tsohle tseo re li ratang.

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Windows PowerShell ISE ke tikoloho ea nts'etsopele e felletseng e nang le mohlophisi oa khoutu o ts'ehetsang li-tab le tokiso ea mantsoe, moqapi oa litaelo, debugger e hahelletsoeng, le lintho tse ling tse khahlisang mananeo. Haeba u ngola hyphen ka mor'a lebitso la taelo ho mohlophisi oa tikoloho ea nts'etsopele, u tla fumana litekanyo tsohle tse fumanehang lethathamong le theoha, le bontšang mofuta. U ka qala PowerShell ISE ka tsela e khuts'oane ho tsoa ho menyu ea sistimi kapa u sebelisa faele e sebetsang powershell_ise.exe.

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Cmdlets 

Ho Windows PowerShell, se bitsoang. cmdlets. Tsena ke lihlopha tse khethehileng tsa .NET tse fanang ka ts'ebetso e fapaneng. Li rehiloe lebitso la Action-Object (kapa Verb-Noun, ha u rata), 'me lehokelo le arohaneng la lehokelo le tšoana le leetsi le leetsi lipolelong tsa puo ea tlhaho. Mohlala, Get-Help e bolela "Fumana Thuso", kapa moelelong oa PowerShell: "Show-Help". Ha e le hantle, ena ke analogue ea taelo ea monna tsamaisong ea Unix, 'me libuka tsa PowerShell li tlameha ho kōptjoa ka tsela ena, eseng ka ho letsetsa cmdlets ka --help kapa /?. Microsoft e na le eona e qaqileng haholo.

Ho phaella ho Fumana, cmdlets e boetse e sebelisa maetsi a mang ho bolela liketso (e seng feela maetsi, ho bua ka tieo). Lethathamong le ka tlase re fana ka mehlala e meng:

Add - eketsa;
Clear - hlakileng;
Enable - bulela;
Disable - tima;
New - theha;
Remove - hlakola;
Set - botsa;
Start - matha;
Stop - Ema;
Export - ho romela kantle ho naha;
Import - ho kenya.

Ho na le li-cmdlets tsa sistimi, basebelisi le boikhethelo: ka lebaka la ts'ebetso, kaofela ba khutlisa ntho kapa letoto la lintho. Ha ba na taba, i.e. ho ea ka pono ea toloko ea taelo, ha ho na phapang pakeng tsa Get-Help le get-help. Sebopeho ';' se sebelisetsoa karohano, empa hoa hlokahala ho e beha feela haeba cmdlets e 'maloa e etsoa moleng o le mong. 

Windows PowerShell cmdlets li hlophisoa ka dimojule (NetTCPIP, Hyper-V, joalo-joalo), 'me ho na le Get-Command cmdlet ho batla ka ntho le ketso. U ka fana ka thuso ho eona ka tsela ena:

Get-Help Get-Command

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Ka ho sa feleng, taelo e bonts'a thuso e khutšoane, empa liparamente (likhang) li fetisetsoa ho cmdlets ha ho hlokahala. Ka thuso ea bona, ka mohlala, u ka fumana lintlha tse qaqileng (parameter -Detailed) kapa e tletseng (parameter -Full) thuso, hammoho le mehlala e bontšang (parameter -Examples):

Get-Help Get-Command -Examples

Thuso ho Windows PowerShell e ntjhafatswa ka ho Update-Help cmdlet. Haeba mola oa litaelo o bonahala o le molelele haholo, likhang tsa cmdlet li ka fetisetsoa ho e latelang ka ho ngola sebopeho sa tšebeletso "`" le ho tobetsa Enter - ho qeta ho ngola taelo molaong o mong le ho tsoela pele ho o mong ho ke ke ha sebetsa.

Mona ke mehlala e meng ea cmdlets e tloaelehileng: 

Get-Process - bonts'a lits'ebetso tse sebetsang tsamaisong;
Get-Service - bontša litšebeletso le boemo ba tsona;
Get-Content - hlahisa dikahare tsa faele.

Bakeng sa li-cmdlets tse sebelisoang khafetsa le lisebelisoa tsa kantle, Windows PowerShell e na le li-synonymes tse khutšoane - li-aliases. Mohlala, dir ke lebitso la lebitso la Get-ChildItem. Ho boetse ho na le li-analogue tsa litaelo tse tsoang lits'ebetsong tsa Unix lenaneng la li-synonymes (ls, ps, joalo-joalo), 'me Get-Help cmdlet e bitsoa ka taelo ea thuso. Lethathamo le felletseng la li-synonyms le ka bonoa ho sebelisoa Get-Alias ​​​​cmdlet:

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Scripts, Functions, Modules, le Puo ea PowerShell

Lingoliloeng tsa Windows PowerShell li bolokoa joalo ka lifaele tsa mongolo tse nang le .ps1 extension. U ke ke ua li qala ka ho penya habeli: u lokela ho tobetsa ka ho le letona ho letsetsa menu ea moelelo ebe u khetha ntho ea "Run in PowerShell". Ho tsoa ho console, u tla tlameha ho hlakisa tsela e felletseng ea script, kapa u ee bukeng e nepahetseng ebe u ngola lebitso la faele. Lingoliloeng tse sebetsang li boetse li lekanyelitsoe ke leano la sistimi, 'me ho lekola litlhophiso tsa hajoale, u ka sebelisa Get-ExecutionPolicy cmdlet, e tla khutlisa e' ngoe ea litekanyetso tse latelang:

Restricted - ho qala mangolo ho koetsoe (ka kamehla);
AllSigned - ke ho qalisoa feela ha mangolo a saennoeng ke moqapi ea tšeptjoang ho lumelloa;
RemoteSigned - o lumelletsoe ho tsamaisa mengolo e saennoeng le ea hae;
Unrestricted - lumelloa ho tsamaisa mongolo ofe kapa ofe.

Mookameli o na le likhetho tse peli. E sireletsehileng ka ho fetisisa e kenyelletsa ho saena mangolo, empa hona ke boloi bo tebileng - re tla sebetsana le bona lihloohong tse tlang. Joale ha re nkeng tsela ea ho hanana le ho fetola leano:

Set-ExecutionPolicy RemoteSigned

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Ho etsa sena, o tla tlameha ho tsamaisa PowerShell joalo ka motsamaisi, leha o ka sebelisa parameter e khethehileng ho fetola pholisi bakeng sa mosebelisi oa hajoale.

Lingoliloeng li ngotsoe ka puo ea lenaneo le shebaneng le ntho, tseo litaelo tsa tsona li rehelletsoeng ho latela molao-motheo o tšoanang le oa cmdlets eo ho buisanoeng ka eona pele: "Action-Object" ("Verb-Noun"). Sepheo sa eona se seholo ke ho iketsetsa mesebetsi ea tsamaiso, empa ke puo e hlalosoang ka botlalo e nang le lisebelisoa tsohle tse hlokahalang: ho qhomela ka maemo, li-loops, mefuta-futa, lihlopha, lintho, ho sebetsana le liphoso, joalo-joalo. Mohlophisi ofe kapa ofe oa mongolo o nepahetse bakeng sa ho ngola, empa ho molemo ho sebelisa Windows PowerShell ISE.

U ka fetisa liparamente ho script, ua li etsa tlamo, hape u behe litekanyetso tsa kamehla. Windows PowerShell e boetse e u lumella ho theha le ho letsetsa lits'ebetso ka tsela e ts'oanang le cmdlets, u sebelisa Sebopeho sa Mosebetsi le li-braces tsa curly. Script e nang le mesebetsi e bitsoa module mme e na le .psm1 extension. Li-module li tlameha ho bolokoa ka har'a li-directory tse hlalositsoeng ho mefuta-futa ea tikoloho ea PowerShell. U ka li sheba u sebelisa taelo e latelang:

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

Bahlahisi

Mohlala oa ho qetela, re sebelisitse moralo o tloaelehileng ho basebelisi ba likhetla tsa Unix. Ho Windows PowerShell, bar e otlolohileng e boetse e u lumella ho fetisa tlhahiso ea taelo e le 'ngoe ho e' ngoe, empa ho na le phapang e kholo ts'ebetsong ea pipeline: ha re sa bua ka sehlopha sa litlhaku kapa mongolo o itseng. Li-cmdlets tse hahelletsoeng kapa lits'ebetso tse hlalositsoeng ke mosebelisi li khutlisa lintho kapa lihlopha tsa lintho, 'me li ka li amohela joalo ka kenyelletso. Joalo ka khetla ea Bourne le bahlahlami ba eona ba bangata, PowerShell e sebelisa lipeipi ho nolofatsa mesebetsi e rarahaneng.

Mohlala o bonolo oa pipeline o shebahala tjena:

Get-Service | Sort-Object -property Status

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Taba ea pele, cmdlet ea Get-Service e phethiloe, ebe lits'ebeletso tsohle tse amoheloang ke eona li fetisetsoa ho Hlophisa-Object cmdlet bakeng sa ho hlophisoa ke thepa ea Boemo. Ke khang efe eo sephetho sa karolo e fetileng ea pipeline e fetisetsoang ho eona e itšetlehile ka mofuta oa eona - hangata ke InputObject. Taba ena e tla tšohloa ka botlalo sengolong se inehetseng ho puo ea lenaneo la PowerShell. 

Haeba o lakatsa, o ka tsoela pele ka ketane mme o fetisetsa sephetho sa Ts'ebetso ea Tlhophiso ho cmdlet e 'ngoe (e tla etsoa ho tloha ho le letšehali ho ea ho le letona). Ka tsela, basebelisi ba Windows le bona ba na le phihlello ea moaho oa bohetene o tsebahalang ho Unixoids kaofela: 

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

Mesebetsi ea ho matha ka morao 

Hangata ho hlokahala hore u tsamaise taelo e itseng ka morao e le hore u se ke ua emela sephetho sa ts'ebetso ea eona sebokeng sa khetla. Windows PowerShell e na le li-cmdlets tse 'maloa bakeng sa boemo bona:

Start-Job - qala mosebetsi oa morao-rao;
Stop-Job - emisa mosebetsi oa morao-rao;
Get-Job - ho sheba lenane la mesebetsi e ka morao;
Receive-Job - ho sheba sephetho sa ts'ebetso ea morao-rao ea mosebetsi;
Remove-Job - ho hlakola mosebetsi oa morao-rao;
Wait-Job — ho fetisetsa mosebetsi wa bokamorao ho console.

Ho qala mosebetsi o ka morao, re sebelisa Start-Job cmdlet mme re hlakise taelo kapa sete ea litaelo ka har'a li-curly braces:

Start-Job {Get-Service}

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Mesebetsi ea morao-rao ho Windows PowerShell e ka sebelisoa ka ho tseba mabitso a bona. Taba ea pele, a re ithute ho li bontša:

Get-Job

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Joale ha re bontše sephetho sa mosebetsi Job1:

Receive-Job Job1 | more

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Lintho tsohle li bonolo haholo.

Ts'ebetso ea taelo e hole

Windows PowerShell eu lumella hore u phethe litaelo le litokomane eseng feela k'homphieutheng ea sebakeng seo, empa hape le khomphuteng e hōle, esita le ho sehlopha sohle sa mechine. Ho na le mekhoa e mengata ea ho etsa sena:

  • Li-cmdlets tse ngata li na le parameter -ComputerName, empa ka tsela ena ho ke ke ha khoneha, ka mohlala, ho etsa conveyor;
  • Cmdlet Enter-PSSession e u lumella ho etsa seboka se kopanetsoeng mochine o ka thōko; 
  • Ho sebelisa cmdlet Invoke-Command o ka tsamaisa litaelo kapa mongolo khomphuthang e le 'ngoe kapa ho feta tse hole.

Liphetolelo tsa PowerShell

PowerShell e fetohile haholo ho tloha ha e qala ho lokolloa ka 2006. Sesebelisoa se fumaneha bakeng sa litsamaiso tse ngata tse sebetsang ho li-platform tse fapaneng tsa hardware (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 le OS X. Tokollo ea morao-rao ea 6.2 e lokollotsoe ka Pherekhong 10, 2018. Lingoliloeng tse ngotsoeng bakeng sa liphetolelo tsa pejana li kanna tsa sebetsa liphetolelong tsa morao-rao, empa ho khutlisa morao ho ka ba bothata hobane PowerShell e hlahisitse palo e kholo ea li-cmdlets tse ncha lilemong tsa nts'etsopele. U ka fumana mofuta oa khetla ea taelo e kentsoeng k'homphieutheng u sebelisa thepa ea PSVersion ea $PSVersionTable e hahiloeng ka har'a phapang:

$PSVersionTable.PSVersion

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
U ka sebelisa cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa
Hoa tšoana le ka Get-Host cmdlet. Ebile, ho na le likhetho tse ngata, empa ho li sebelisa u hloka ho ithuta puo ea lenaneo la PowerShell, eo re tla e etsa sehlooho se latelang

Liphello 

Microsoft e khonne ho theha khetla ea litaelo e matla e le kannete e nang le tikoloho e bonolo e kopaneng bakeng sa ho nts'etsapele mangolo. Se khethollang ho lisebelisoa tseo re li tloaetseng lefats'eng la Unix ke ho kopanya ho tebileng le mekhoa ea ho sebetsa ea lelapa la Windows, hammoho le software bakeng sa bona le sethaleng sa .NET Core. PowerShell e ka bitsoa khetla e shebaneng le ntho hobane li-cmdlets le mesebetsi e hlalosoang ke mosebelisi li khutlisa lintho kapa lintho tse ngata 'me li ka li amohela e le kenyelletso. Re nahana hore batsamaisi bohle ba seva sa Windows ba lokela ho ba le sesebelisoa sena: nako e se e fetile ha ba ne ba ka etsa ntle le mola oa taelo. Khetla e tsoetseng pele ea console e hlokahala haholo ho VPS ea rona e theko e tlase e sebelisang Windows Server Core, empa eo ke pale e fapaneng ka ho feletseng.

Windows PowerShell ke eng mme e jeoa ka eng? Karolo ea 1: Likarolo tsa Bohlokoa

Ke basebelisi ba ngolisitsoeng feela ba ka kenyang letsoho phuputsong. kenaka kopo.

Ke lihlooho life tse lokelang ho tšohloa pele lihloohong tse latelang letotong lee?

  • 53,2%Lenaneo la PowerShell123

  • 42,4%Mesebetsi ea PowerShell98 le li-Modules

  • 22,1%Mokhoa oa ho saena mangolo a hau?51

  • 12,1%Ho sebetsa le bobolokelo ka bafani (bafani)28

  • 57,6%Iketsetse tsamaiso ea komporo u sebelisa PowerShell133

  • 30,7%Taolo ea software le ho kenya tšebetsong PowerShell lihlahisoa tsa mokha oa boraro71

Basebelisi ba 231 ba ile ba khetha. Basebelisi ba 37 ba ile ba hana.

Source: www.habr.com

Eketsa ka tlhaloso