Vra

Ek het 'n eenvoudige joernaal lêer as 'n PowerShell script, en ek kry foute wanneer hulle hardloop.

Dit is in 'n skrifte gids in my pad.

Cannot be loaded because the execution of scripts is disabled on this system. 
please see "get-help about-signing".

Ek kyk in die help, maar dit is minder as nuttig.

Was dit nuttig?

Oplossing

Dit kan PowerShell se verstek sekuriteit vlak, wat (IIRC) wees sal net onderteken skrifte loop.

Tik hierdie:

set-executionpolicy remotesigned

Dit sal PowerShell vertel plaaslike (dit is, op 'n plaaslike aandrywer) unsigned skrifte uit te voer om voorsiening te maak.

Probeer dan die uitvoering van jou script weer.

Ander wenke

Jy moet Set-ExecutionPolicy loop:

Set-ExecutionPolicy Restricted <-- Will not allow any powershell scripts to run.  Only individual commands may be run.

Set-ExecutionPolicy AllSigned <-- Will allow signed powershell scripts to run.

Set-ExecutionPolicy RemoteSigned <-- Allows unsigned local script and signed remote powershell scripts to run.

Set-ExecutionPolicy Unrestricted <-- Will allow unsigned powershell scripts to run.  Warns before running downloaded scripts.

Set-ExecutionPolicy Bypass <-- Nothing is blocked and there are no warnings or prompts.

Gebruik:

Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

Gebruik altyd die bogenoemde opdrag om in staat te stel om die uitvoering van PowerShell in die huidige sessie.

Ek was in staat om hierdie fout te omseil deur 'n beroep PowerShell soos volg:

powershell -executionpolicy bypass -File .\MYSCRIPT.ps1

Dit is, ek die -executionpolicy bypass by die manier waarop ek drie maande die script.

Dit werk op Windows 7 Service Pack 1. Ek is nuut op PowerShell, so daar kon wees voorbehoude om te doen wat ek is nie bewus van.

[wysig 2017/06/26] Ek het voortgegaan om hierdie tegniek op ander stelsels, insluitend Windows 10 en Windows 2012 R2 sonder kwessie te gebruik.

Hier is wat ek nou met behulp van. Dit hou my per ongeluk loop die script deur daarop te klik. Toe ek loop dit in die skeduleerder Ek voeg een argument: "skeduleerder" en dat verbypaaie die vinnige

.

Dit pouses ook die venster aan die einde so kan ek die uitset van PowerShell sien.

if NOT "%1" == "scheduler" (
   @echo looks like you started the script by clicking on it.
   @echo press space to continue or control C to exit.
   pause
)

C:
cd \Scripts

powershell -executionpolicy bypass -File .\rundps.ps1

set psexitcode=%errorlevel%

if NOT "%1" == "scheduler" (
   @echo Powershell finished.  Press space to exit.
   pause
)

exit /b %psexitcode%
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

Die bogenoemde opdrag vir my gewerk het, selfs wanneer die volgende fout gebeur:

Access to the registry key 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell' is denied.

Ook is dit die moeite werd om te weet wat jy nodig het kan tot .\ sluit in die voorkant van die naam script. Byvoorbeeld:

.\scriptname.ps1

Die opdrag set-executionpolicy unrestricted sal toelaat dat enige script wat jy maak om te hardloop as die aangemeld gebruiker. Net seker wees dat die executionpolicy opstel terug na onderteken met behulp van die set-executionpolicy signed opdrag voor te meld uiteengesit.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top