Weboldal keresés

A PowerShell Script javítása nem tölthető be, mert a szkriptek futtatása le van tiltva ennél a rendszerhibánál


Probléma: „Nem lehet betölteni, mert a szkriptek le vannak tiltva ezen a rendszeren” hibaüzenet!

Amikor megpróbáltam futtatni egy PowerShell-szkriptet a PowerShell-konzolról, ezt a hibaüzenetet kaptam: „A C:\temp\GenerateRpt.ps1 fájl nem tölthető be, mert a szkriptek futtatása le van tiltva ezen a rendszeren. További információért tekintse meg az about_Execution_Policies webhelyet a https://go.microsoft.com/fwlink/?LinkID=135170 címen.

Egyes esetekben ez egy „A fájl nincs digitálisan aláírva. Ez a szkript nem futtatható a jelenlegi rendszeren. A szkriptek futtatásával és a végrehajtási szabályzat beállításával kapcsolatos további információkért lásd: about_Execution_Policies. hiba.

Kiadó ok:

Ennek az az oka, hogy a Windows PowerShell végrehajtási házirendje úgy van beállítva, hogy megakadályozza a nem megbízható parancsfájlokat, amelyek hatással lehetnek a Windows ügyfélkörnyezetére. A végrehajtási házirendek olyan biztonsági beállítások, amelyek meghatározzák a PowerShellben futtatott parancsfájlok megbízhatósági szintjét. Az alapértelmezett végrehajtási házirend „szigorú” az ügyfél operációs rendszereken, például a Windows 10-en, megakadályozva a szkriptek futását.

A "nem tölthető be, mert a szkriptek futtatása le van tiltva ezen a rendszeren" megoldása":

Hogyan engedélyezheti a PowerShell-parancsfájlokat, és hogyan oldhatja meg a futó szkriptek letiltását ebben a rendszerhibában? A probléma megoldásához be kell állítanunk a végrehajtási házirendet a Set-ExecutionPolicy parancsmag segítségével, hogy a PowerShell-szkript fusson az adott gépen. Így engedélyezheti a PowerShell-szkript végrehajtását:

  1. Nyissa meg a PowerShell-konzolt a „Futtatás rendszergazdaként” kiválasztásával (Vagy kattintson jobb gombbal a Start menüre, és válassza a helyi menü „Windows PowerShell (Rendszergazda)” parancsát), és kérje le a végrehajtási házirendet a következő paranccsal: Get-ExecutionPolicy a jelenlegi szabályzat alkalmazásához, például a „Korlátozott”.

  2. Állítsa be a végrehajtási házirendet a következő paranccsal: Set-ExecutionPolicy RemoteSigned
  3. Írja be az „Y”-t, amikor a rendszer kéri a folytatáshoz.

Használhatja a Set-ExecutionPolicy Unrestrictedt is, hogy eltávolítson minden korlátozást a biztonsági szabályzatra vonatkozóan (azonban a RemoteSigned végrehajtási házirend ideális!). Miután módosította a végrehajtási szabályzatot, képesnek kell lennie a szkriptek futtatására anélkül, hogy megjelenik a „A szkriptek futtatása ezen a rendszeren le van tiltva” hibaüzenet.

A RemoteSigned házirend megköveteli, hogy az internetről származó parancsfájlokat és konfigurációs fájlokat egy megbízható kiadónak alá kell írnia. A színfalak mögött beállítja a beállításkulcsot: HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell. A házirend-paraméter az alábbi értékeket veszi fel:

  • Korlátozott - Nem engedélyezett a szkript
  • Korlátlan - bármilyen szkriptet futtathat, nincs szükség aláírásra.
  • RemoteSigned - teszt, fejlesztői környezetekhez jó. Csak az internetről származó fájlokat kell aláírni. Ez az alapértelmezett beállítás a szervereken.
  • AllSigned - helyi vagy távoli szkript - megbízható kiadónak kell aláírnia.

Mi van, ha nem tudja beállítani a végrehajtási házirendet a PowerShell rendszergazdaként való futtatásával?

Az aktuális felhasználói hatókör végrehajtási szabályzatának beállításához használja a következőket:


Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Az alapértelmezett hatókör a „LocalMachine”, amely beállítja a házirendet az aktuális gép összes felhasználója számára.

A végrehajtási szabályzat ideiglenes megkerülése egy munkamenethez

A végrehajtási szabályzatot csak egyszeri munkamenetre is megkerülheti. A parancssorba írja be: PowerShell -ExecutionPolicy Bypass

A PowerShell ablak bezárása után az aktuális PowerShell-munkamenet véget ér, és a Bypass is bezárul vele. Ez lehetővé teszi egy PowerShell-szkript ideiglenes futtatását, miközben megtartja az ExecutionPolicy beállításait az összes többi PowerShell-munkamenethez. A parancsfájl tartalmát a PowerShell-konzolba is másolhatja és beillesztheti a végrehajtási házirend megkerüléséhez.

Mit szólna a szkript futtatásához a PowerShell ISE-ben?

Megkerülheti a végrehajtási szabályzatot a szkript egy blokkjának kiválasztásával, majd az F8 (kijelölés futtatása) billentyű lenyomásával.

Használja a Csoportházirend-objektumot több számítógép végrehajtási házirendjének beállításához

Ha több számítógépen szeretné módosítani a végrehajtási házirendet, használhatja a csoportházirendet a tartományvezérlőben. Íme, hogyan:

  1. Nyissa meg a Csoportházirend-szerkesztőt.
  2. A „Helyi számítógépházirend” alatt lépjen a Számítógép konfigurációja >> Felügyeleti sablonok >> Windows-összetevők >> Windows PowerShell elemre.
  3. Engedélyezze a „Szkriptvégrehajtás bekapcsolása” házirendet, majd válassza ki a kívánt végrehajtási házirendet a legördülő listából, például „Helyi szkriptek és távoli aláírt szkriptek engedélyezése”, amely egyenértékű a Set-ExecutionPolicy segítségével beállított „RemoteSigned” tulajdonsággal. parancs.

Íme a Microsoft hivatkozása: Végrehajtási házirendek konfigurálása

Becsomagolás

A PowerShellben a „futó szkriptek le vannak tiltva ezen a rendszeren” hiba frusztráló lehet, de a végrehajtási házirend megváltoztatásával könnyen javítható. A végrehajtási szabályzatok megértésével és a cikkben ismertetett lépések követésével engedélyezheti a szkriptek végrehajtását, és kihasználhatja a PowerShell hatékony automatizálási képességeit.

Kapcsolódó cikkek