als je nieuw bent in de PowerShell scripttaal en wilt leren hoe je een PowerShell script uitvoert, ben je bij de juiste blogpost. Deze blog zal een tutorial over gemeenschappelijke manieren om scripts en een paar problemen die kunnen pop-up.

inhoudsopgave:

vereisten

dit artikel zal een walkthrough voor u zijn over hoe u PowerShell op uw lokale computer kunt uitvoeren. Als u wilt volgen langs, zorg ervoor dat u de volgende voorwaarden op zijn plaats voordat u begint met dit artikel.

  • een Windows 10-computer met beheerdersrechten.
  • Windows PowerShell versie 5 of hoger. Je kunt ook PowerShell v7 gebruiken. Deze tutorial zal zich richten op Windows PowerShell omdat het Windows-besturingssysteem al heeft.
  • elke tekstbewerker

die het uitvoerbeleid

behandelt als dit de eerste keer is dat u een Windows PowerShell-script probeert uit te voeren, kunt u een veelvoorkomend probleem tegenkomen. PowerShell zal waarschijnlijk een foutmelding geven waarin staat dat een script “niet kan worden geladen omdat het uitvoeren van scripts is uitgeschakeld op dit systeem”.

PS> .\GetServices.ps1 File C:\Temp\GetServices.ps1 cannot be loaded because running scripts is disabled on this system. For more information, see about_Execution_Policies at https:/go.microsoft.com/fwlink/?LinkID=135170. At line:1 char:1 .\GetServices.ps1 ~~~~~ CategoryInfo : SecurityError: (:) , PSSecurityException FullyQualifiedErrorId : UnauthorizedAccess 

PowerShell geeft de bovenstaande foutmelding wanneer u een PowerShell probeert uit te voeren met een uitvoerbeleid dat is ingesteld op Restricted, Remote Signed of All Signed.

beperkt

beperkt is het standaardbeleid voor Windows-clientcomputers. Als je PowerShell voor de eerste keer gebruikt, zou je standaard beleid waarschijnlijk zijn ingesteld om alle scripts te beperken.

u kunt nog steeds individuele commando ‘ s uitvoeren in een terminal, maar geen scriptbestand. De beperking omvat elk bestand dat eindigt op .ps1xml, .psm1 of .ps1.

Unlimited

Unlimited staat u toe om elk script uit te voeren, maar het waarschuwt u voor de uitvoering als het script wordt gedownload van het internet. Dit beleid is meestal de standaard voor alle niet-windows-apparaten.

Remote Signed

Remote Signed policy stelt u in staat om een script uit te voeren dat ofwel (A) digitaal ondertekend is of (b) een script geschreven op uw lokale computer met of zonder handtekening.

als een script van het internet wordt gedownload en niet is ondertekend, moet u het bestand deblokkeren. U kunt dit doen door met de rechtermuisknop op het bestand te klikken en eigenschappen te kiezen. U kunt ook de Unblock-File PowerShell cmdlet gebruiken voor dat specifieke scriptbestand.

het gebruik van een op afstand ondertekend beleid zou een ideale optie zijn bij het uitvoeren van een script gedownload van het internet.

all Signed

All signed vereist dat alle scripts digitaal ondertekend worden door een vertrouwde uitgever. Dit omvat de scripts gedownload van het internet en lokaal geschreven op uw computer.

het uitvoerbeleid van PowerShell wijzigen

om het uitvoerbeleid te wijzigen:

  1. Open Windows PowerShell met Run as Administrator om ervoor te zorgen dat u de hoogste rechten hebt om de beleidswijzigingen aan te brengen.
PowerShell zoeken in het menu Start
PowerShell zoeken in het menu Start

2. Voer de volgende PowerShell-opdracht uit als u deze opent om het uitvoeringsbeleid van uw computer in te stellen. Het uitvoeringsbeleid, zoals hierboven behandeld, kan een van drie verschillende types zijn. Deze tutorial gebruikt een nuttig maar toch veilig uitvoerbeleid van RemoteSigned.

aangezien deze handleiding ervan uitgaat dat u het getservices. ps1-scriptbestand van Internet hebt gedownload, stelt u het uitvoerbeleid in op RemoteSigned.

PS> Set-ExecutionPolicy RemoteSigned

het RemoteSigned execution beleid dwingt u om cryptografisch ondertekenen elk PowerShell script gedownload van het Internet voordat PowerShell zal het uitvoeren op uw systeem.

3. U zou een uitvoer moeten zien die vraagt om de actie te bevestigen. Voer Y in en druk op enter om de beleidswijziging te bevestigen.

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 at https:/go.microsoft.com/fwlink/?LinkID=135170. Do you want to change the execution policy? Yes Yes to All No No to All Suspend Help (default is "N"): 

volg op dit punt de volgende stappen om verschillende methoden te verkennen om het PowerShell-script op uw computer uit te voeren.

hoe een PowerShell-Script draaien

om het uitvoeren van een PowerShell-script te demonstreren, heb je eigenlijk een scriptbestand nodig om uit te voeren! Als u niet een handig, download dit ZIP-bestand en pak de PS1-bestand binnen. Je vindt een eenvoudig script bestand binnen genaamd GetServices. ps1.

Write-Output "Listing Computer Services"Get-Service

elk PowerShell script moet eindigen met een .ps1 extensie.

met behulp van de Console

Als u eenmaal een script klaar hebt, zijn er een paar verschillende manieren waarop u een PowerShell-scriptbestand kunt uitvoeren. Een van de meest voorkomende manieren is via de PowerShell console.

te doen:

  1. Open de PowerShell console zoals hierboven getoond.

2. Navigeer naar de locatie van het bestandssysteem waar uw script zich bevindt met behulp van de Set-Location PowerShell cmdlet of de cd alias. Het script van deze tutorial is te vinden in de C:\Temp directory.

PS> cd C:\Temp\

3. Voer het script uit met een punt (.) notatie. PowerShell is een shell die ook zoekt naar Commando namen. Om onderscheid te maken tussen een PowerShell commando en een script, moet je het script vooraf met een punt. Dit punt vertegenwoordigt de huidige map.

 PS> .\GetServices.ps1

een PowerShell-Script uitvoeren vanaf de commandoregel via de PowerShell-locatie

als u geen scripts kunt of wilt uitvoeren via de PowerShell-console, kunt u dit ook doen met de good ol’ command line (command prompt).

om scripts uit te voeren via de opdrachtprompt, moet u eerst het uitvoerbare bestand PowerShell opstarten (powershell.exe), met de PowerShell locatie van C:\Program Files\WindowsPowerShell\powershell.exe en geef het script pad als parameter aan het.

u kunt scripts met parameters uitvoeren in elke context door ze eenvoudig op te geven tijdens het uitvoeren van het PowerShell-uitvoerbare bestand zoals powershell.exe -Parameter 'Foo' -Parameter2 'Bar'.

zodra u cmd opent.exe, kunt u een PowerShell script uit te voeren zoals hieronder. Dit voorbeeld is het draaien van de motor en het doorgeven van het script pad van C:\Temp\GetServices.ps1.

merk hieronder op dat het voorbeeld hieronder het PowerShell locatie pad gebruikt om het script uit te voeren. Je moet dit doen als de map niet ergens in je pad staat.

CMD> C:\Program Files\WindowsPowerShell\powershell.exe "C:\Temp\GetServices.ps1"

de PowerShell locatie voor PowerShell 7 maakt gebruik van een ander uitvoerbaar bestand met de naam pwsh.exe meestal gelegen in C:\Program bestanden \ PowerShell \ 7 \ pwsh.executable.

Hieronder is een handige YouTube-video die het uitvoeren van een script via een batch-bestand dat de cmd behandelt.exe executeert.

met behulp van de PowerShell ISE

als u uw eigen scripts maakt of die van anderen bewerkt, gebruikt u waarschijnlijk een script-editor zoals de PowerShell ISE of misschien Visual Studio (VS) Code. Aangezien de ISE wordt geleverd met Windows, Laten we ons richten op die methode voor deze tutorial.

om een script aan te roepen via de ISE:

  1. Navigeer naar het menu Start, zoek naar PowerShell ISE en open het.
PowerShell ISE zoeken in het menu Start
PowerShell ISE zoeken in het menu Start

2. Klik op Bestand → Openen en vind uw script.

Script Openen met het menu Bestand
Script Openen met het menu Bestand

3. Met het script open, klik op de groene knop uitvoeren om het script uit te voeren. Deze knop zal het script aanroepen in de ingebouwde PowerShell terminal onderaan.

Script uitvoeren met PowerShell ISE
Script uitvoeren met PowerShell ISE

de uitvoer van het voorbeeldscript

een PowerShell-script kan soms uitvoer teruggeven. Dit gebeurt wanneer het script dat je uitvoert is gebouwd om objecten te retourneren, wat een fundamenteel onderdeel is van PowerShell.

als u het voorbeeld GetServices.ps1 script uitvoert, zult u het volgende zien. Dit script voert de Get-Service cmdlet uit die alle services retourneert die op uw lokale Windows-computer zijn geïnstalleerd.

PS> .\GetScripts.ps1Listing Computer ServicesStatus Name DisplayName------ ---- -----------Running aakore Acronis Agent Core ServiceStopped AarSvc_1b668d Agent Activation Runtime_1b668dRunning AcronisActivePr... Acronis Active Protection ServiceRunning AcronisCyberPro... Acronis Cyber Protection ServiceRunning AcrSch2Svc Acronis Scheduler2 ServiceRunning AdobeARMservice Adobe Acrobat Update ServiceRunning AdobeUpdateService AdobeUpdateServiceRunning AGMService Adobe Genuine Monitor ServiceRunning AGSService Adobe Genuine Software Integrity Se...----Truncated----

een PowerShell Script draaien vanuit een Script

stel dat je twee scripts hebt en je wilt dat de ene de andere aanroept. Misschien heb je een script genaamd GetUser.ps1 en een genaamd ResetPassword.ps1. binnenin het GetUser.ps1 script, zou je graag de ResetPassword.ps1 uit te voeren om een gebruikerswachtwoord te resetten.

binnen het aanroepende script (GetUser.ps1), zou je een regel toevoegen om het andere script uit te voeren, net zoals je het script zou aanroepen vanaf de commandoregel.

u kunt hieronder zien dat u een aantal opties heeft. Je zou er meestal voor moeten kiezen om het andere script binnen dezelfde sessie of scope uit te voeren om dingen te vereenvoudigen, tenzij je een specifieke reden hebt om het script in een andere PowerShell sessie uit te voeren.

## To run the other script in a new sessionpowershell.exe .\ResetPassword.ps1## To run the other script in the same session.\ResetPassword.ps1

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.