Ha olyan PowerShell-skriptet próbál futtatni, amelyet nem egy megbízható kiadó írt alá, a következő biztonsági hibát kaphatja:
“script.ps1 :A path\script.ps1 fájl nem tölthető be. A path\script.ps1 fájl nincs digitálisan aláírva. Ezt a parancsfájlt nem lehet futtatni az aktuális rendszeren.”

Ez a biztonsági hiba akkor fordulhat elő, ha a PowerShell futtatási házirendje Allsigned vagy Remotesigned értékre van állítva, és a parancsfájl nincs aláírva.

Allsigned futtatási házirend minden olyan Powershell parancsfájl végrehajtását lehetővé teszi, amely alá van írva. A parancsfájl végrehajtása előtt a rendszer kéri, hogy erősítse meg, hogy megbízik a parancsfájlt aláíró kiadóban.

A távoli végrehajtás házirend korlátozza a letöltött, alá nem írt parancsfájlok végrehajtását. A helyi számítógépről végrehajtott szkripteket nem kell aláírni.

megoldás

A hiba kiküszöbölésére különböző módszerek állnak rendelkezésre. Választhat, hogy vagy aláírja a PowerShell szkriptet, megváltoztatja a végrehajtási házirendet, megkerüli a házirendet, vagy feloldja a blokkolást, hogy a fájl egyszer futtatható legyen az adott munkamenetben.

Futtatási házirend ellenőrzése

Először is ellenőrizze a végrehajtási házirendet a Get-ExecutionPolicy

PS C:\> Get-ExecutionPolicyAllSigned

A Get-ExecutionPolicy cmdlet lista paramétere megadja az egyes hatókörökre vonatkozó végrehajtási házirendet.

PS C:\> Get-ExecutionPolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser Undefined LocalMachine RemoteSigned

A Windows 2012 R2 kivételével minden Windows verzió alapértelmezett végrehajtási házirendje Restricted. A Windows 2012 R2 alapértelmezett végrehajtási házirendje a RemoteSigned.

A végrehajtási házirend végleges módosítása

A legegyszerűbb, de nem biztonságos módszer a hibaüzenet megszüntetésére az ExecutionPolicy módosítása a SetExecutionPolicy cmdlet segítségével. A következő parancs a végrehajtási házirendet korlátlanra állítja be.

PS C:\> Set-ExecutionPolicy unrestricted

Nyomja meg az Y gombot a módosítás megerősítéséhez, amikor a rendszer kéri. A házirend módosítása frissül a rendszerleíró adatbázisban, és mindaddig érvényben marad, amíg újra meg nem változtatja.

A végrehajtási házirend ideiglenes módosítása

A végrehajtási házirend végleges módosítása helyett beállíthat egy másik házirendet egyetlen PowerShell munkamenethez. Ez a powershell.exe

A parancssor vagy a PowerShell megnyitásával és a parancs futtatásával érhető el:

C:\> powershell.exe -executionpolicy -bypass

A fenti parancs megnyit egy PowerShell munkamenetet, amelynek végrehajtási házirendje Bypass értékre van állítva, ami azt jelenti, hogy semmi sem lesz blokkolva.

Letöltött fájl blokkolásának feloldása

Ha a végrehajtási házirend RemoteSigned, akkor az internetről (vagy e-mailből) letöltött fájlok blokkolva vannak a nem biztonságos szkriptek futtatásának védelme érdekében. Ha bízik abban, hogy a parancsfájl tartalma biztonságos, akkor az Unblock-File parancsikonnal

PS C:\> Unblock-File -Path C:\Downloads\script1.ps1

Ha véglegesen vagy ideiglenesen megváltoztatta a végrehajtási házirendet egy munkamenet vagy egy adott parancsfájl számára, akkor folytathatja a parancsfájl futtatását, de előtte győződjön meg arról, hogy a parancsfájl tartalma nem károsítja a számítógépét

.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.