om du är ny på PowerShell-skriptspråket och vill lära dig att köra ett PowerShell-skript har du kommit till rätt blogginlägg. Den här bloggen kommer att vara en handledning som täcker vanliga sätt att köra skript och några problem som kan dyka upp.

Innehållsförteckning

förutsättningar

den här artikeln kommer att vara en genomgång för dig om hur du Kör PowerShell på din lokala dator. Om du vill följa med, se till att du har följande förutsättningar på plats innan du börjar den här artikeln.

  • en Windows 10-dator med administratörsbehörighet.
  • Windows PowerShell version 5 eller senare. Du kan också använda PowerShell v7. Denna handledning kommer att fokusera på Windows PowerShell eftersom Windows-operativsystemet redan har det.
  • alla textfilredigerare

hantera Exekveringspolicyn

om det här är första gången du försöker köra ett Windows PowerShell-skript kan du stöta på ett vanligt problem. PowerShell kommer förmodligen att returnera ett felmeddelande om att ett skript ”inte kan laddas eftersom att köra skript är inaktiverat på det här systemet”.

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 returnerar felmeddelandet ovan när du försöker köra en PowerShell med en exekveringsprincip inställd på begränsad, Fjärrsignerad eller all signerad.

begränsad

begränsad är standardprincipen för Windows-klientdatorer. Om du använder PowerShell för första gången skulle din standardpolicy förmodligen vara inställd för att begränsa alla skript.

du kan fortfarande köra enskilda kommandon i en terminal, men inte en skriptfil. Begränsningen inkluderar alla filer som slutar med .ps1xml, .psm1eller .ps1.

obegränsad

obegränsad låter dig köra något skript men det varnar dig innan körning om skriptet laddas ner från internet. Denna policy är vanligtvis standard för alla enheter som inte är windows.

Fjärrsignerad

Fjärrsignerad policy låter dig köra alla skript som antingen är (A) digitalt signerade eller (b) alla skript skrivna på din lokala dator med eller utan signatur.

om ett skript laddas ner från internet och inte signeras måste du avblockera filen. Du kan göra det genom att högerklicka på filen och välja Egenskaper. Eller du kan använda Unblock-File PowerShell cmdlet för den specifika skriptfilen.

att använda en Fjärrsignerad policy skulle vara ett perfekt alternativ när du kör ett skript som laddas ner från internet.

alla signerade

alla signerade kräver att alla skript ska signeras digitalt av en betrodd utgivare. Detta inkluderar skript som laddas ner från internet och skrivs lokalt på din dator.

ändra Exekveringspolicyn för PowerShell

för att ändra exekveringspolicyn:

  1. öppna Windows PowerShell med Kör som administratör för att se till att du har högsta behörighet att göra policyändringarna.
Sök PowerShell i Start-menyn
Sök PowerShell i Start-menyn

2. När du är öppen kör du följande PowerShell-kommando för att ställa in datorns exekveringspolicy. Exekveringspolicyn, som omfattas ovan, kan vara en av tre olika typer. Denna handledning använder en användbar men ändå säker exekveringspolicy för RemoteSigned.

eftersom denna handledning förutsätter att du har laddat ner GetServices.ps1-skriptfilen från Internet, ställer du in exekveringspolicyn till RemoteSigned.

PS> Set-ExecutionPolicy RemoteSigned

RemoteSigned execution policy tvingar dig att kryptografiskt underteckna varje PowerShell-skript som laddas ner från Internet innan PowerShell kommer att köra det på ditt system.

3. Du bör se en utgång som begär att bekräfta åtgärden. Ange Y och tryck på enter för att bekräfta policyändringen.

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"): 

Följ nu nästa steg för att utforska olika metoder för att köra PowerShell-skriptet på din dator.

så här kör du ett PowerShell-skript

för att visa att du kör ett PowerShell-skript behöver du faktiskt en skriptfil för att köra! Om du inte har en praktisk, ladda ner den här ZIP-filen och extrahera PS1-filen inom. Du hittar en enkel skriptfil inuti kallad GetServices. ps1.

Write-Output "Listing Computer Services"Get-Service

varje PowerShell-skript ska sluta med en .ps1 – förlängning.

använda konsolen

när du har ett skript klart finns det några olika sätt att köra en PowerShell-skriptfil. Ett av de vanligaste sätten är via PowerShell-konsolen.

för att göra det:

  1. öppna PowerShell-konsolen som visas ovan.

2. Navigera till filsystemplatsen ditt skript finns med Set-Location PowerShell cmdlet eller cd alias. Denna handledning skript finns i C:\Temp katalog.

PS> cd C:\Temp\

3. Kör skriptet med en punkt (.) notation. PowerShell är ett skal som också letar efter kommandonamn. För att skilja mellan ett PowerShell-kommando och ett skript måste du förorda skriptet med en punkt. Denna punkt representerar den aktuella katalogen.

 PS> .\GetServices.ps1

så här kör du ett PowerShell-skript från kommandoraden via PowerShell-platsen

om du inte kan eller hellre inte vill köra skript via PowerShell-konsolen kan du också göra det med den goda ol-kommandoraden (kommandotolken).

för att köra skript via kommandotolken måste du först starta PowerShell-körbara (powershell.exe), med PowerShell-platsen för C:\Program Files\WindowsPowerShell\powershell.exe och skicka sedan skriptvägen som en parameter till den.

du kan köra skript med parametrar i vilket sammanhang som helst genom att helt enkelt ange dem medan du Kör PowerShell-körbar som powershell.exe -Parameter 'Foo' -Parameter2 'Bar'.

när du öppnar cmd.exe, du kan köra ett PowerShell-skript som nedan. Detta exempel kör motorn och passerar den skriptvägen för C:\Temp\GetServices.ps1.

Lägg märke till nedan att exemplet nedan använder PowerShell – platsvägen för att köra skriptet. Du måste göra detta om mappen inte finns i din väg någonstans.

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

PowerShell-platsen för PowerShell 7 använder en annan körbar som heter pwsh.exe typiskt beläget i C:\Program filer \ PowerShell \ 7\pwsh.exe.

nedan är en praktisk YouTube-video som täcker exekvera ett skript via en batch-fil som cmd.exe kör.

använda PowerShell ise

om du skapar egna skript eller redigerar andra, kommer du förmodligen att använda en skriptredigerare som PowerShell ise eller kanske Visual Studio (VS) – koden. Eftersom ise kommer med Windows, låt oss fokusera på den metoden för denna handledning.

för att åberopa ett skript via ISE:

  1. navigera till Start-menyn, Sök efter PowerShell ISE och öppna den.
Sök PowerShell ISE i Start-menyn
Sök PowerShell ise i Start-menyn

2. Klicka på File Macau Open och hitta ditt manus.

öppna Script med Arkiv-menyn
öppna Script med Arkiv-menyn

3. När skriptet är öppet klickar du på den gröna körknappen för att köra skriptet. Den här knappen anropar skriptet i den inbyggda PowerShell-terminalen längst ner.

Kör skript med PowerShell ise
Kör skript med PowerShell ise

Exempelskriptets utdata

ett PowerShell-skript kan ibland returnera utdata. Detta händer när skriptet du kör är byggt för att returnera objekt som är en grundläggande komponent i PowerShell.

om du kör Exempelskriptet GetServices.ps1 ser du följande. Det här skriptet kör cmdlet Get-Service som returnerar alla tjänster som är installerade på din lokala Windows-dator.

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----

kör ett PowerShell-skript från ett skript

låt oss säga att du har två skript och du vill att en ska ringa den andra. Kanske har du ett skript som heter GetUser.ps1 och ett som heter ResetPassword. ps1.inuti GetUser.ps1-skriptet vill du köra ResetPassword.ps1 för att återställa ett användarlösenord.

inuti det anropande skriptet (GetUser.ps1) lägger du till en rad för att utföra det andra skriptet precis som du skulle ringa skriptet från kommandoraden.

du kan se nedan har du ett par alternativ. Du bör vanligtvis välja att köra det andra skriptet inom samma session eller omfattning för att förenkla saker om du inte har en specifik anledning att köra skriptet i en annan PowerShell-session.

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

Lämna ett svar

Din e-postadress kommer inte publiceras.