He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

ʻO ka mōʻaukala, ʻoi aku ka maikaʻi o nā pono laina kauoha ma nā ʻōnaehana Unix ma mua o Windows, akā me ka hiki ʻana mai o kahi hopena hou, ua loli ke kūlana.

ʻAe ʻo Windows PowerShell i nā luna ʻōnaehana e hoʻokaʻawale i ka hapa nui o nā hana maʻamau. Me ia, hiki iā ʻoe ke hoʻololi i nā hoʻonohonoho, hoʻōki a hoʻomaka i nā lawelawe, a hana pū i ka mālama ʻana i ka hapa nui o nā noi i kau ʻia. He hewa paha ka ʻike ʻana i ka puka aniani polū ma ke ʻano he unuhi ʻōlelo kauoha ʻē aʻe. ʻAʻole hōʻike kēia ala i ke ʻano o nā mea hou i manaʻo ʻia e Microsoft. ʻO ka ʻoiaʻiʻo, ʻoi aku ka nui o nā hiki o Windows PowerShell: ma kahi pōkole o nā ʻatikala, e hoʻāʻo mākou e noʻonoʻo pehea ka ʻokoʻa o ka hoʻonā Microsoft mai nā mea hana a mākou i kamaʻāina ai.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

Nā Mea Aʻo 

ʻOiaʻiʻo, ʻo Windows PowerShell ka mea mua i kūkulu ʻia ma ka .NET Framework a ma hope ma .NET Core. ʻAʻole like me nā pūpū e ʻae a hoʻihoʻi i ka ʻikepili kikokikona, hana ʻo Windows PowerShell me nā papa .NET i loaʻa nā waiwai a me nā ʻano hana. Hiki iā PowerShell ke holo i nā kauoha maʻamau a hāʻawi pū iā ʻoe i ke komo i nā mea COM, WMI, a me ADSI. Hoʻohana ia i nā waihona like ʻole, e like me ka ʻōnaehana faila a i ʻole ke kākau inoa Windows, no ke komo ʻana i ka mea i kapa ʻia. nā mea hoʻolako. Pono e ʻike i ka hiki ke hoʻokomo i nā ʻāpana hoʻokō PowerShell i nā noi ʻē aʻe e hoʻokō i nā hana like ʻole, incl. ma o kahi kiʻi kiʻi. He ʻoiaʻiʻo nō hoʻi ka ʻaoʻao: nui nā noi Windows e hāʻawi i ke komo i kā lākou mau hoʻokele hoʻokele ma o PowerShell. 

ʻAe ʻo Windows PowerShell iā ʻoe e:

  • Hoʻololi i nā hoʻonohonoho ʻōnaehana hana;
  • Mālama i nā lawelawe a me nā kaʻina hana;
  • E hoʻonohonoho i nā kuleana a me nā mea kikowaena;
  • E hoʻouka i nā polokalamu;
  • Hoʻoponopono i nā polokalamu i hoʻokomo ʻia ma o nā kikowaena kūikawā;
  • Hoʻokomo i nā ʻāpana hoʻokō i nā polokalamu ʻaoʻao ʻekolu;
  • E hana i nā palapala e hoʻokaʻawale i nā hana hoʻokele;
  • E hana pū me ka ʻōnaehana faila, Windows registry, hale kūʻai palapala, etc.

ʻO ka Shell a me ke kaiapuni hoʻomohala

Aia ʻo Windows PowerShell ma nā ʻano ʻelua: ma kahi o ka console emulator me kahi shell command, aia kahi Integrated Scripting Environment (ISE). No ke komo ʻana i ka laina kauoha, e koho wale i ka pōkole kūpono mai ka papa kuhikuhi Windows a i ʻole holo powershell.exe mai ka papa kuhikuhi Run. E ʻike ʻia kahi puka aniani polū ma ka ʻaoʻao, ʻokoʻa ʻē aʻe i nā mana mai ka cmd.exe antediluvian. Aia ka autocompletion a me nā hiʻohiʻona ʻē aʻe i kamaʻāina i nā mea hoʻohana o nā pūpū kauoha no nā ʻōnaehana Unix.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

No ka hana ʻana me ka pūpū, pono ʻoe e hoʻomanaʻo i kekahi mau ʻaoʻao pōkole:

  • ʻO nā pua i luna a lalo i ka mōʻaukala e hana hou i nā kauoha i paʻi mua ʻia;
  • Hoʻopili hou ka pua ʻākau ma ka hope o kahi laina i ke ʻano kauoha mua ma ke ʻano;
  • Hoʻopau ʻo Ctrl+Home i ka kikokikona i paʻi ʻia mai ke kūlana cursor a i ka hoʻomaka o ka laina;
  • Hoʻopau ʻo Ctrl+End i nā kikokikona mai ka piko a i ka hope o ka laina.

Hōʻike ka F7 i kahi puka makani me nā kauoha i paʻi ʻia a hiki iā ʻoe ke koho i kekahi o lākou. Hana pū ka console me ke koho kikokikona me ka ʻiole, kope-paste, hoʻonohonoho cursor, holoi, backspace - nā mea āpau a mākou e makemake ai.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
He kahua hoʻomohala piha ʻo Windows PowerShell ISE me kahi hoʻoponopono code tabbed a me ka syntax-highlighted code, command builder, built-in debugger, a me nā leʻaleʻa polokalamu ʻē aʻe. Inā kākau ʻoe i kahi hyphen ma hope o ka inoa kauoha i ka mea hoʻoponopono hoʻomohala hoʻomohala, e loaʻa iā ʻoe nā koho āpau i ka papa inoa hāʻule iho me kahi hōʻailona o ke ʻano. Hiki iā ʻoe ke hoʻomaka i ka PowerShell ISE ma o kahi pōkole mai ka papa kuhikuhi ʻōnaehana, a i ʻole ka hoʻohana ʻana i ka file executable powershell_ise.exe.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

Cmdlets 

Ma Windows PowerShell, ka mea i kapa ʻia. nā cmdlets. He mau papa .NET kūikawā kēia e hāʻawi ana i nā ʻano hana like ʻole. Kapa ʻia lākou ʻo Action-Object (a i ʻole Verb-Noun, inā makemake ʻoe), a ua like ka loulou i hoʻokaʻawale ʻia i ka hyphen me ka predicate a me ke kumuhana i nā ʻōlelo ʻōlelo kūlohelohe. No ka laʻana, Get-Help ʻo ia hoʻi ka manaʻo maoli ʻo "Get-Help", a i ʻole ma kahi pōʻaiapili PowerShell: "Show-Help". ʻO ka ʻoiaʻiʻo, he ʻano like kēia o ke kauoha kanaka ma nā ʻōnaehana Unix, a pono e noi ʻia nā manual ma PowerShell ma kēia ʻano, ʻaʻole ma ke kāhea ʻana i nā cmdlet me ke kī --help a i ʻole /? Mai poina e pili ana i ka palapala PowerShell pūnaewele: Ua kikoʻī loa ʻo Microsoft.

Ma kahi o Get, hoʻohana nā cmdlets i nā huaʻōlelo ʻē aʻe e hōʻike i nā hana (a ʻaʻole wale nā ​​huaʻōlelo, ʻōlelo koʻikoʻi). Ma ka papa inoa ma lalo nei mākou e hāʻawi i kekahi mau laʻana:

Add - hoʻohui;
Clear - maopopo;
Enable - hōʻā;
Disable - hoʻopau;
New - hana;
Remove - holoi;
Set - nīnau;
Start - holo;
Stop - kū;
Export - hoʻokuʻu aku;
Import - lawe mai.

Aia nā ʻōnaehana, mea hoʻohana a me nā cmdlet koho: ma muli o ka hoʻokō ʻana, hoʻihoʻi lākou a pau i kahi mea a i ʻole nā ​​​​mea hana. ʻAʻole lākou e pili i ka hihia, i.e. mai ka manaʻo o ka unuhi ʻōlelo kauoha, ʻaʻohe ʻokoʻa ma waena o Get-Help a me get-help. Hoʻohana ʻia ke ʻano ';' no ka hoʻokaʻawale ʻana, akā pono ke kau ʻia inā hoʻokō ʻia kekahi mau cmdlet ma ka laina like. 

Hoʻohui ʻia nā cmdlet Windows PowerShell i nā modules (NetTCPIP, Hyper-V, etc.), a aia kahi Get-Command cmdlet e ʻimi e ka mea a me ka hana. Hiki iā ʻoe ke hōʻike i ke kōkua no ia penei:

Get-Help Get-Command

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

Ma ka maʻamau, hōʻike ke kauoha i ke kōkua pōkole, akā hāʻawi ʻia nā ʻāpana (mau hoʻopaʻapaʻa) i nā cmdlet e like me ka mea e pono ai. Me kā lākou kōkua, hiki iā ʻoe, no ka laʻana, ke kiʻi i nā kikoʻī (parameter -Detailed) a i ʻole kōkua piha (parameter -Full), a me nā hiʻohiʻona hōʻike (parameter -Examples):

Get-Help Get-Command -Examples

Hoʻonui ʻia ke kōkua ma Windows PowerShell e ka cmdlet Update-Help. Inā lōʻihi loa ka laina kauoha, hiki ke hoʻoneʻe ʻia nā manaʻo cmdlet i ka mea aʻe ma ke kākau ʻana i ke ʻano lawelawe '' a me ke kaomi ʻana iā Enter - e hoʻopau wale i ke kākau ʻana i ke kauoha ma kahi laina a hoʻomau i kahi laina ʻē aʻe.

Eia kekahi mau laʻana o nā cmdlet maʻamau: 

Get-Process - hōʻike i nā kaʻina holo i ka ʻōnaehana;
Get-Service - hōʻike i nā lawelawe a me ko lākou kūlana;
Get-Content - hōʻike i nā mea o ka faila.

No nā cmdlet i hoʻohana pinepine ʻia a me nā pono waho, loaʻa iā Windows PowerShell nā huaʻōlelo pōkole - nā inoa inoa (mai ka English. Alias). No ka laʻana, he inoa inoa ʻo dir no Get-ChildItem. Aia pū ka papa inoa o nā synonyms i nā analogues o nā kauoha mai nā ʻōnaehana Unix (ls, ps, etc.), a ua kapa ʻia ka Get-Help cmdlet e ke kauoha kōkua. Hiki ke ʻike ʻia kahi papa inoa piha o nā synonyms me ka hoʻohana ʻana i ka Get-Alias ​​​​cmdlet:

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

Nā Palapala, Nā Hana, nā Module, a me ka ʻōlelo PowerShell

Mālama ʻia nā palapala Windows PowerShell ma ke ʻano he faila kikokikona me ka hoʻonui .ps1. ʻAʻole hiki iā ʻoe ke hoʻomaka iā lākou ma ke kaomi pālua: pono ʻoe e kaomi ʻākau e kāhea i ka papa kuhikuhi a koho i ka mea "Run in PowerShell". Mai ka console, pono ʻoe e kuhikuhi i ke ala piha i ka palapala, a i ʻole e hele i ka papa kuhikuhi kūpono a kākau i ka inoa faila. Hoʻopili ʻia nā palapala holo ʻana e nā kulekele ʻōnaehana, a no ka nānā ʻana i nā hoʻonohonoho o kēia manawa, hiki iā ʻoe ke hoʻohana i ka Get-ExecutionPolicy cmdlet, e hoʻihoʻi i kekahi o kēia mau waiwai:

Restricted — hoʻopaʻa ʻia ka hoʻomaka ʻana o nā palapala (ma ka paʻamau);
AllSigned - ʻae wale ʻia ka hoʻomaka ʻana o nā palapala i pūlima ʻia e kahi mea hoʻomohala hilinaʻi;
RemoteSigned - ʻae ʻia e holo i nā palapala i kākau ʻia a ponoʻī;
Unrestricted - 'ae 'ia e holo i kekahi palapala.

ʻElua koho a ka luna hoʻoponopono. ʻO ka mea paʻa loa e pili ana i ke kau inoa ʻana i nā palapala, akā he kilokilo koʻikoʻi kēia - e hana mākou me ia i nā ʻatikala e hiki mai ana. I kēia manawa e hele kāua i ke ala o ke kū'ē liʻiliʻi a hoʻololi i ke kulekele:

Set-ExecutionPolicy RemoteSigned

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
Pono e holo ʻo PowerShell ma ke ʻano he luna hoʻomalu e hana i kēia, ʻoiai hiki iā ʻoe ke hoʻololi i ke kulekele no ka mea hoʻohana o kēia manawa me kahi hoʻonohonoho kūikawā.

Ua kākau ʻia nā Scripts ma kahi ʻōlelo hoʻolālā e pili ana i nā mea, a ua kapa ʻia nā kauoha e like me ke kumu like me nā cmdlets i manaʻo ʻia ma mua: "Action-Object" ("Verb-Noun"). ʻO kāna kumu nui, ʻo ia ka hoʻomaʻamaʻa ʻana i nā hana hoʻokele, akā he ʻōlelo unuhi piha ia i loaʻa nā mea e pono ai: lele kūlana, loops, variables, arrays, objects, error handling, etc. Maikaʻi nā mea hoʻoponopono kikokikona no ka kākau ʻana, akā ʻoi aku ka maikaʻi o ka holo ʻana i ka Windows PowerShell ISE.

Hiki iā ʻoe ke hāʻawi i nā ʻāpana i ka palapala, e koi iā lākou, a hoʻonohonoho i nā waiwai paʻamau. Eia kekahi, ʻae ʻo Windows PowerShell iā ʻoe e hana a kāhea i nā hana ma ke ʻano like me nā cmdlets, me ka hoʻohana ʻana i ka hana hana a me nā pale pale. Ua kapa ʻia kahi ʻatikala me nā hana he module a loaʻa iā ia kahi hoʻonui .psm1. Pono e mālama ʻia nā modula ma nā papa kuhikuhi i wehewehe ʻia ma nā ʻano hoʻololi kaiapuni PowerShell. Hiki iā ʻoe ke nānā iā lākou me kēia kauoha:

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

Nā Kānāwai

I ka laʻana hope, ua hoʻohana mākou i kahi kūkulu i kamaʻāina i nā mea hoʻohana Unix shell. I ka Windows PowerShell, hiki i ka ʻaoʻao kūpaʻa ke hiki iā ʻoe ke paipu i ka hopena o kekahi kauoha i ka hoʻokomo ʻana o kekahi, akā aia kahi ʻokoʻa nui i ka hoʻokō ʻana i ka pipeline: ʻaʻole mākou e kamaʻilio hou e pili ana i kahi pūʻulu o nā huaʻōlelo a i ʻole kekahi ʻano. kikokikona. ʻO nā cmdlet i kūkulu ʻia a i ʻole nā ​​hana i hoʻoholo ʻia e ka mea hoʻohana e hoʻihoʻi i nā mea a i ʻole nā ​​ʻāpana o nā mea, a hiki ke loaʻa iā lākou ma ke ʻano he hoʻokomo. E like me ka Bourne shell a me kona mau hope he nui, hana maʻalahi ʻo PowerShell i nā hana paʻakikī me kahi pipeline.

ʻO ka laʻana pipeline maʻalahi e like me kēia:

Get-Service | Sort-Object -property Status

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
ʻO ka mua, hoʻokō ʻia ka cmdlet Get-Service, a laila hāʻawi ʻia nā lawelawe āpau i loaʻa iā ia i ka Sort-Object cmdlet no ka hoʻokaʻawale ʻana ma ka waiwai Kūlana. ʻO ka hoʻopaʻapaʻa ʻana i ka hopena o ka ʻāpana mua o ka pipeline e pili ana i kona ʻano - ʻo ia ka InputObject. E kūkākūkā hou ʻia kēia pilikia ma kahi ʻatikala i hoʻolaʻa ʻia i ka ʻōlelo papahana PowerShell. 

Inā makemake ʻoe, hiki iā ʻoe ke hoʻomau i ke kaulahao a hāʻawi i ka hopena o ka hana Sort-Object i kahi cmdlet ʻē aʻe (e hoʻokō ʻia lākou mai ka hema a i ka ʻākau). Ma ke ala, hiki i nā mea hoʻohana Windows ke komo i ka hana no ka pagination i kamaʻāina i nā Unixoids āpau: 

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

Ke holo nei i nā hana ma ke kua 

I ka manawa pinepine, pono e holo i kekahi kauoha ma ke kua, i ʻole e kali i ka hopena o kāna hoʻokō ʻana i ka hālāwai shell. Loaʻa iā Windows PowerShell kekahi mau cmdlets no kēia hihia:

Start-Job - ka hoʻomaka ʻana i kahi hana hope;
Stop-Job — hooki i ka hana hope;
Get-Job - nānā i ka papa inoa o nā hana hope;
Receive-Job - ke nānā ʻana i ka hopena o ka hoʻokō hana hope;
Remove-Job - ka holoi ʻana i kahi hana hope;
Wait-Job - hoʻihoʻi i ka hana hope i ka console.

No ka hoʻomaka ʻana i kahi hana hope, hoʻohana mākou i ka Start-Job cmdlet a kuhikuhi i kahi kauoha a i ʻole hoʻonohonoho o nā kauoha i loko o nā braces curly:

Start-Job {Get-Service}

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
Hiki ke hoʻohana ʻia nā hana hope ma Windows PowerShell ma ka ʻike ʻana i ko lākou mau inoa. ʻO ka mea mua, e aʻo kākou pehea e hōʻike ai iā lākou:

Get-Job

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
I kēia manawa e hōʻike i ka hopena o ka hana Job1:

Receive-Job Job1 | more

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
He mea maʻalahi nā mea a pau.

Hoʻokō kauoha mamao

ʻAe ʻo Windows PowerShell iā ʻoe e hoʻokō i nā kauoha a me nā palapala ʻaʻole wale ma ka kamepiula kūloko, akā ma kahi kamepiula mamao, a ma kahi pūʻulu holoʻokoʻa o nā mīkini. Nui nā ala e hana ai i kēia:

  • Nui nā cmdlet i kahi ʻāpana -ComputerName, akā ma kēia ʻano ʻaʻole ia e hana, no ka laʻana, e hana i kahi conveyor;
  • cmdlet Enter-PSSession hiki iā ʻoe ke hana i kahi hālāwai kūkākūkā ma kahi mīkini mamao; 
  • Ke hoʻohana nei i ka cmdlet Invoke-Command hiki iā ʻoe ke holo i nā kauoha a i ʻole nā ​​palapala ma kahi kamepiula mamao a ʻoi aku paha.

Nā mana o PowerShell

Ua loli nui ʻo PowerShell mai kona hoʻokuʻu mua ʻana ma 2006. Loaʻa ka hāmeʻa no nā ʻōnaehana he nui e holo ana ma luna o nā paepae lako like ʻole (x86, x86-64, Itanium, ARM): Windows XP, Windows Server 2003, Windows Vista, Windows Server 2008/2008 R2, Windows 7, Windows 8, Windows 8.1, ʻO Windows RT, Windows RT 8.1, Windows Server 2012/2012 R2, Windows 10, Windows Server 2016, GNU/Linux a me OS X. Hoʻokuʻu hou ʻia ʻo 6.2 ma Ianuali 10, 2018. ʻOi aku ka maikaʻi o nā palapala i kākau ʻia no nā mana o mua, akā hiki ke pilikia ka backporting no ka mea ua hoʻokomo ʻo PowerShell i kahi helu nui o nā cmdlet hou i nā makahiki o ka hoʻomohala ʻana. Hiki iā ʻoe ke ʻike i ka mana o ka shell command i hoʻokomo ʻia ma ke kamepiula me ka hoʻohana ʻana i ka waiwai PSVersion o ka $PSVersionTable i kūkulu ʻia i loko o ka ʻano hoʻololi:

$PSVersionTable.PSVersion

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
Hiki iā ʻoe ke hoʻohana i ka cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui
Ua hana like me ka Get-Host cmdlet. ʻOiaʻiʻo, nui nā koho, akā no ka hoʻohana ʻana iā lākou pono ʻoe e aʻo i ka ʻōlelo hoʻolālā PowerShell, a mākou e hana ai ʻatikala aʻe

Nā hopena 

Ua hoʻokō ʻo Microsoft i ka hana ʻana i kahi pūpū ikaika loa me kahi ʻenehana hoʻohui kūpono no ka hoʻomohala ʻana i nā palapala. He ʻokoʻa ia mai nā mea hana i kamaʻāina iā mākou ma ka honua o Unix ma o ka hoʻopili hohonu ʻana me nā ʻōnaehana hana o ka ʻohana Windows, a me nā lako polokalamu no lākou a me ka .NET Core platform. Hiki ke kapa ʻia ʻo PowerShell he shell object-oriented no ka mea, hoʻihoʻi nā cmdlets a me nā hana i wehewehe ʻia e ka mea hoʻohana i nā mea a i ʻole nā ​​ʻāpana o nā mea a hiki ke lawe iā lākou i mea hoʻokomo. Manaʻo mākou e pono i nā luna hoʻomalu āpau ma Windows kēia mea hana: ua hala ka manawa hiki iā lākou ke hana me ka ʻole o ka laina kauoha. Pono pono ʻia kahi pūpū console holomua ma kā mākou VPS kumu kūʻai haʻahaʻa e holo ana i ka Windows Server Core, akā he moʻolelo ʻokoʻa loa kēlā.

He aha ka Windows PowerShell a he aha ka mea e ʻai ʻia ai? Mahele 1: Nā mea nui

Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi. Eʻe, e 'oluʻolu.

He aha nā kumuhana e pono ke uhi mua ʻia ma nā ʻatikala aʻe o ka moʻo?

  • 53,2%Ka papahana ma PowerShell123

  • 42,4%Nā Hana a me nā Module PowerShell98

  • 22,1%Pehea e kakau inoa ai i kou mau palapala ponoi?51

  • 12,1%Hana pū me nā waihona ma o nā mea hoʻolako (mea hoʻolako)28

  • 57,6%ʻO ka hoʻoponopono ʻana i nā kamepiula me PowerShell133

  • 30,7%Hoʻokele polokalamu a hoʻokomo i nā mea hoʻokō PowerShell i nā huahana ʻaoʻao ʻekolu71

231 mea hoʻohana i koho. Ua hōʻole nā ​​mea hoʻohana 37.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka