|
![]() |
|
|||||||
![]() |
ICT-Hotlist ThemaVerlaag het beveiligingsniveau om lokale PowerShell scripts uit te voerenWanneer U bijvoorbeeld het PowerShell script "C:\test\HelloWorld.ps1" [bekijk hier] wenst uit te voeren maar U krijgt steeds volgende foutboodschap:
PS C:\test> .\HelloWorld.ps1
Dan moet U op Uw Windows XP, Vista, Windows 7, Windows 8, Server 2003, Server 2008 (r2) en Server 2012 (r2)
het standaard beveiligingsniveau verlagen voor PowerShell. De PowerShell script beveiligingsinstelling heet "execution
policy" en standaard staat deze op "
Restricted". Hierdoor zal PowerShell
geen enkel script uitvoeren.
File C:\test\HelloWorld.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "g et-help about_signing" for more details. At line:1 char:17 + .\HelloWorld.ps1 <<<< + CategoryInfo : NotSpecified: (:) [], PSSecurityException + FullyQualifiedErrorId : RuntimeException Methode 1. Aanpassen binnen PowerShellControleHoe kunt U het huidige "execution policy" niveau tonen? Open de PowerShell commando prompt en type het volgende en druk ENTER
Get-ExecutionPolicy
Het standaard resultaat is:
Restricted
Aanpassen
Om de PowerShell scripts werkend te krijgen op Uw desktop of server moet U de execution policy aanpassen naar " RemoteSigned". Hierdoor kunnen alleen lokale PowerShell scripts uitgevoerd worden op de computer. Scripts die van het internet worden gedownload en gestart, moeten ondertekend zijn (signed by a trusted publisher). U moet het volgende typen en druk op ENTER:
Set-ExecutionPolicy RemoteSigned
U ziet de volgende waarschuwing:
Execution Policy Change The execution policy helps protect you from scripts that you do not trust.Changing the execution policy might expose you to the security risks described in the about_Execution_Policies help topic. Do you want to change the execution policy? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y
Waarschuwing: Wanneer U de volgende foutmelding krijgt:
Controle
Set-ExecutionPolicy : Access to the registry key
'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied. Moet U de PowerShell
commando prompt starten met administratieve rechten (Run as administrator)Type het volgende en druk ENTER
Get-ExecutionPolicy
Het resultaat moet nu zijn:
RemoteSigned Nu kunt U
PowerShell scripts uitvoeren op Uw desktop or server.
Methode 2. Pas de registry aan.Een andere methode is het laden van een registry file (U moet hiervoor een administratieve gebruiker zijn):
Windows Registry Editor Version 5.00
Waarschuwing:Deze oplossing wijzigt het Windows registry. Back-up de registry voordat U deze wijzigt. Wanneer er zich toch problemen voordoen, kunt U de registry herstellen.
; This registry setting enables PowerShell to run local scripts (C)Copyright 2013 - 2025 Johan van Soest [http://www.vansoest.it]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell] "ExecutionPolicy"="RemoteSigned"
Methode 3. Configureer de security met een GPO.De PowerShell execution policy kan ook worden aangepast met een Group Policy Object (GPO). Waarschuwing, gebruik niet Uw desktop GPO's op al Uw servers. Ook moeten sommige besturingssystemen een .adm bestand laden om de correcte instelling te kunnen configureren. Zoek op het internet naar de .adm file en het komplete GPO pad. GPO beheer behoort niet tot de scope van deze tip.TestenWanneer U na deze aanpassing het script "C:\test\HelloWorld.ps1" opnieuw runt, dan verschijnt er de correcte output:
PS C:\test> .\HelloWorld.ps1
Hello World, Johan van Soest wishes you : Good evening! |