Dažreiz sistēma Windows neļaus jums izmantot PowerShell, atsaucoties uz opciju, kas atspējo skriptu izpildi. Lūk, kā to novērst.
Palaižat dažas komandas programmā PowerShell un pēkšņi redzat kļūdas ziņojumu, kurā teikts: "PowerShell nevar ielādēt, jo šajā sistēmā ir atspējota skriptu izpilde."
Vai vēlaties uzzināt, kas izraisa šo problēmu un kā jūs varat to atrisināt? Mēs iepazīstināsim jūs ar vienkāršām metodēm, kas var palīdzēt jums vienreiz un uz visiem laikiem atrisināt šo problēmu.
Iegremdējamies!
1. Palaidiet PowerShell administratora režīmā
Vai pašlaik izmantojat PowerShell bez atbilstošām administratora tiesībām? Ja tā, tad varbūt problēma ir tieši šeit.
Tātad, izpētīsim darbības, kas jāveic, lai palaistu rīku administratora režīmā:
- Nospiediet Win + X lai atvērtu ātrās piekļuves izvēlni.
- Izvēlieties Windows PowerShell (administrators) opciju.
Un, ja tas nepalīdz, pārbaudiet dažādi veidi, kā atvērt Windows PowerShell. Bet jums vajadzētu koncentrēties tikai uz metodēm, kas parāda, kā palaist rīku ar administratora privilēģijām.
2. Mainiet izpildes politiku programmā PowerShell
Dažos gadījumos varētu palīdzēt izpildes politikas maiņa. Taču pirms risinājumu izpētes apskatīsim, kas ir izpildes politika un kā tā darbojas.
Kas ir izpildes politika un kā tā darbojas?
Izpildes politika ir drošības līdzeklis, kas kontrolē PowerShell skriptu palaišanu savā ierīcē. Tas vienkārši nosaka, kāda veida skriptus var palaist un no kuriem vajadzētu izvairīties. Labākā daļa ir tāda, ka varat konfigurēt šo politiku atbilstoši savām vēlmēm.
Tālāk ir norādītas opcijas, kuras varat izvēlēties, konfigurējot izpildes politiku.
- Ierobežots: šī politika aizliedz palaist jebkuru PowerShell skriptu.
- Neierobežots: ļauj palaist jebkuru skriptu, bet parāda brīdinājuma ziņojumu, kad palaižat aizdomīgus skriptus.
- RemoteSigned: šai politikai ir nepieciešams ciparparaksts, kad palaižat tiešsaistē lejupielādētos skriptus. Tomēr vietējiem skriptiem nav nepieciešams paraksts.
- Apbraukt: Tas ļauj palaist jebkuru skriptu bez ierobežojumiem. Atšķirībā no politikas “Neierobežots”, “ByPass” politika nerādīs brīdinājuma ziņojumus, kad palaižat aizdomīgus skriptus. Tāpēc vienmēr piemērojiet šo politiku tikai tad, kad palaižat likumīgus skriptus.
- VissParakstīts: šī politika izpilda tikai skriptus, ko parakstījis uzticams izdevējs.
Tagad, ja regulāri izmantojat PowerShell, iespējams, vēlēsities laiku pa laikam mainīt izpildes politiku. Tomēr dažas izpildes politikas var parādīt kļūdu ziņojumus, kad palaižat PowerShell skriptus.
Piemēram, iespējojot politikas “Restricted”, “AllSigned” vai “RemoteSigned”, var tikt parādīti kļūdu ziņojumi, piemēram, kļūda “Skriptu izpilde ir atspējota”.
Lai atrisinātu problēmu, jums vienkārši ir jāmaina izpildes politika uz “Unrestricted” vai “ByPass”. Bet tas vēl nav viss; jums būs arī jāizlemj, kā šī politika ir jāievieš. Piemēram, vai vēlaties piemērot politiku visiem lietotājiem vai tikai savai pašreizējai PowerShell sesijai?
Izpētīsim visu papildu PowerShell komandas jums būs jāpievieno, mainot izpildes politiku:
- Pašreizējais lietotājs: šī politika tiks piemērota tikai visām tās personas PowerShell sesijām, kura pašlaik ir pieteikusies ierīcē.
- Vietējā mašīna: attiecas uz visiem lietotājiem, kuriem ierīcē ir konts. Šo politiku var konfigurēt tikai vietējie lietotāji, kuriem ir administratora tiesības.
- Process: attiecas tikai uz pašreizējo PowerShell sesiju. Tas nozīmē, ka, uzsākot jaunu sesiju, politika būs jāizpilda vēlreiz.
- Mašīnas politika: šī politika attiecas uz visiem lietotājiem, kuriem ir konts jūsu ierīcē. Tomēr to var konfigurēt tikai tīkla administratori, kuriem ir atbilstošas atļaujas. Taču vietējie administratori bieži vien var konfigurēt šo izpildes politiku, izmantojot vietējās grupas politikas redaktoru.
- Lietotāja politika: attiecas uz visām PowerShell sesijām un konkrēta lietotāja izpildītajiem skriptiem.
Tagad, kad viss ir skaidrs, izpētīsim, kā varat izpildīt attiecīgās politikas, lai novērstu problēmu “PowerShell nevar ielādēt”.
Kā mainīt izpildes politiku uz "Neierobežots"
Labākais veids, kā risināt šo problēmu, ir mainīt izpildes politiku uz "neierobežotu". Bet pirms tam jums jāpārbauda, kā ir konfigurēta katra izpildes politika.
Tālāk ir norādītas darbības, lai pārbaudītu, kā ir konfigurētas izpildes politikas.
- Nospiediet Win + X lai atvērtu ātrās piekļuves izvēlni.
- Izvēlieties Windows PowerShell (administrators) no opcijām.
- Ierakstiet šādu komandu un nospiediet Ievadiet:
Get-ExecutionPolicy —Saraksts
Tam vajadzētu parādīt, kā izpildes politikas ir konfigurētas dažādiem lietotājiem un sistēmām.
Lai pašreizējam aktīvajam lietotājam varētu mainīt izpildes politiku uz “Neierobežots”, ierakstiet šo komandu un nospiediet Ievadiet:
Iestatīt-Izpildes politika neierobežota -Darbības joma Pašreizējais lietotājs
Lai mainītu izpildes politiku uz “Neierobežots” visiem lietotājiem, ierakstiet šo komandu un nospiediet Ievadiet:
Iestatīt-Izpildes politika neierobežota -Darbības joma Vietējā mašīna
Kad esat pabeidzis komandas palaišanu, aizveriet PowerShell un restartējiet datoru, lai saglabātu šīs izmaiņas.
Kā mainīt izpildes politiku uz "ByPass"
"ByPass" izpildes politika ļaus bez problēmām palaist jebkuru PowerShell skriptu. Taču atcerieties, ka tas var arī ļaut palaist kļūdainus failus. Tāpēc vienmēr konfigurējiet šo izpildes politiku tikai tad, ja palaižat uzticamus PowerShell failus.
Lai mainītu izpildes politiku uz “ByPass” pašreizējam aktīvajam lietotājam, ierakstiet šo komandu un nospiediet Ievadiet:
Iestatīt-ExecutionPolicy ByPass -Darbības joma Pašreizējais lietotājs
Un, lai mainītu izpildes politiku uz “ByPass” visiem lietotājiem, ierakstiet šo komandu un nospiediet Ievadiet:
Iestatīt-ExecutionPolicy ByPass -Darbības joma Vietējā mašīna
Kad esat pabeidzis, aizveriet PowerShell un pēc tam restartējiet ierīci.
3. Mainiet izpildes politiku, izmantojot vietējo grupas politikas redaktoru
Vietējās grupas politikas redaktors (LGPE) arī ļauj viegli mainīt izpildes politiku. Faktiski šis rīks var arī palīdzēt konfigurēt dažādus sistēmas iestatījumus vai novērst daudzas datora problēmas.
Atcerieties, ka galvenais mērķis ir mainīt izpildes politiku tā, lai jūs bez problēmām varētu palaist PowerShell skriptus. Tādējādi jūs atbrīvosities no kļūdas “skriptu palaišana ir atspējota” programmā PowerShell.
Lūk, kā mainīt izpildes politiku LGPE:
- Tips Rediģēt grupas politiku izvēlnes Sākt meklēšanas joslā un atlasiet Vislabāk atbilst. Alternatīvi, pārbaudiet dažādi veidi, kā atvērt LGPE.
- Dodieties uz Datora konfigurācija > Administratīvās veidnes > Windows komponenti > Windows PowerShell.
- Veiciet dubultklikšķi uz Ieslēdziet skripta izpildi opciju.
Pārbaudiet Iespējots kaste. No turienes noklikšķiniet uz Izpildes politika nolaižamajā izvēlnē un atlasiet Atļaut vietējos skriptus un attāli parakstītus skriptus. Šī opcija ir līdzīga opcijai "RemoteSigned", ko mēs atklājām iepriekš.
Ja vēlaties palaist visus skriptus bez ierobežojumiem, izvēlieties Atļaut visus skriptus opciju nolaižamajā izvēlnē "Izpildes politika".
No turienes noklikšķiniet uz Pieteikties un pēc tam noklikšķiniet labi lai saglabātu šīs izmaiņas.
4. Mainiet izpildes politiku, izmantojot reģistra redaktoru
Ja citas metodes nepalīdzēja, mēģiniet mainīt izpildes politiku, izmantojot reģistra redaktoru. Tomēr jums jābūt uzmanīgiem, rediģējot reģistra atslēgas. Ja pielāgosit nepareizos taustiņus, jūs varat sabojāt datoru.
Tālāk ir norādīts, kā mainīt izpildes politiku, izmantojot reģistra redaktoru:
- Nospiediet Win + R lai atvērtu dialoglodziņu Palaist komandu.
- Tips Regedit un nospiediet Ievadiet lai atvērtu reģistra redaktoru.
- Kopējiet un ielīmējiet tālāk norādīto komandu adreses joslā un nospiediet Ievadiet:
HKEY_LOCAL_MACHINE\PROGRAMMATŪRA\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
Atrodiet Izpildes politika vērtību labajā pusē.
Ja vērtības trūkst, izveidojiet to, veicot šādas darbības:
- Ar peles labo pogu noklikšķiniet uz tukšas vietas labajā pusē.
- Izvēlieties Jauns > DWORD (32 bitu) vērtība.
- Nosauciet vērtību kā Izpildes politika un nospiediet Ievadiet.
Veiciet dubultklikšķi uz Izpildes politika vērtību. Tālāk ierakstiet RemoteSigned sadaļā "Vērtības dati". Tas ļaus PowerShell izpildīt vietējos un parakstītos skriptus.
Alternatīvi ierakstiet Apbraukt sadaļā "Vērtības dati". Tas ļaus PowerShell bez ierobežojumiem izpildīt jebkuru skriptu.
Pēc vēlamās vērtības ievadīšanas sadaļā "Vērtības dati" nospiediet labi lai saglabātu izmaiņas. Visbeidzot aizveriet reģistra redaktoru un pēc tam restartējiet ierīci.
Palaidiet savus PowerShell skriptus bez jebkādiem ierobežojumiem
Tas var būt diezgan nomākts, ja pēkšņi nevarat izpildīt noteiktas komandas programmā Windows PowerShell. Bet, ja saskaraties ar kļūdu “skripti ir atspējoti”, mūsu piedāvātajiem risinājumiem vajadzētu palīdzēt.
Vai PowerShell bieži rada citas problēmas? Ir arī citi risinājumi, kas var jums palīdzēt.