a PowerShell nem digitálisan aláírt hiba gyakran kiváltja, miközben a felhasználók PowerShell szkripteket futtatnak. Ez általában a PowerShell végrehajtási Házirendjéhez beállított értékek miatt történik.
Szerverkezelési szolgáltatásaink részeként segítünk ügyfeleinknek a windows rendszerrel kapcsolatos hibák rendszeres javításában.
beszéljünk ma a hiba lehetséges okairól és javításáról.
mi az a PowerShell nem digitálisan aláírt hiba?
a megbízható Kiadó által nem aláírt PowerShell-parancsfájl futtatása közben a felhasználók gyakran “a PowerShell nincs digitálisan aláírva” biztonsági hibát látnak az alábbiak szerint:
Ez a biztonsági hiba akkor fordulhat elő, ha AllSigned vagy RemoteSigned PowerShell végrehajtási házirenddel rendelkezünk.
most beszéljünk meg néhány lehetséges módszert a hiba kijavítására.
A PowerShell javítása nem digitálisan aláírt hiba?
van néhány lehetséges módszer a hiba kijavítására. Vessünk egy pillantást mindegyikre egyenként.
végrehajtási házirend ellenőrzése és módosítása
itt az első lépés a végrehajtási házirend ellenőrzése. Futtathatjuk a Get-ExecutionPolicy parancsmagot a végrehajtási politika megszerzéséhez. A Get-ExecutionPolicy parancsmag list paramétere megadja az egyes hatókörök házirendjét.
PS C:\> Get-ExecutionPolicy -list
miután megismertük a végrehajtási házirendeket, a hibaüzenet legegyszerűbb, de nem biztonságos módja az ExecutionPolicy korlátozás nélküli megváltoztatása.
ezenkívül megváltoztathatjuk a végrehajtási házirendet a setexecutionpolicy parancsmag segítségével. A következő parancs korlátlan értékre állítja a végrehajtási házirendet:
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.
ezután frissíti a rendszerleíró adatbázis házirend-módosítását, és így marad, amíg újra meg nem változtatjuk
megkerüljük az aktuális PowerShell munkamenetet
a végrehajtási házirend ideiglenes módosításához használhatjuk a Set-ExecutionPolicy parancsmagot ByPass beállítással.
Set-ExecutionPolicy -Scope Process -ExecutionPolicy ByPass
Ez a fenti egyszerű parancs a végrehajtási házirendet úgy állítja be, hogy megkerülje az aktuális PowerShell munkamenetet. Miután bezárjuk ezt a PowerShell munkamenetet, elveszíti ezeket a beállításokat.
az ExecutionPolicy paraméter elfogadható értékei
Az alábbiakban bemutatjuk az-ExecutionPolicy paraméter elfogadható értékeit:
- Korlátozott. Nem tölt be konfigurációs fájlokat vagy parancsfájlokat. A korlátozott az alapértelmezett végrehajtási házirend.
- AllSigned. Egy megbízható kiadónak alá kell írnia az összes szkriptet és konfigurációs fájlt, beleértve azokat a parancsfájlokat is, amelyeket a helyi számítógépen írunk.
- RemoteSigned. Egy megbízható kiadónak alá kell írnia az internetről letöltött összes szkriptet és konfigurációs fájlt.
- korlátlan. Betölti az összes konfigurációs fájlt és futtatja az összes szkriptet. Engedélyt kér, ha az internetről letöltött aláíratlan szkriptet futtatjuk.
- Bypass. Nem blokkol semmit, és nincsenek figyelmeztetések vagy utasítások.
- nem definiált. Eltávolítja a jelenleg hozzárendelt végrehajtási házirendet az aktuális hatókörből. Ez a paraméter nem távolítja el a csoportházirend-hatókörben beállított végrehajtási házirendet.
a Set-ExecutionPolicy parancs alapértelmezett hatóköre a LocalMachine. A házirend hatókörét a-Scope paraméter hozzáadásával is megadhatjuk. Például néhány beállítható hatókör a következőket tartalmazza:
- folyamat: a végrehajtási házirend csak az aktuális PowerShell-folyamatot érinti.
- CurrentUser: a végrehajtási házirend csak az aktuális felhasználót érinti.
- LocalMachine: a végrehajtási házirend a számítógép összes felhasználóját érinti.
továbbá egy végrehajtási házirend eltávolításához egy adott hatókörből állítsa az adott hatókör végrehajtási házirendjét meghatározatlan értékre.
A letöltött fájl Blokkolásának feloldása
a RemoteSignedExecution házirend esetén írja alá az internetről vagy egy megbízható Kiadó e-mailjeiből letöltött összes szkriptet és konfigurációs fájlt.
ha bízunk benne, hogy a parancsfájl tartalma biztonságos, akkor feloldhatjuk a munkamenet futtatásához az Unblock-File parancsmag segítségével:
PS C:> Unblock-File -Path C:Downloadsscript1.ps1
következtetés
röviden, A PowerShell nincs digitálisan aláírva biztonsági hiba léphet fel, ha a PowerShell végrehajtási házirendje AllSigned vagy RemoteSigned értékre van állítva. Ma láttuk, hogy támogató mérnökeink hogyan javítják ezt a hibát.