ʻ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.
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.
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 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.
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
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:
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
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
ʻ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}
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
I kēia manawa e hōʻike i ka hopena o ka hana Job1:
Receive-Job Job1 | more
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
Hiki iā ʻoe ke hoʻohana i ka cmdlet:
Get-Variable -Name PSVersionTable –ValueOnly
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
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
Hiki i nā mea hoʻohana i hoʻopaʻa inoa ʻia ke komo i ka noiʻi.
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