Megosztás a következőn keresztül:


Set-ExecutionPolicy

Beállítja a PowerShell végrehajtási szabályzatait Windows rendszerű számítógépeken.

Syntax

All

Set-ExecutionPolicy
    [-ExecutionPolicy] <ExecutionPolicy>
    [[-Scope] <ExecutionPolicyScope>]
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

A Set-ExecutionPolicy parancsmag módosítja a Windows rendszerű számítógépek PowerShell-végrehajtási szabályzatait. További információért lásd az about_Execution_Policies részt .

A végrehajtási szabályzat a PowerShell biztonsági stratégiájának része. A végrehajtási szabályzatok határozzák meg, hogy betölthetők-e konfigurációs fájlok, például a PowerShell-profil vagy futtathatók-e szkriptek. És azt is, hogy a szkripteket a futtatás előtt digitálisan alá kell-e írni.

A Set-ExecutionPolicy parancsmag alapértelmezett hatóköre a LocalMachine, amely a számítógépet használó összes felhasználóra hatással van. A LocalMachine végrehajtási szabályzatának módosításához indítsa el a PowerShellt a Futtatás rendszergazdaként paranccsal.

Az egyes hatókörök végrehajtási szabályzatainak az elsőbbségi sorrendben való megjelenítéséhez használja a Get-ExecutionPolicy -List. A PowerShell-munkamenet érvényes végrehajtási szabályzatának megtekintéséhez használja a Get-ExecutionPolicy paraméterek nélkül.

Példák

1. példa: Végrehajtási szabályzat beállítása

Ez a példa bemutatja, hogyan állíthatja be a végrehajtási szabályzatot a helyi számítógépen.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser    RemoteSigned
 LocalMachine    RemoteSigned

A Set-ExecutionPolicy parancsmag a ExecutionPolicy paraméter használatával adja meg a RemoteSigned szabályzatot. A Hatókör paraméter adja meg az alapértelmezett hatókörértéket, LocalMachine. A végrehajtási szabályzat beállításainak megtekintéséhez használja a Get-ExecutionPolicy parancsmagot a Lista paraméterrel.

2. példa: Csoportházirenddel ütköző végrehajtási szabályzat beállítása

Ez a parancs megkísérli a LocalMachine hatókör végrehajtási szabályzatát Korlátozott értékre állítani. A LocalMachine korlátozóbb, de nem a hatályos szabályzat, mert ütközik a csoportházirenddel. A korlátozott szabályzat a rendszerleíró struktúrába HKEY_LOCAL_MACHINE íródik.

PS> Set-ExecutionPolicy -ExecutionPolicy Restricted -Scope LocalMachine

Set-ExecutionPolicy : PowerShell updated your local preference successfully, but the setting is
overridden by the Group Policy applied to your system. Due to the override, your shell will retain
its current effective execution policy of "AllSigned". Contact your Group Policy administrator for
more information. At line:1 char:20 + Set-ExecutionPolicy <<<< restricted

PS> Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds

    Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds

Name                    Property
----                    --------
Microsoft.PowerShell    Path            : C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
                        ExecutionPolicy : Restricted
ScriptedDiagnostics     ExecutionPolicy : Unrestricted

A Set-ExecutionPolicy parancsmag az ExecutionPolicy paraméterrel adja meg a korlátozott szabályzatot. A Hatókör paraméter adja meg az alapértelmezett hatókörértéket, LocalMachine. A Get-ChildItem parancsmag a Path paramétert használja a HKLM-szolgáltatóval a beállításjegyzék helyének megadásához.

3. példa: A végrehajtási szabályzat alkalmazása távoli számítógépről egy helyi számítógépre

Ez a parancs lekéri a végrehajtási szabályzat objektumát egy távoli számítógépről, és beállítja a házirendet a helyi számítógépen. Get-ExecutionPolicy küld egy Microsoft.PowerShell.ExecutionPolicy objektumot a folyamaton. Set-ExecutionPolicy elfogadja a folyamatbemenetet, és nem igényel ExecutionPolicy paramétert.

PS> Invoke-Command -ComputerName Server01 -ScriptBlock { Get-ExecutionPolicy } | Set-ExecutionPolicy

A Invoke-Command parancsmag végrehajtása a helyi számítógépen történik, és elküldi a ScriptBlock a távoli számítógépre. A ComputerName paraméter határozza meg a távoli számítógépet, Server01. A ScriptBlock paraméter Get-ExecutionPolicy fut a távoli számítógépen. A Get-ExecutionPolicy objektumot a rendszer elküldi a folyamaton a Set-ExecutionPolicy. Set-ExecutionPolicy alkalmazza a végrehajtási szabályzatot a helyi számítógép alapértelmezett hatókörére, a LocalMachine-re.

4. példa: Végrehajtási szabályzat hatókörének beállítása

Ez a példa bemutatja, hogyan állíthat be végrehajtási szabályzatot egy adott hatókörhöz, a CurrentUser számára. A CurrentUser hatókör csak a hatókört beállító felhasználóra van hatással.

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope CurrentUser
Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       AllSigned
 LocalMachine    RemoteSigned

Set-ExecutionPolicy Az ExecutionPolicy paraméterrel adja meg az AllSigned szabályzatot. A Scope paraméter adja meg a CurrentUser értéket. A végrehajtási szabályzat beállításainak megtekintéséhez használja a Get-ExecutionPolicy parancsmagot a Lista paraméterrel.

A felhasználó hatályos végrehajtási szabályzata AllSigned lesz.

5. példa: Az aktuális felhasználó végrehajtási szabályzatának eltávolítása

Ez a példa bemutatja, hogyan távolíthatja el a nem definiált végrehajtási szabályzatot egy adott hatókör végrehajtási szabályzatával.

Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
Get-ExecutionPolicy -List
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       Undefined
  CurrentUser       Undefined
 LocalMachine    RemoteSigned

Set-ExecutionPolicy az ExecutionPolicy paraméterrel adja meg a nem definiált szabályzatot. A Scope paraméter adja meg a CurrentUser értéket. A végrehajtási szabályzat beállításainak megtekintéséhez használja a Get-ExecutionPolicy parancsmagot a Lista paraméterrel.

6. példa: Az aktuális PowerShell-munkamenet végrehajtási szabályzatának beállítása

A Folyamat hatóköre csak az aktuális PowerShell-munkamenetre van hatással. A végrehajtási szabályzat a $env:PSExecutionPolicyPreference környezeti változóban lesz mentve, és a munkamenet bezárásakor törlődik.

Set-ExecutionPolicy -ExecutionPolicy AllSigned -Scope Process
        Scope ExecutionPolicy
        ----- ---------------
MachinePolicy       Undefined
   UserPolicy       Undefined
      Process       AllSigned
  CurrentUser    RemoteSigned
 LocalMachine    RemoteSigned

Az Set-ExecutionPolicyExecutionPolicy paraméterrel adja meg az AllSigned szabályzatot. A Scope paraméter a Process értéket adja meg. A végrehajtási szabályzat beállításainak megtekintéséhez használja a Get-ExecutionPolicy parancsmagot a Lista paraméterrel.

7. példa: Szkript blokkolásának feloldása a futtatáshoz a végrehajtási szabályzat módosítása nélkül

Ez a példa bemutatja, hogy a RemoteSigned végrehajtási szabályzata hogyan akadályozza meg az aláíratlan szkriptek futtatását.

Ajánlott eljárás a szkript kódjának elolvasása és annak ellenőrzése, hogy biztonságos-e , mielőtt a Unblock-File parancsmagot használnánk. A Unblock-File parancsmag feloldja a szkriptek letiltását, így futtathatók, de nem módosítja a végrehajtási szabályzatot.

PS> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

.\Start-ActivityTracker.ps1 : File .\Start-ActivityTracker.ps1 cannot be loaded.
The file .\Start-ActivityTracker.ps1 is not digitally signed.
The script will not execute on the system.
For more information, see about_Execution_Policies at https://go.microsoft.com/fwlink/?LinkID=135170.
At line:1 char:1
+ .\Start-ActivityTracker.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess

PS> Unblock-File -Path .\Start-ActivityTracker.ps1

PS> Get-ExecutionPolicy

RemoteSigned

PS> .\Start-ActivityTracker.ps1

Task 1:

A Set-ExecutionPolicy a ExecutionPolicy paraméter használatával adja meg a RemoteSigned szabályzatot. A házirend az alapértelmezett hatókörhöz van beállítva, LocalMachine.

A Get-ExecutionPolicy parancsmag azt mutatja, hogy RemoteSigned az aktuális PowerShell-munkamenet tényleges végrehajtási szabályzata.

A Start-ActivityTracker.ps1 szkript az aktuális könyvtárból lesz végrehajtva. A szkriptet RemoteSigned blokkolja, mert a szkript nincs digitálisan aláírva.

Ebben a példában a szkript kódját átvizsgálták, és biztonságosnak bizonyult. A Unblock-File parancsmag a Path paramétert használja a szkript letiltásának feloldásához.

Annak ellenőrzéséhez, hogy Unblock-File nem módosította-e a végrehajtási szabályzatot, Get-ExecutionPolicy megjeleníti az érvényes végrehajtási szabályzatot, RemoteSigned.

A Start-ActivityTracker.ps1 szkript az aktuális könyvtárból lesz végrehajtva. A szkript azért kezd el futni, mert a Unblock-File parancsmag feloldotta.

Paraméterek

-Confirm

Megerősítést kér a parancsmag futtatása előtt.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Cf

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-ExecutionPolicy

A végrehajtási szabályzatot adja meg. Ha nincsenek csoportházirendek, és az egyes hatókörök végrehajtási szabályzata Nincs definiált, akkor a Korlátozott lesz az összes felhasználó érvényes szabályzata.

Az elfogadható végrehajtási szabályzatértékek a következők:

  • AllSigned. Megköveteli, hogy az összes szkriptet és konfigurációs fájlt megbízható közzétevő írja alá, beleértve a helyi számítógépen írt szkripteket is.
  • Megkerülés. Semmi sem blokkolva, és nincsenek figyelmeztetések vagy kérések.
  • Alapértelmezett Beállítja az alapértelmezett végrehajtási szabályzatot. Korlátozott Windows-ügyfelek vagy RemoteSigned Windows-kiszolgálók esetén.
  • RemoteSigned. Megköveteli, hogy az internetről letöltött összes szkriptet és konfigurációs fájlt megbízható közzétevő írja alá. A Windows server számítógépek alapértelmezett végrehajtási szabályzata.
  • Korlátozott. Nem tölt be konfigurációs fájlokat, és nem futtat szkripteket. Az alapértelmezett végrehajtási házirend Windows-ügyfélszámítógépek.
  • Nincs definiálva. A hatókörhöz nincs végrehajtási szabályzat beállítva. Eltávolít egy hozzárendelt végrehajtási szabályzatot egy olyan hatókörből, amelyet nem csoportházirend állított be. Ha a végrehajtási szabályzat az összes hatókörben Nincs meghatározva, a hatályos végrehajtási szabályzat Korlátozott.
  • Korlátlan. Betölti az összes konfigurációs fájlt, és futtatja az összes szkriptet. Ha az internetről letöltött, aláíratlan parancsfájlt futtat, a futtatás előtt engedélyt kér a program.

Paramétertulajdonságok

Típus:ExecutionPolicy
Alapértelmezett érték:None
Elfogadott értékek:AllSigned, Bypass, Default, RemoteSigned, Restricted, Undefined, Unrestricted
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Force

Letiltja az összes megerősítési kérést. A váratlan eredmények elkerülése érdekében körültekintően használja ezt a paramétert.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Scope

Meghatározza a végrehajtási szabályzat által érintett hatókört. Az alapértelmezett hatókör a LocalMachine.

A tényleges végrehajtási szabályzatot az alábbi sorrend határozza meg:

  • Gépi szabályzat. Csoportházirend szerint állítsa be a számítógép összes felhasználója számára.
  • Felhasználói irányelvek. A számítógép jelenlegi felhasználója számára csoportházirend által beállítva.
  • folyamat. Csak az aktuális PowerShell-munkamenetre van hatással.
  • CurrentUser. Csak az aktuális felhasználót érinti.
  • LocalMachine. Alapértelmezett hatókör, amely a számítógép összes felhasználóját érinti.

A Folyamat hatóköre csak az aktuális PowerShell-munkamenetre van hatással. A végrehajtási szabályzat a beállításjegyzék helyett a környezeti változóba $env:PSExecutionPolicyPreferencelesz mentve. A PowerShell-munkamenet bezárásakor a változó és az érték törlődik.

A CurrentUser hatókör végrehajtási szabályzatai a rendszerleíró struktúrába HKEY_LOCAL_USER vannak írva.

A LocalMachine hatókör végrehajtási szabályzatai a rendszerleíró struktúra HKEY_LOCAL_MACHINE lesznek írva.

Paramétertulajdonságok

Típus:ExecutionPolicyScope
Alapértelmezett érték:LocalMachine
Elfogadott értékek:CurrentUser, LocalMachine, MachinePolicy, Process, UserPolicy
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

-WhatIf

Megjeleníti, mi történne, ha a parancsmag futna. A parancsmag nem fut.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:False
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Wi

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

Microsoft.PowerShell.ExecutionPolicy, System.String

A végrehajtási szabályzat nevét tartalmazó végrehajtási házirend-objektumot vagy sztringet átirányíthatja a következőre: Set-ExecutionPolicy.

Kimenetek

None

Set-ExecutionPolicy nem ad vissza semmilyen kimenetet.

Jegyzetek

Set-ExecutionPolicy nem módosítja a MachinePolicy és a UserPolicy hatókört, mert azokat a csoportházirendek állítják be.

Set-ExecutionPolicy nem bírálja felül a csoportházirendet, még akkor sem, ha a felhasználói beállítások szigorúbbak, mint a szabályzat.

Ha a Parancsfájl végrehajtásának bekapcsolása csoportházirend engedélyezve van a számítógépen vagy a felhasználón, a felhasználói beállítás mentésre kerül, de nem érvényes. A PowerShell egy üzenetet jelenít meg, amely ismerteti az ütközést.