Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

Yn hanesyddol, mae cyfleustodau llinell orchymyn ar systemau Unix wedi'u datblygu'n well nag ar Windows, ond gyda dyfodiad datrysiad newydd, mae'r sefyllfa wedi newid.

Mae Windows PowerShell yn caniatáu i weinyddwyr system awtomeiddio'r rhan fwyaf o dasgau arferol. Ag ef, gallwch newid gosodiadau, stopio a chychwyn gwasanaethau, a hefyd cynnal a chadw ar y mwyafrif o gymwysiadau sydd wedi'u gosod. Byddai'n anghywir canfod y ffenestr las fel cyfieithydd gorchymyn arall. Nid yw'r dull hwn yn adlewyrchu hanfod y datblygiadau arloesol a gynigir gan Microsoft. Mewn gwirionedd, mae posibiliadau Windows PowerShell yn llawer ehangach: mewn cyfres fer o erthyglau, byddwn yn ceisio darganfod sut mae datrysiad Microsoft yn wahanol i'r offer yr ydym yn fwy cyfarwydd â nhw.

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

Prif nodweddion 

Wrth gwrs, mae Windows PowerShell yn gragen sgriptio yn bennaf, a adeiladwyd yn wreiddiol ar y Fframwaith .NET ac yn ddiweddarach ar .NET Core. Yn wahanol i gregyn sy'n derbyn ac yn dychwelyd data testun, mae Windows PowerShell yn gweithio gyda dosbarthiadau .NET sydd â phriodweddau a dulliau. Mae PowerShell yn caniatáu ichi redeg gorchmynion cyffredin a hefyd yn rhoi mynediad i chi i wrthrychau COM, WMI, ac ADSI. Mae'n defnyddio storfeydd amrywiol, megis y system ffeiliau neu'r gofrestrfa Windows, ar gyfer mynediad i'r hyn a elwir. darparwyr. Mae'n werth nodi'r posibilrwydd o ymgorffori cydrannau gweithredadwy PowerShell mewn cymwysiadau eraill i weithredu amrywiol weithrediadau, gan gynnwys. trwy ryngwyneb graffigol. Mae'r gwrthwyneb hefyd yn wir: mae llawer o gymwysiadau Windows yn darparu mynediad i'w rhyngwynebau rheoli trwy PowerShell. 

Mae Windows PowerShell yn caniatáu ichi:

  • Newid gosodiadau system weithredu;
  • Rheoli gwasanaethau a phrosesau;
  • Ffurfweddu rolau a chydrannau gweinydd;
  • Gosod meddalwedd;
  • Rheoli meddalwedd gosod trwy ryngwynebau arbennig;
  • Mewnosod cydrannau gweithredadwy mewn rhaglenni trydydd parti;
  • Creu sgriptiau i awtomeiddio tasgau gweinyddol;
  • Gweithio gyda'r system ffeiliau, cofrestrfa Windows, storfa dystysgrif, ac ati.

Cragen ac amgylchedd datblygu

Mae Windows PowerShell mewn dwy ffurf: yn ogystal â'r efelychydd consol gyda chragen gorchymyn, mae Amgylchedd Sgriptio Integredig (ISE). I gael mynediad i'r rhyngwyneb llinell orchymyn, dewiswch y llwybr byr priodol o ddewislen Windows neu redeg powershell.exe o'r ddewislen Run. Bydd ffenestr las yn ymddangos ar y sgrin, sy'n amlwg yn wahanol o ran galluoedd i'r antediluvian cmd.exe. Mae awtolenwi a nodweddion eraill sy'n gyfarwydd i ddefnyddwyr cregyn gorchymyn ar gyfer systemau Unix.

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

I weithio gyda'r gragen mae angen i chi gofio rhai llwybrau byr bysellfwrdd:

  • Mae'r saethau i fyny ac i lawr yn sgrolio trwy'r hanes i ailadrodd gorchmynion a deipiwyd yn flaenorol;
  • Mae'r saeth dde ar ddiwedd llinell yn aildeipio'r nod gorchymyn blaenorol fesul nod;
  • Mae Ctrl+Home yn dileu'r testun wedi'i deipio o safle'r cyrchwr i ddechrau'r llinell;
  • Mae Ctrl+End yn dileu testun o'r cyrchwr i ddiwedd y llinell.

Mae F7 yn dangos ffenestr gyda'r gorchmynion a gofnodwyd ac yn caniatáu ichi ddewis un ohonynt. Mae'r consol hefyd yn gweithio ar gyfer dewis testun gyda'r llygoden, copi-gludo, lleoli cyrchwr, dileu, gofod cefn - popeth rydyn ni'n ei garu.

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Mae Windows PowerShell ISE yn amgylchedd datblygu cyflawn gyda golygydd cod wedi'i amlygu â thabiau a chystrawen, adeiladwr gorchymyn, dadfygiwr adeiledig, a phleserau rhaglennu eraill. Os byddwch chi'n ysgrifennu cysylltnod ar ôl enw'r gorchymyn yn y golygydd amgylchedd datblygu, fe gewch chi'r holl opsiynau sydd ar gael yn y gwymplen gydag arwydd o'r math. Gallwch chi lansio PowerShell ISE naill ai trwy lwybr byr o ddewislen y system, neu ddefnyddio'r ffeil gweithredadwy powershell_ise.exe.

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

Cmdlets 

Yn Windows PowerShell, yr hyn a elwir. cmdlets. Mae'r rhain yn ddosbarthiadau .NET arbenigol sy'n darparu amrywiaeth o swyddogaethau. Fe'u henwir yn Action-Object (neu Verb-Noun, os yw'n well gennych), ac mae'r ddolen wedi'i gwahanu â chysylltnod yn debyg i'r rhagfynegiad a'r pwnc mewn brawddegau iaith naturiol. Er enghraifft, mae Get-Help yn llythrennol yn golygu "Get-Help", neu mewn cyd-destun PowerShell: "Show-Help". Mewn gwirionedd, mae hwn yn analog o'r gorchymyn dyn mewn systemau Unix, a rhaid gofyn am lawlyfrau yn PowerShell fel hyn, ac nid trwy ffonio cmdlets gyda'r allwedd --help neu /?. Peidiwch ag anghofio am y dogfennau PowerShell ar-lein: Mae gan Microsoft ei fod yn eithaf manwl.

Yn ogystal â Get, mae cmdlets yn defnyddio berfau eraill i ddynodi gweithredoedd (ac nid berfau yn unig, a bod yn fanwl gywir). Yn y rhestr isod rydym yn rhoi rhai enghreifftiau:

Add - ychwanegu;
Clear - glân;
Enable - troi ymlaen;
Disable - diffodd;
New - creu;
Remove - dileu;
Set - gofyn;
Start - rhedeg;
Stop - stopio;
Export - allforio;
Import - mewnforio.

Mae yna cmdlets system, defnyddiwr a dewisol: o ganlyniad i weithredu, maent i gyd yn dychwelyd gwrthrych neu amrywiaeth o wrthrychau. Nid ydynt yn sensitif i achosion, h.y. o safbwynt y dehonglydd gorchymyn, nid oes gwahaniaeth rhwng Get-Help a get-help. Defnyddir y nod ';' ar gyfer gwahanu, ond mae'n orfodol ei roi dim ond os gweithredir sawl cmdlets ar yr un llinell. 

Mae cmdlets Windows PowerShell wedi'u grwpio i fodiwlau (NetTCPIP, Hyper-V, ac ati), ac mae cmdlet Get-Command i chwilio yn ôl gwrthrych a gweithred. Gallwch ddangos cymorth ar ei gyfer fel hyn:

Get-Help Get-Command

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

Yn ddiofyn, mae'r gorchymyn yn dangos cymorth byr, ond mae paramedrau (dadleuon) yn cael eu trosglwyddo i cmdlets yn ôl yr angen. Gyda'u cymorth, gallwch, er enghraifft, gael cymorth manwl (paramedr -Manwl) neu lawn (paramedr -Llawn), yn ogystal ag enghreifftiau arddangos (paramedr -Enghreifftiau):

Get-Help Get-Command -Examples

Mae Help yn Windows PowerShell yn cael ei ddiweddaru gyda'r cmdlet Update-Help. Os yw llinell o orchmynion yn troi allan i fod yn rhy hir, gellir trosglwyddo'r dadleuon cmdlet i'r un nesaf trwy ysgrifennu'r nod gwasanaeth '`' a phwyso Enter - ni fydd gorffen ysgrifennu gorchymyn ar un llinell a pharhau ar un arall yn gweithio.

Isod mae rhai enghreifftiau o cmdlets cyffredin: 

Get-Process - dangos prosesau rhedeg yn y system;
Get-Service — dangos gwasanaethau a'u statws;
Get-Content - arddangos cynnwys y ffeil.

Ar gyfer cmdlets a ddefnyddir yn aml a chyfleustodau allanol, mae gan Windows PowerShell gyfystyron byr - aliasau (o'r Saesneg. Alias). Er enghraifft, mae dir yn alias ar gyfer Get-ChildItem. Mae'r rhestr o gyfystyron hefyd yn cynnwys analogau o orchmynion o systemau Unix (ls, ps, ac ati), a gelwir y cmdlet Get-Help gan y gorchymyn cymorth. Gellir gweld rhestr gyflawn o gyfystyron gan ddefnyddio cmdlet Get-Alias:

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

Sgriptiau, Swyddogaethau, Modiwlau, a'r Iaith PowerShell

Mae sgriptiau Windows PowerShell yn cael eu storio fel ffeiliau testun plaen gydag estyniad .ps1. Ni allwch eu lansio trwy glicio ddwywaith: mae angen i chi dde-glicio i alw'r ddewislen cyd-destun a dewis yr eitem “Run in PowerShell”. O'r consol, bydd yn rhaid i chi naill ai nodi'r llwybr llawn i'r sgript, neu fynd i'r cyfeiriadur priodol ac ysgrifennu enw'r ffeil. Mae rhedeg sgriptiau hefyd wedi'i gyfyngu gan bolisi system, ac i wirio'r gosodiadau cyfredol, gallwch ddefnyddio'r cmdlet Get-ExecutionPolicy, a fydd yn dychwelyd un o'r gwerthoedd canlynol:

Restricted — gwaherddir rhedeg sgriptiau (yn ddiofyn);
AllSigned - dim ond lansio sgriptiau a lofnodwyd gan ddatblygwr dibynadwy a ganiateir;
RemoteSigned - caniateir rhedeg sgriptiau wedi'u llofnodi a bod yn berchen arnynt;
Unrestricted - caniateir rhedeg unrhyw sgriptiau.

Mae gan y gweinyddwr ddau opsiwn. Mae'r mwyaf diogel yn golygu llofnodi sgriptiau, ond mae hyn yn ddewiniaeth eithaf difrifol - byddwn yn delio ag ef mewn erthyglau yn y dyfodol. Nawr, gadewch i ni gymryd y llwybr lleiaf o wrthwynebiad a newid y polisi:

Set-ExecutionPolicy RemoteSigned

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Bydd angen rhedeg PowerShell fel gweinyddwr i wneud hyn, er y gallwch chi newid y polisi ar gyfer y defnyddiwr presennol gyda gosodiad arbennig.

Ysgrifennir sgriptiau mewn iaith raglennu sy'n canolbwyntio ar wrthrych, y mae ei gorchmynion yn cael eu henwi yn ôl yr un egwyddor â'r cmdlets a drafodwyd yn flaenorol: “Action-Object” (“Verb-Noun”). Ei brif bwrpas yw awtomeiddio tasgau gweinyddol, ond mae'n iaith ddehongli lawn sydd â'r holl luniadau angenrheidiol: naid amodol, dolenni, newidynnau, araeau, gwrthrychau, trin gwallau, ac ati. Mae unrhyw olygydd testun yn addas ar gyfer ysgrifennu sgriptiau, ond mae'n fwyaf cyfleus rhedeg Windows PowerShell ISE.

Gallwch drosglwyddo paramedrau i'r sgript, eu gwneud yn ofynnol, a gosod gwerthoedd diofyn. Yn ogystal, mae Windows PowerShell yn caniatáu ichi greu a galw swyddogaethau yn yr un modd â cmdlets, trwy ddefnyddio'r swyddogaeth lluniadu a braces cyrliog. Gelwir sgript gyda swyddogaethau yn fodiwl ac mae ganddi estyniad .psm1. Rhaid storio modiwlau mewn cyfeiriaduron a ddiffinnir yn y newidynnau amgylchedd PowerShell. Gallwch eu gweld gyda'r gorchymyn canlynol:

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

Cludwyr

Yn yr enghraifft olaf, rydym wedi defnyddio lluniad sy'n gyfarwydd i ddefnyddwyr cregyn Unix. Yn Windows PowerShell, mae'r bar fertigol hefyd yn caniatáu ichi drosglwyddo allbwn un gorchymyn i fewnbwn un arall, ond mae gwahaniaeth sylweddol yng ngweithrediad y biblinell: nid ydym bellach yn sôn am set o nodau neu ryw fath o testun. Mae cmdlets adeiledig neu swyddogaethau a ddiffinnir gan ddefnyddwyr yn dychwelyd gwrthrychau neu araeau o wrthrychau, a gallant hefyd eu derbyn fel mewnbwn. Fel cragen Bourne a'i olynwyr niferus, mae PowerShell yn gwneud tasgau cymhleth yn haws gyda phiblinell.

Mae'r enghraifft biblinell symlaf yn edrych fel hyn:

Get-Service | Sort-Object -property Status

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Yn gyntaf, gweithredir cmdlet Get-Service, ac yna trosglwyddir yr holl wasanaethau a dderbynnir ganddo i'r cmdlet Trefnu Gwrthrych i'w didoli yn ôl yr eiddo Status. Mae pa ddadl y mae canlyniad adran flaenorol y biblinell yn cael ei phasio iddi yn dibynnu ar ei math - fel arfer InputObject ydyw. Bydd y mater hwn yn cael ei drafod yn fanylach mewn erthygl sy'n ymroddedig i iaith raglennu PowerShell. 

Os dymunwch, gallwch barhau â'r gadwyn a throsglwyddo canlyniad y gweithrediad Sort-Object i cmdlet arall (byddant yn cael eu gweithredu o'r chwith i'r dde). Gyda llaw, mae gan ddefnyddwyr Windows hefyd fynediad i'r adeiladwaith ar gyfer tudaleniad sy'n gyfarwydd i bob Unixoids: 

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

Tasgau rhedeg yn y cefndir 

Yn aml iawn mae angen rhedeg gorchymyn penodol yn y cefndir er mwyn peidio ag aros am ganlyniad ei weithredu yn y sesiwn cregyn. Mae gan Windows PowerShell sawl cmdlets ar gyfer y sefyllfa hon:

Start-Job - lansio tasg gefndir;
Stop-Job — atal tasg gefndir;
Get-Job — gweld y rhestr o dasgau cefndir;
Receive-Job — edrych ar ganlyniad cyflawni'r dasg gefndir;
Remove-Job — dileu tasg gefndir;
Wait-Job - trosglwyddo'r dasg gefndir yn ôl i'r consol.

I gychwyn tasg gefndir, rydym yn defnyddio'r cmdlet Start-Job ac yn nodi gorchymyn neu set o orchmynion mewn braces cyrliog:

Start-Job {Get-Service}

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Gellir trin tasgau cefndir yn Windows PowerShell trwy wybod eu henwau. Yn gyntaf, gadewch i ni ddysgu sut i'w harddangos:

Get-Job

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Nawr gadewch i ni ddangos canlyniad y swydd Job1:

Receive-Job Job1 | more

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Mae popeth yn eithaf syml.

Gweithredu gorchymyn o bell

Mae Windows PowerShell yn caniatáu ichi weithredu gorchmynion a sgriptiau nid yn unig ar y cyfrifiadur lleol, ond hefyd ar gyfrifiadur o bell, a hyd yn oed ar grŵp cyfan o beiriannau. Mae sawl ffordd o wneud hyn:

  • Mae gan lawer o cmdlets baramedr -ComputerName, ond fel hyn ni fydd yn gweithio, er enghraifft, i greu cludwr;
  • Cmdlet Enter-PSSession yn eich galluogi i greu sesiwn ryngweithiol ar beiriant anghysbell; 
  • Gan ddefnyddio'r cmdlet Invoke-Command gallwch redeg gorchmynion neu sgriptiau ar un neu fwy o gyfrifiaduron anghysbell.

Fersiynau o PowerShell

Mae PowerShell wedi newid llawer ers ei ryddhau gyntaf yn 2006. Mae'r offeryn ar gael ar gyfer llawer o systemau sy'n rhedeg ar wahanol lwyfannau caledwedd (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 ac OS X. Rhyddhawyd y datganiad diweddaraf 6.2 ar Ionawr 10, 2018. Mae sgriptiau a ysgrifennwyd ar gyfer fersiynau cynharach yn debygol o weithio mewn fersiynau diweddarach, ond gall backporting fod yn broblem oherwydd bod PowerShell wedi cyflwyno nifer fawr o cmdlets newydd dros y blynyddoedd o ddatblygiad. Gallwch ddarganfod y fersiwn o'r plisgyn gorchymyn sydd wedi'i osod ar y cyfrifiadur gan ddefnyddio'r eiddo PSVersion o'r newidyn adeiledig $ PSVersionTable:

$PSVersionTable.PSVersion

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Gallwch hefyd ddefnyddio'r cmdlet:

Get-Variable -Name PSVersionTable –ValueOnly

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol
Gwneir yr un peth gyda cmdlet Get-Host. Mewn gwirionedd, mae yna lawer o opsiynau, ond i'w defnyddio mae angen i chi ddysgu iaith raglennu PowerShell, y byddwn yn ei wneud yn erthygl nesaf

Canlyniadau 

Mae Microsoft wedi llwyddo i greu cragen wirioneddol bwerus gydag amgylchedd integredig cyfleus ar gyfer datblygu sgriptiau. Mae'n wahanol i'r offer sy'n gyfarwydd i ni ym myd Unix trwy integreiddio dwfn â systemau gweithredu'r teulu Windows, yn ogystal â meddalwedd ar eu cyfer a'r llwyfan .NET Core. Gellir galw PowerShell yn gragen sy'n canolbwyntio ar wrthrych oherwydd bod cmdlets a swyddogaethau a ddiffinnir gan ddefnyddwyr yn dychwelyd gwrthrychau neu araeau o wrthrychau a gallant eu cymryd fel mewnbwn. Rydyn ni'n meddwl y dylai pob gweinyddwr gweinydd ar Windows fod yn berchen ar yr offeryn hwn: mae'r amser wedi mynd heibio pan allent wneud heb y llinell orchymyn. Mae angen cragen consol datblygedig yn arbennig ar ein VPS cost isel sy'n rhedeg Windows Server Core, ond mae honno'n stori hollol wahanol.

Beth yw Windows PowerShell a beth mae'n cael ei fwyta ag ef? Rhan 1: Nodweddion Allweddol

Dim ond defnyddwyr cofrestredig all gymryd rhan yn yr arolwg. Mewngofnodios gwelwch yn dda.

Pa bynciau ddylai gael sylw gyntaf yn erthyglau nesaf y gyfres?

  • 53,2%Rhaglennu yn PowerShell123

  • 42,4%Swyddogaethau a Modiwlau PowerShell98

  • 22,1%Sut i lofnodi eich sgriptiau eich hun?51

  • 12,1%Gweithio gyda storfeydd trwy ddarparwyr (darparwyr)28

  • 57,6%Awtomeiddio Gweinyddu Cyfrifiaduron gyda PowerShell133

  • 30,7%Rheoli meddalwedd ac ymgorffori gweithredoedd PowerShell mewn cynhyrchion trydydd parti71

Pleidleisiodd 231 o ddefnyddwyr. Ymataliodd 37 o ddefnyddwyr.

Ffynhonnell: hab.com

Ychwanegu sylw