Hvernig á að laga Execution Policy Restricted villu í Windows PowerShell

Öruggasta leiðin til að laga “Execution Policy Restricted” villu í Windows PowerShell er ekki að afrita víðtækasta skipunina sem þú finnur. Fyrst skaltu greina hvaða execution policy er í raun virk, og velja síðan þrengstu breytinguna sem hentar því sem þú ert að reyna að keyra.

Núverandi skjöl Microsoft leggja einnig áherslu á mikilvægi útgáfu samhengis. Skjöl Windows PowerShell 5.1 lista Restricted sem sjálfgefna execution policy fyrir Windows viðskiptavini. Núverandi skjöl PowerShell 7.6 skilgreina Default sem RemoteSigned á Windows. Ef hvert umfang er Undefined, þó, skráir Microsoft enn virka fallback á Windows viðskiptavini sem Restricted. Hagnýta kennslan er einföld: ekki giska á stefnu þína út frá Windows útgáfu eða frá leiðbeiningum. Keyrðu policy skipanirnar á vélinni sem hefur villuna.

Þessi leiðbeining ber saman helstu lagfæringar eftir umfangi, varanleika, áhrifum á stjórnun og traustlíkani. Markmiðið er að fá löglega skrift til að keyra án þess að veika meira af kerfinu en nauðsyn krefur.

Hvað þýðir Restricted villan í raun

Undir Restricted stefnunni leyfir PowerShell einstakar skipanir en leyfir ekki keyrslu skriftaskráa. Það inniheldur PowerShell skriftir og tengdar stillinga- eða module-skriftaskrár. Microsoft lýsir execution policy sem öryggiseiginleika sem stjórnar skilyrðum undir hvaða skriftir og stillingaskrár hlaðast. Það er ekki öryggislandamörk; Microsoft tekur sérstaklega fram að notandi getur samt slegið inn skipanir gagnvirkt. Lestu núverandi about_Execution_Policies skjöl fyrir PowerShell 7.6 og Windows PowerShell 5.1 execution policy skjöl.

Windows PowerShell stjórnborð sem sýnir script.ps1 skrá sem er lokuð vegna þess að keyrsla skrifta er óvirk á kerfinu

Algenga villan segir að .ps1 skráin geti ekki verið hlaðin vegna þess að keyrsla skrifta er óvirk; taktu nákvæmlega eftir skilaboðunum áður en þú breytir stefnunni.

Þessi greinarmunur skiptir máli. Execution policy getur hjálpað til við að koma í veg fyrir óviljaða keyrslu skrifta, en að stilla RemoteSigned eða Bypass gerir skriftina ekki áreiðanlega. Farðu yfir skriftina og uppruna hennar fyrst.

Skref 1: Greindu virku stefnuna og hvert umfang

Keyrðu þessar tvær skipanir:

Get-ExecutionPolicy

Get-ExecutionPolicy -List

Fyrsta skilar virkri stefnu fyrir núverandi setu. Önnur listar stefnur sem eru beittar á MachinePolicy, UserPolicy, Process, CurrentUser og LocalMachine. Microsoft mælir sérstaklega með Get-ExecutionPolicy -List til að sjá stefnur sem geta haft áhrif á setuna. Sjá Get-ExecutionPolicy.

Windows PowerShell sem sýnir Get-ExecutionPolicy -List með MachinePolicy, UserPolicy, Process, CurrentUser og LocalMachine umföngum

Athugaðu öll umföng í stað þess að gera ráð fyrir að LocalMachine gildið sé það sem stjórnar setunni.

Ef MachinePolicy eða UserPolicy er skilgreint, stoppaðu áður en þú reynir að þvinga fram staðbundna lausn. Þessi gildi koma frá Group Policy og geta yfirtekið execution policy stillingar sem gerðar eru með PowerShell. Á stýrðri vinnutölvu er rétta næsta skrefið yfirleitt að fylgja ferli stofnunarinnar eða hafa samband við IT-deildina.

Veldu lagfæringu eftir þörfum, ekki eftir stystu skipuninni

ValkosturVaranleikiStjórnunarheimildirMegin viðskiptiBesta passa
Unblock-File meðan RemoteSigned er notaðSkráartengtYfirleitt engin uppfærsla fyrir þína eigin skráÞú treystir sérstaklega einni niðurhalaðri skrá; aðrar niðurhalaðar óundirritaðar skrár falla enn undir RemoteSignedEin yfirfarin skrift niðurhöluð af internetinu
Process RemoteSignedNúverandi PowerShell ferli eingönguEngin LocalMachine breytingLágur varanleiki, en niðurhalaðar óundirritaðar skrár geta enn þurft að vera opnaðarTímabundin þróunar- eða villuleitarseta
CurrentUser RemoteSignedVaranlegt fyrir notandaþinnKrefst ekki breytinga á öllum notendumÞægilegt fyrir reglulega staðbundna skriftun; víðara en einnar setu breytingPersonuleg þróunarvinnustöð
LocalMachine RemoteSignedVaranlegt fyrir alla notendurKrefst uppfærsluMeiri áhrif yfir tölvunaDeilt vélar þar sem stjórnandi vill meðvitað sömu stefnu fyrir alla notendur
AllSignedHáð umfangiHáð umfangiKrefst undirritunar jafnvel fyrir staðbundið búna skriftir; bætir við vottorðs- og undirritunarferliStofnanir með kóðaundirritunarferli
BypassHáð umfangi; oft notað á Process umfangiHáð umfangiEngin skriftablokkun, viðvaranir eða spurningar frá execution policyStýrð sjálfvirkni með sínu eigin traust- og öryggislíkani, ekki afslappað varanlegt stilling

Skref 2: Notaðu stjórnunarheimildir aðeins fyrir vélarvíða breytingu

Þú þarft ekki að opna uppfærða PowerShell eingöngu til að breyta CurrentUser eða Process umfanginu. Microsoft segir að uppfærsla sé nauðsynleg þegar breytt er stefnunni fyrir staðbundna tölvu, þ.e. LocalMachine. Þetta er gagnlegt viðskipti: ef aðeins notandaþinn þarf staðbundna skriftun, þá bætir breyting á stefnu allra notenda við umfang án þess að bæta við ávinningi.

Windows leitarniðurstöður fyrir Windows PowerShell með Run as administrator valkostinn framhefaður

Run as administrator er viðeigandi fyrir meðvitaða LocalMachine breytingu, en er óþarfi fyrir Process eða CurrentUser umfang.

Tillaga eftir þörfum: notaðu CurrentUser fyrir þróunaraðgang sem keyrir reglulega staðbundið búna skriftir. Geymdu LocalMachine fyrir stjórnanda sem vill meðvitað að sama stilling hafi áhrif á alla notendur.

Skref 3: Fyrir reglulega staðbundna skriftun, íhugaðu CurrentUser RemoteSigned

Fyrir margar persónulegar þróunartölvur er praktísk varanleg valkostur:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

RemoteSigned leyfir staðbundnum skriftum að keyra án þess að krefjast undirritunar, en skriftir sem merktar eru sem niðurhalaðar af internetinu krefjast áreiðanlegrar stafrænnar undirritunar nema þú opnar skrána sérstaklega. Það varðveitir gagnlegan greinarmun á kóða sem þú bjóst til staðbundið og kóða sem fenginn er frá öðrum uppruna.

Administrator Windows PowerShell sem sýnir Set-ExecutionPolicy RemoteSigned og staðfestingarspurn execution policy

Þessi mynd sýnir vélarvíða RemoteSigned skipun vegna þess að umfangið er sleppt; LocalMachine er sjálfgefið umfang. Kæstu frekar sérstakt umfang svo áhrifin séu meðvituð.

Algeng villa er að keyra Set-ExecutionPolicy RemoteSigned án -Scope. Microsoft skráir LocalMachine sem sjálfgefið umfang þegar execution policy er stillt. Þess vegna er betra að vera sérstakur:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Breytingin er virk strax; PowerShell þarf ekki að vera endurræst fyrir CurrentUser eða LocalMachine breytingar.

Skref 4: Fyrir tímabundna setu, kæstu frekar Process umfangs stefnu

Ef þú ert að leita að villum eða keyrir áreiðanlega staðbundna skrift einu sinni, forðastu varanlega notanda- eða vélarbreytingu. Þrengri valkostur er:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy RemoteSigned

Process umfangið gildir aðeins fyrir núverandi PowerShell setu. Microsoft segir að það sé geymt í $Env:PSExecutionPolicyPreference umhverfisbreytunni og eyðist þegar ferlið lokar.

Ef stærra forrit, uppsetningarforrit eða stýrt sjálfvirkni umhverfi hefur nú þegar sitt eigið öryggislíkan, þá býður PowerShell einnig upp á Bypass:

Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

Windows PowerShell sem sýnir Set-ExecutionPolicy á Process umfangi með Bypass og Get-ExecutionPolicy -List sem sýnir Process Bypass

Process umfangs Bypass hverfur þegar PowerShell ferlið lokar, en það fjarlægir einnig execution policy viðvaranir og blokkun fyrir þá setu.

Viðskipti: Process umfang lágmarkar varanleika, en Bypass er víðara en RemoteSigned inni í þeirri setu. Microsoft lýsir Bypass sem því að blokkera ekkert og sýna engar viðvaranir eða spurningar, og segir að það sé ætlað fyrir aðstæður þar sem annað forrit veitir öryggislíkanið. Fyrir venjulega gagnvirka villuleitarsetu, notaðu Process RemoteSigned fyrst nema þú hafir sérstaka ástæðu fyrir Bypass.

Fyrir sérstakt einhliða Windows PowerShell ferli, geturðu einnig ræst:

powershell.exe -ExecutionPolicy RemoteSigned -File .\script.ps1

Fyrir PowerShell 7 er keyrsluskráin pwsh.exe. Skipanalín execution policy stilling yfirtekur samt ekki execution policy sem er framfylgt af Group Policy.

Skref 5: Ef RemoteSigned blokkar niðurhalaða skrift, opnaðu aðeins þá skrá

RemoteSigned meðhöndlar skrár sem merktar eru sem upprunnar af internetinu öðruvísi. Microsoft skráir Unblock-File cmdlet sem að fjarlægja internet-merkið, sem leyfir yfirfarinni óundirritaðri skrift að keyra undir RemoteSigned.

Fyrst skaltu skoða skriftina. Ef þú treystir upprunanum og hefur yfirfarið innihaldið, keyrðu:

Unblock-File -Path .\script.ps1

Þú getur einnig notað Unblock gátreitinn í Eiginleikar (Properties) glugga skráarinnar. Microsoft segir að Unblock-File framkvæmi sömu grunnvirkni. Sjá Unblock-File.

Windows file Properties gluggi fyrir script.ps1 sem sýnir Öryggi (Security) hlutann og Unblock gátreitinn

Að opna eina yfirfarða niðurhalaða skrift er þrengri en að veika stefnuna fyrir hverja skrift á vélinni.

Þú getur athugað hvort skrá hafi Zone.Identifier aukagagnstraum með:

Get-Item .\script.ps1 -Stream Zone.Identifier -ErrorAction SilentlyContinue

Microsoft tekur fram að niðurhalsaðferðir merkja ekki allar skrár á sama hátt, svo fjarvera þess straums er ekki sönnun þess að skriftin sé örugg.

Skref 6: Notaðu AllSigned þegar stofnunin hefur undirritunarferli

AllSigned krefst þess að allar skriftir og stillingaskrár séu undirritaðar af áreiðanlegum útgefanda, þar með talið skriftir sem eru búnaðar staðbundið. Það gefur stofnun samræmt útgefanda-traust ferli, en það skapar einnig rekstrarlega byrði: skriftir þurfa Authenticode undirritanir og notendur þurfa að treysta viðkomandi útgefendum.

Skjöl Microsoft about_Signing skjöl útskýra hvernig PowerShell athugar skriftaundirritanir og hvernig spurningar um áreiðanlega útgefanda virka.

Tillaga eftir þörfum: AllSigned er skynsamlegt þegar stofnunin þín hefur nú þegar kóðaundirritunarvottorð, útgáfustjórnun og ferli fyrir uppfærslu undirritaðra skrifta. Fyrir einn þróunaraðila sem skrifar staðbundnar hjálpar skriftir, felur RemoteSigned yfirleitt minni núning í sér en varðveitir samt internet-uppruna athugunina.

Skref 7: Ekki berjast við Group Policy á stýrðri tölvu

PowerShell birtir tvö stefnu umföng sem koma frá Group Policy: MachinePolicy og UserPolicy. Skjöl Microsoft Group Policy segja að Turn on Script Execution stillingin geti framfylgt Restricted, RemoteSigned eða AllSigned hegðun fyrir stýrða notendur og tölvur. Stillingin er undir:

Administrative Templates\Windows Components\Windows PowerShell

Sjá about_Group_Policy_Settings.

Ef Get-ExecutionPolicy -List sýnir skilgreint MachinePolicy eða UserPolicy, þá gæti staðbundin Set-ExecutionPolicy skipun ekki gefið þér þá virku hegðun sem þú búist við. Hagnýta lausnin er að biðja um viðeigandi stefnu hjá stjórnandanum, nota undirritaða skrift ef krafist er, eða nota samþykktan útfærsluaðferð.

Skref 8: Endurheimtu stillinguna sem þú breyttir í raun, og staðfestu

Áður en þú breytir varanlegu umfangi, skráðu núverandi gildi þess:

Get-ExecutionPolicy -Scope CurrentUser

Get-ExecutionPolicy -Scope LocalMachine

Ef þú þarft síðar að fjarlægja stefnugildi sem þú settir, skráir Microsoft að stilla það umfang á Undefined:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Undefined

Ekki keyra blindlega Set-ExecutionPolicy Restricted bara vegna þess að skjámynd sýnir það. Án umfangs, miðar skipunin á LocalMachine sjálfgefið, og “Restricted” gæti ekki hafa verið fyrra gildi þess umfangs.

Windows PowerShell sem sýnir Set-ExecutionPolicy Restricted staðfestingarspurn

Skjámyndin sýnir Restricted breytingu, en raunveruleg afturköllun ætti að endurheimta umfangið og gildið sem þú skráðir í stað þess að giska á fyrri stillingu.

Að lokum, staðfestu bæði virku stefnuna og skriftina:

Get-ExecutionPolicy

Get-ExecutionPolicy -List

.\script.ps1

Windows PowerShell keyrir script.ps1 með góðum árangri og skilar Script ran successfully

Góð keyrsla skriftar staðfestir að augnabliks einkennið er leyst; athugaðu stefnulistann aftur til að staðfesta að þú hafir ekki skilið eftir víðara umfang breytt ómeðvitað.

Hvaða lagfæringu ættir þú að velja?

Staða þínMælt með upphafspunkturAf hverju
Þú niðurhalaðir eina skrift frá uppruna sem þú treystirHaltu RemoteSigned og notaðu Unblock-File eftir yfirferðBreytir trausti fyrir eina skrá í stað allra skrifta
Þú þarft skriftir aðeins í núverandi villuleitarsetuProcess RemoteSignedLokar með setunni og heldur internet-uppruna takmörkunum
Þú skrifar og keyrir reglulega þínar eigin skriftirCurrentUser RemoteSignedVaranlegur þægindi fyrir einn notanda án þess að hafa áhrif á alla á tölvunni
Þú stjórnar deildri vinnustöðMeta LocalMachine RemoteSigned eða stofnun stefnuSamræmd hegðun fyrir alla notendur, en meiri áhrif
Fyrirtækið þitt krefst útgefanda-stýrðra skriftaAllSigned í gegnum undirritunar- og stefnuferli stofnunarinnarSamræmd undirritunarkrafa á kostnað undirritunarbyrði
Uppsetningarforrit eða stýrt sjálfvirkni kerfi hefur sitt eigið öryggislíkanÍhugaðu process-umfang BypassHannað fyrir stýrðar hýsingar aðstæður; forðastu að gera það afslappað varanlegt sjálfgefið
MachinePolicy eða UserPolicy er skilgreintFylgdu IT eða Group PolicyStaðbundnar umfangsbreytingar eru ekki rétt heimild

Algengar villur sem skapa stærra vandamál en upprunalega villan

  • Að stilla Unrestricted eða Bypass varanlega bara til að fá eina skrift til að keyra. Þetta víkkar hvað getur keyrt þegar þrengri Process, CurrentUser eða skráartengd breyting gæti leyst vandamálið.
  • Að keyra hverja skipun sem Administrator. CurrentUser og Process breytingar þurfa ekki LocalMachine stefnubreytingu.
  • Að hunsa Group Policy. Ef tækið er stýrt, gæti stefnan verið meðvituð og staðbundin breyting á öðru umfangi kemur ekki í stað stofnunarstjórnunar.
  • Að opna skrift án þess að lesa hana. Unblock-File fjarlægir internet-uppruna blokkunina; það staðfestir ekki kóðann.
  • Að gera ráð fyrir að undirrituð skrift sé sjálfkrafa skaðlaus. Microsoft tekur fram að undirritaður kóði getur samt verið illgjarn; undirritanir staðfesta útgefanda og heilleikaupplýsingar, ekki tryggingu fyrir öruggri hegðun.
  • Að gleyma hvaða umfangi þú breyttir. Skipun án -Scope getur haft áhrif á LocalMachine, en Process breyting hverfur við útgöngu.

Í stuttu máli

Fyrir flesta persónulega Windows skriftun, er CurrentUser RemoteSigned sanngjörn varanleg valkostur þegar þú keyrir reglulega staðbundið búna skriftir, en Unblock-File er þrengri valkostur fyrir eina yfirfarða skrift niðurhalaða af internetinu. Fyrir tímabundna villuleitarsetu, lágmarkar Process RemoteSigned varanleika. Bypass hefur lögmætt hlutverk í stýrðri sjálfvirkni, en viðskipti þess er að execution policy blokkun og viðvaranir eru fjarlægðar fyrir það ferli. Á stýrðum tölvum, ætti Group Policy að vera treated sem heimild frekar en hindrun til að komast framhjá.

Besta lagfæringin er því ekki ein stefna fyrir alla. Hún er minnsta umfangið og minnst leyfilega hegðunin sem styður samt áreiðanlegu skriftina sem þú þarft að keyra.

Skildu eftir athugasemd

Hvernig á að laga SSL-vottorðavandamál: Get ekki fengið staðvært útgefandavottorð í Git

Hvernig á að laga SSL-vottorðavandamál: Get ekki fengið staðvært útgefandavottorð í Git

Lagaðu Git-villuna „get ekki fengið staðvært útgefandavottorð“ með því að auðkenna traustbakendann, setja upp rétta CA-keðju og halda SSL-staðfestingu virkri.

Hvernig á að laga MongoDB net-tímamótavillu í Mongoose tengingu

Hvernig á að laga MongoDB net-tímamótavillu í Mongoose tengingu

Lagaðu MongoDB net-tímamótavillur í Mongoose með því að auðkenna tegund tímamóts, prófa aðgengi við Atlas eða TCP, leiðrétta URI og stilla tímamót aðeins þegar rétt er.

Hvernig á að laga Execution Policy Restricted villu í Windows PowerShell

Hvernig á að laga Execution Policy Restricted villu í Windows PowerShell

Lagaðu PowerShell execution policy Restricted villuna með því að athenda umfang og Group Policy, og velja síðan RemoteSigned, Unblock-File eða tímabundna valkost fyrir setu.

Hvernig á að laga npm ERR! code ERESOLVE Peer Dependency Conflict

Hvernig á að laga npm ERR! code ERESOLVE Peer Dependency Conflict

Lagaðu npm ERESOLVE peer dependency conflicts með því að auðkenna ósamhæfða pakkaröð, stilla útgáfur, nota npm explain og npm ls, og meðhöndla legacy-peer-deps eða force eingöngu sem stýrðar varalausnir.

Hvernig á að laga Redis-tengivillu við 127.0.0.1:6379

Hvernig á að laga Redis-tengivillu við 127.0.0.1:6379

Lagaðu villur þar sem Redis-tenging er hafnað á 127.0.0.1:6379 með því að athuga netþjóninn, port, Docker-netkerfi, redis.conf, auðkenningu og TLS.

Hvernig á að laga innri villu 500 í Next.js Server Components

Hvernig á að laga innri villu 500 í Next.js Server Components

Lagaðu 500-villur í Next.js Server Components með því að rekja server-logga, athuga gagnainnsóknir og umhverfisbreytur, meðhöndla villur og staðfesta framleiðslubygginguna.

Hvernig á að laga Kubernetes CrashLoopBackOff í staðbundnu Minikube

Hvernig á að laga Kubernetes CrashLoopBackOff í staðbundnu Minikube

Greinið og lagaðu Kubernetes CrashLoopBackOff í staðbundnu Minikube með því að athuga ástand poods, fyrri atvikaskrár, útgáfurök, prófanir, stillingar, minnisþak og heilsufar klusters.

Hvernig á að laga Docker Desktop Engine Stopped á Windows 11

Hvernig á að laga Docker Desktop Engine Stopped á Windows 11

Lagaðu Docker Desktop Engine Stopped á Windows 11 með því að athuga Docker stöðu, uppfæra og endurræsa WSL 2, staðfesta sýndarvæðingu og nota greiningu áður en núllstilling er framkvæmd.

Hvernig á að laga Uncaught ReferenceError: process is not defined í Vite

Hvernig á að laga Uncaught ReferenceError: process is not defined í Vite

Lagaðu villuna „process is not defined“ í Vite með því að skipta út Node-stíls notkun á process.env, stilla VITE_ breytur rétt og athuga háðir.

Hvernig á að laga „PyTorch CUDA Out of Memory“ villur við þjálfun líkana

Hvernig á að laga „PyTorch CUDA Out of Memory“ villur við þjálfun líkana

Lagaðu PyTorch CUDA minnisvillur með gagnlegri vinnuaðferð: mæltu GPU-minni, minnkaðu virka vinnusett, notaðu AMP og safnaðarstuðla, geymdu virkjunarpunkta og stilltu minnisstýringu aðeins ef þörf krefur.