Hvis Du er ny På PowerShell-skriptspråket og vil lære å kjøre Et PowerShell-skript, har du kommet til riktig blogginnlegg. Denne bloggen vil være en tutorial som dekker vanlige måter å kjøre skript og noen problemer som kan dukke opp.
Innholdsfortegnelse
Forutsetninger
denne artikkelen vil være en gjennomgang for deg om hvordan du kjører PowerShell på den lokale datamaskinen. Hvis du ønsker å følge med, vær sikker på at du har følgende forutsetninger på plass før du starter denne artikkelen.
- En windows 10-datamaskin med Administratorrettigheter.
- Windows PowerShell versjon 5 eller nyere. Du kan også Bruke PowerShell v7. Denne opplæringen vil fokusere På Windows PowerShell siden Windows-operativsystemet allerede har det.
- enhver tekstredigerer
Håndtering Av Utførelsespolicyen
Hvis dette er første gang du prøver å utføre Et Windows PowerShell-skript, kan du støte på et vanlig problem. PowerShell vil trolig returnere en feilmelding som sier at et skript «kan ikke lastes fordi kjørende skript er deaktivert på dette 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 returnerer feilmeldingen ovenfor når du prøver å kjøre En PowerShell med en kjøringspolicy satt Til Begrenset, Ekstern Signert eller Alle Signert.
Begrenset
Begrenset Er standardpolicysettet for Windows-klientdatamaskiner. Hvis Du bruker PowerShell for første gang, vil standardpolicyen trolig bli satt til å begrense alle skriptene.
du kan fortsatt utføre individuelle kommandoer i en terminal, men ikke en skriptfil. Begrensningen inkluderer alle filer som slutter på .ps1xml
, .psm1
eller .ps1
.
Ubegrenset
Ubegrenset lar deg kjøre et hvilket som helst skript, men det advarer deg før kjøring hvis skriptet lastes ned fra internett. Denne policyen er vanligvis standard for alle ikke-windows-enheter.
Ekstern Signert
Ekstern Signert policy lar deg kjøre et hvilket som helst skript som enten (a) er digitalt signert eller (b) et hvilket som helst skript skrevet på den lokale datamaskinen med eller uten en signatur.
hvis et skript lastes ned fra internett og ikke signeres, må du fjerne blokkeringen av filen. Du kan gjøre det ved å høyreklikke på filen og velge Egenskaper. Eller du kan bruke PowerShell-cmdleten Unblock-File
for den aktuelle skriptfilen.
Å Bruke En ekstern signert policy ville være et ideelt alternativ når du kjører et skript lastet ned fra internett.
Alle Signerte
alle signerte krever at alle skriptene signeres digitalt av en klarert utgiver. Dette inkluderer skript lastet ned fra internett og skrevet lokalt på datamaskinen.
Endre Policyen For kjøring Av PowerShell
for å endre policyen for kjøring:
- Åpne Windows PowerShell Med Kjør Som Administrator for Å sikre at du har den høyeste tillatelsen til å gjøre policyendringene.
2. Når du er åpen, kjør Følgende PowerShell-kommando for å angi datamaskinens kjøringspolicy. Utførelsespolitikken, som nevnt ovenfor, kan være en av tre forskjellige typer. Denne opplæringen bruker en nyttig, men likevel sikker utførelsespolicy For RemoteSigned.
siden denne opplæringen antar at Du har lastet Ned getservices.ps1-skriptfilen Fra Internett, må du angi utførelsespolicyen Til RemoteSigned.
PS> Set-ExecutionPolicy RemoteSigned
RemoteSigned execution policy tvinger deg til å kryptografisk signere Hver PowerShell script lastet ned fra Internett før PowerShell vil kjøre den på systemet.
3. Du bør se en utgang som ber om å bekrefte handlingen. Skriv Inn Y og trykk enter for å bekrefte policyendringen.
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ølg de neste trinnene For å utforske ulike metoder for å kjøre powershell-skriptet på datamaskinen.
Slik Kjører Du Et PowerShell-Skript
for å demonstrere å kjøre Et PowerShell-skript, trenger du faktisk en skriptfil for å kjøre! Hvis du ikke har en hendig, last ned DENNE ZIP-filen og pakk UT PS1-filen i. Du finner en enkel skriptfil inne som heter GetServices. ps1.
Write-Output "Listing Computer Services"Get-Service
Hvert PowerShell-skript skal ende med en
.ps1
– utvidelse.
Bruke Konsollen
Når du har et skript klart, er det noen forskjellige måter du kan utføre En PowerShell-skriptfil på. En av de vanligste måtene er Via PowerShell-konsollen.
for å gjøre det:
- Åpne PowerShell-konsollen som vist ovenfor.
2. Naviger til filsystemplasseringen skriptet ligger ved hjelp Av PowerShell-cmdleten Set-Location
eller aliaset cd
. Denne opplæringen skript er funnet i C:\Temp katalog.
PS> cd C:\Temp\
3. Kjør skriptet ved hjelp av en prikk (.
) notasjon. PowerShell er et skall som også ser etter kommandonavn. Hvis du vil skille Mellom En PowerShell-kommando og et skript, må du forord skriptet med en prikk. Denne prikken representerer gjeldende katalog.
PS> .\GetServices.ps1
Slik Kjører Du Et PowerShell-Skript fra Kommandolinjen Via PowerShell-Plasseringen
Hvis du ikke kan eller heller ikke vil kjøre skript via PowerShell-konsollen, kan du også gjøre det med den gode ol-kommandolinjen (ledetekst).
for å kjøre skript via kommandoprompt, må du først starte PowerShell-kjørbar (powershell.exe), Med PowerShell-plasseringen C:\Program Files\WindowsPowerShell\powershell.exe
og send deretter skriptbanen som en parameter til den.
du kan kjøre skript med parametere i alle sammenhenger ved å spesifisere dem mens Du kjører PowerShell kjørbar som
powershell.exe -Parameter 'Foo' -Parameter2 'Bar'
.
Når du åpner cmd.exe, du kan utføre Et PowerShell-skript som nedenfor. Dette eksemplet kjører motoren og passerer den skriptbanen til C:\Temp\GetServices.ps1.
Legg Merke til at eksemplet nedenfor bruker powershell-plasseringsbanen til å kjøre skriptet. Du må gjøre dette hvis mappen ikke er i VEIEN et sted.
CMD> C:\Program Files\WindowsPowerShell\powershell.exe "C:\Temp\GetServices.ps1"
PowerShell-plasseringen for PowerShell 7 bruker en annen kjørbar kalt pwsh.exe vanligvis plassert i C:\Program Filer \ PowerShell \ 7 \ pwsh.exe.
Nedenfor Er en praktisk YouTube-video som dekker å utføre et skript via en batchfil som cmd.exe utfører.
Bruke PowerShell ise
hvis du lager dine egne skript eller redigerer andre, bruker du sannsynligvis en skriptredigerer som PowerShell ise Eller Kanskje Visual Studio (VS) – Koden. Siden ISE kommer Med Windows, la oss fokusere på den metoden for denne opplæringen.
for å starte et skript via ISE:
- Naviger Til Start-Menyen, søk Etter PowerShell ISE og åpne den.
2. Klikk På Fil → Åpne og finn skriptet ditt.
3. Med skriptet åpent, klikk på den grønne run-knappen for å utføre skriptet. Denne knappen vil påberope skriptet i den innebygde PowerShell-terminalen nederst.
Eksempelskriptets Utgang
Et PowerShell-skript kan noen ganger returnere utdata. Dette skjer når skriptet du kjører, er bygget for å returnere objekter som er en grunnleggende komponent I PowerShell.
hvis du kjører Eksemplet GetServices. ps1-skriptet, vil du se følgende. Dette skriptet kjører cmdleten Get-Service
som returnerer alle tjenestene som er installert på din lokale Windows-datamaskin.
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----
Kjører Et PowerShell-Skript fra Et Skript
La oss si at du har to skript, og du vil at en skal ringe den andre. Kanskje du har et skript som heter GetUser. ps1 og en som heter ResetPassword. ps1. Inside Av GetUser. ps1-skriptet, vil du utføre ResetPassword. ps1 for å tilbakestille et brukerpassord.
Inne i anropsskriptet (GetUser. ps1), vil du legge til en linje for å utføre det andre skriptet akkurat som du ville ringe skriptet fra kommandolinjen.
du kan se nedenfor du har et par alternativer. Du bør vanligvis velge å kjøre det andre skriptet i samme økt eller omfang for å forenkle ting, med mindre du har en bestemt grunn til å kjøre skriptet i en Annen PowerShell-økt.
## To run the other script in a new sessionpowershell.exe .\ResetPassword.ps1## To run the other script in the same session.\ResetPassword.ps1