Hva er powershell i Windows 7. Grunnleggende om Windows PowerShell. Cmdlets i PowerShell

Hei alle sammen! I dag et kort notat om emnet, hvordan åpne powershell som administrator. La meg minne deg på at PowerShell er et kraftig programmerings- og administrasjonsspråk fra Microsoft, hvert år vokser det, alt stor kvantitet cmdlets og funksjonalitet. I hovedsak er det en erstatning for Windows-ledeteksten. Nedenfor vil vi vurdere metoder som lar deg åpne og konfigurere den.
.

Metoder for å åpne en PowerShell-snap-in

Powershell utvikler seg veldig bra, og med utgivelsen av Windows 10 har den allerede mottatt versjon 5, men temaet vårt er annerledes. Så hvordan åpner jeg powershell? Alt er enkelt hvis i Windows XP, så ingenting. Siden den leveres separat, kommer den i alle påfølgende utgivelser som en innebygd komponent. Mest universell metodeåpne powershell dette klikket

Win+R og skriv inn powershell

Ved å trykke enter vil PowerShell-konsollen starte, det eneste problemet er at den ikke åpnes som administrator. Og som et resultat vil mange kommandoer ikke bli utført; nedenfor vil vi se hvordan du gjør dette på vegne av administratoren.

Slik kjører du Windows Powershell som administrator i Windows 8.1 og Windows 7

Du kan åpne Windows Powershell gjennom Start. I Windows 8.1, Windows 2012 R2, gå til Systemverktøy - Windows og høyreklikk og velg Kjør som administrator.

I Windows 7 og Windows 2008 R2 ser det slik ut Start > Tilbehør > Windows PowerShell

Du kan også lage en snarvei i oppgaveelementet og høyreklikke på det og velge riktig element

Det ville være praktisk hvis PowerShell alltid åpnet som administrator, la oss implementere det. Dette gjøres på samme måte i alle versjoner av Windows. Åpning av kontrollpanelet

Høyreklikk på den og velg Egenskaper. Du kan umiddelbart se banen til filen der den ligger i systemet.

Klikk på "Avansert"-knappen. Du vil se flere egenskaper. hvor du må merke av i boksen Kjør som administrator.

Alt er veldig enkelt. Jeg er sikker på at nå vil du ikke ha et spørsmål om hvordan du åpner Windows Powershell. En annen nyttig ting er å endre fonten i powershell-vinduet.

Slik åpner du PowerShell fra startknappens kontekstmeny i Windows 10

Microsoft legger stadig mer vekt på kommandolinje mot sitt sterke språk (PowerShell), og dette er logisk, siden dets evner for å administrere operativsystemer Windows-familien, er nesten ubegrensede, om ikke flere, enn i det grafiske grensesnittet. Begynner med Windows-versjoner 10 1709, i kontekstmenyen, PowerShell, erstattet den vanlige cmd for alle. Høyreklikk på startknappen i Windows 10 og velg det aktuelle elementet fra kontekstmenyen:

  1. Windows PowerShell
  2. Windows PowerShell (administrator) er akkurat modusen med maksimale rettigheter i Windows 10.

Start Windows PowerShell ved å bruke Søk i Windows 10

På Windows 10 og eldre versjoner kan du finne PowerShell ved å bruke vanlig søk, det er en spesiell seksjon for dette. Klikk ved siden av Start-knappen, forstørrelsesglassikonet. Skriv inn ordet PowerShell i søkeskjemaet som åpnes. Du vil søke etter alle alternativer, blant annet finner du skallet. Hvis du høyreklikker på den, kan du åpne den som administrator.

Starte Windows PowerShell fra Start-menyen i Windows 10

For å åpne PowerShell fra Start-menyen, åpne den og finn Windows PowerShell-elementet, det vil være i form av en mappe, åpne den og kjør den aktuelle versjonen.

Hvis du høyreklikker, kan du kjøre Vershel-skallet som administrator med administratorrettigheter.

Ytterligere og generiske skalllanseringsmetoder

Det er også veldig spesifikke metoder for å åpne et skall med et kraftig språk fra Microsoft. Den mest klønete, den er lett å finne kjørbar fil og kjøre den direkte fra et sted på systemet. La oss gå til Windows 10 langs følgende vei:

C:\Users\brukernavn\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell

Som et resultat vil du se en mappe med snarveier som er til stede i Start-menyen, du kan starte dem.

Du kan også kjøre den originale kjørbare filen, som ligger langs banen:

C:\Windows\System32\WindowsPowerShell\v1.0

Og ved å høyreklikke på den kan du laste den ned som administrator, med maksimale rettigheter.

Du kan også starte Windows PowerShell fra kommandolinjevinduet; For å gjøre dette, skriv inn det magiske ordet i det og trykk Enter.

Vel, la meg også minne deg på metoden for å starte en ny oppgave fra snapin-modulen "Task Manager". Åpne "Oppgavebehandling", velg menyelementet "Fil - Kjør ny oppgave"

Skriv inn PowerShell i vinduet som vises.

Vel, den siste metoden jeg kjenner til er å starte PowerShell, via Windows utforsker 10, for å gjøre dette, åpne Utforsker, velg menyelementet "Fil - start Windows PowerShell", det vil være begge modusene.

Hva er PowerShell ISE

Du har sikkert lagt merke til at PowerShell ISE-snarveien er overalt, og du vil gjerne vite hva den er. I et nøtteskall er dette et spesielt skall der du kan skrive skript og scenarier i PowerShell, ved å bruke alle de forskjellige cmdlets som Microsoft tilbyr deg.

Powershell endre font er veldig enkelt, gå til Font-fanen i egenskapene, hvor du kan stille inn størrelsen fra 5 til 72.

Du kan også komme til egenskaper fra selve verktøyvinduet, klikk på ikonet i øvre venstre hjørne og velg egenskaper

Her er skriftinnstillingene litt forskjellige, og etter hvert som de endres endres også størrelsen på konsollen.

På fanen Farger kan du angi skriftfargen i Powershell og selve vinduet. Ved å gjøre den svart, for eksempel, som kommandolinjen.

Jeg anbefaler også at hvis du er en aktiv konsollbruker, sett bufferstørrelsen ikke til 50 kommandoer, men minst til 100.

Takk for din oppmerksomhet. Dette er metodene for å åpne Power Shell-konsollen i Windows. Site materiale

Mange brukere vet om kommandoprompten, men svært få har hørt om Windows PowerShell. På en måte er PowerShell et verktøy som tar sikte på å erstatte kommandolinjen og gi kraftigere funksjoner for å administrere Windows-operativsystemet. I denne artikkelen vil vi prøve å forklare tydelig hva dette verktøyet er, hvorfor det er så kraftig og hvem som pleier å bruke det oftest.

Hva er PowerShell?

For bedre forståelse må vi først forstå hva et skall er. Innen datavitenskap er et skall et brukergrensesnitt som gir tilgang til ulike tjenester. operativsystem. Skallet kan være kommandolinjebasert eller kan inkludere et grafisk brukergrensesnitt (GUI).

Windows PowerShell er et skall utviklet av Microsoft for oppgaveautomatisering ogmål. Dette kraftige skallet er basert på .NET-rammeverket og inkluderer et kommandolinjeskall og et skriptspråk.

Det kan også være en Windows PowerShell ISE på toppen av standard kommandolinjeskall. ISE fungerer som et integrert skriptmiljø – et grafisk brukergrensesnitt som lar deg lage ulike skript uten å måtte legge inn alle kommandoene på kommandolinjen.

Den første versjonen av PowerShell ble utgitt i november 2006 for Windows XP. Windows Server 2003 og Windows Vista. Den siste er versjon 4.0, som ble utgitt i oktober 2013. Den leveres som standard med Windows 8.1 og Windows Server 2012 R2.

Hva kan du gjøre med PowerShell?

Microsoft utviklet Windows PowerShell som et verktøy som hjelper til med å automatisere og raskt løse mange kjedelige administrative oppgaver. Du kan for eksempel bruke PowerShell til å se alle USB-enheter installert på én eller flere datamaskiner i et nettverk, eller du kan sette opp en tidkrevende oppgave å kjøre i bakgrunn mens du gjør annet arbeid. Du kan også identifisere og avslutte prosesser som ikke svarer, eller filtrere spesifikk informasjon om datamaskiner på nettverket og eksportere den i HTML-format.

PowerShells evner lar deg forenkle og automatisere tidkrevende og repeterende oppgaver ved å lage skript og kombinere flere kommandoer sammen.

Hvis du er nettverksadministrator, vil du finne PowerShell veldig nyttig når du arbeider med Active Directory. Tatt i betraktning at verktøyet inneholder hundrevis av tilpassbare kommandoer kalt cmdlets, er sannsynligheten for at PowerShell kan hjelpe deg med å bli mer produktiv veldig høy.

Hvordan kjører jeg PowerShell på Windows 8.1?

Hvis du ikke har en PowerShell-brikke på startskjermen eller en snarvei på skrivebordet, kan du åpne den ved å bruke søk - dette er en av de mest enkle måter. Trykk +Q, skriv "powershell" og trykk deretter Enter.

Du kan også åpne PowerShell fra applikasjonsdelen på startskjermen: gå til startskjermen og flytt markøren til nedre venstre hjørne, rett under den siste flisen i den første kolonnen. Klikk på ikonet med pilen nedover. Klikk deretter på PowerShell-ikonet i delen "Verktøy".

For å åpne PowerShell ved å bruke Kjør-dialogen, trykk +R, skriv "powershell" og trykk Enter.

Hvordan kjører jeg PowerShell på Windows 7?

I Windows 7 kan du finne verktøyet ved å søke etter "powershell" i Start-menyen.

Du kan også åpne PowerShell via Start-menyen i Tilbehør-delen.

Åpenbart fungerer kommandoen ovenfor i Kjør-vinduet også i Windows 7.

Hvem bruker vanligvis PowerShell?

Uten tvil er PowerShell valget til mange IT-administratorer. Og med god grunn, fordi verktøyet i stor grad forenkler administrasjonsoperasjoner og reduserer mengden arbeid i stort bedriftsnettverk.

La oss si at du administrerer et stort nettverk som inneholder over fem hundre servere, og du må implementere en ny sikkerhetsløsning som er avhengig av en tjeneste som må kjøres på disse serverne. Selvfølgelig kan du koble til hver server og se om den nødvendige tjenesten er installert og kjører på dem. Men i dette tilfellet vil ledelsen neppe være fornøyd, fordi du vil trenge for mye tid til å fullføre oppgaven.

MED ved hjelp av PowerShell du kan gjøre denne jobben i løpet av få minutter da hele operasjonen kan gjøres med et enkelt script som vil samle informasjon om tjenestene som kjører på de angitte serverne og lagre det som en tekstfil f.eks.

PowerShell lar deg gjøre mye mer enn det som kan dekkes i én artikkel, så hvis du virkelig er interessert, anbefaler vi på det sterkeste at du kjøper og leser en av de mange bøkene som dekker kraften til dette verktøyet.

Ha en flott dag!

I denne artikkelen skal vi se på slik teknologi fra Microsoft som Windows PowerShell, vil vi snakke om hva PowerShell er, hva cmdlets og en pipeline er, hvordan man skriver skript og moduler, og også berøre andre like viktige og nyttige funksjoner i Windows PowerShell.

Før PowerShell var det ( og det er) følgende verktøy for automatisering og administrasjon av tjenester: Windows kommandolinje og Windows Script Host. Men disse teknologiene har ulemper.

På laget Windows-strenger Det er også muligheten til å utføre noen administrative oppgaver og muligheten til å skrive ned en algoritme av handlinger, lagre den som et skript (bat-fil), mens du kan bruke visse programmeringselementer, for eksempel bruke variabler, betingede konstruksjoner og til og med noe som løkker.

De fleste programvareprodukter har et konsollgrensesnitt, dvs. vi kan administrere programmet ved å bruke kommandolinjen, samtidig som vi sparer ressurser på grunn av mangel på arbeidskostnader GUI. Microsoft slipper til og med utgaver uten grafisk grensesnitt for Windows Server-serveroperativsystemet ( Server Core, Windows Server 2016 har til og med Nano Server), men alt dette er ikke nok, siden kommandolinjefunksjonene er begrenset, dvs. Vi vil ikke være i stand til å skrive en kompleks logikk for å automatisere noe, og selv om vi kan, vil det ta tid og kunnskap.

En ulempe med kommandolinjen er også at for å administrere serveren fullt ut bruker vi forskjellige konsollverktøy for programvareprodukter, og derfor er det faktisk vanskelig å bruke kommandolinjen for administrasjon, sett fra det faktum at alle disse verktøyene har forskjellige syntaks, parametere, bruksmetoder og for å utføre typiske oppgaver, dvs. hver dag må du ha alt dette i minnet, og for å utføre atypiske oppgaver må du først lese hjelpen eller dokumentasjonen.

Windows Script Host-teknologi lar deg utføre alle administrative oppgaver som kommandolinjen, inkludert deres automatisering ved å skrive WSH-skript, men her kan vi allerede bruke fullverdige programmeringsspråk ( VBScript og JScript), dvs. kompleks logikk og algoritmer kan implementeres. I tillegg, ved hjelp av WSH administrerer vi programvareprodukter gjennom et objektgrensesnitt, med andre ord, Windows Script Host er mye mer " kjøligere» enn kommandolinjen. Men denne teknologien ble heller ikke det ideelle verktøyet for administrasjon og automatisering av denne administrasjonen for systemadministratorer, siden Windows Script Host krevde kunnskap om programmeringsspråkene ovenfor, noe som faktisk er overflødig for systemadministratorer. Administratorer trenger bare et enkelt administrasjonsverktøy med mulighet til å programmere enkelte handlinger, og de ønsker ikke å fordype seg i objektmodellene til programvareprodukter i programmeringsspråkene VBScript og JScript.

Som et resultat trengte Microsoft å utvikle et administrasjonsverktøy for systemadministratorer som ville 100 prosent tilfredsstille alle behovene til systemadministratorer, både når det gjelder administrasjon og automatiseringsmuligheter, og når det gjelder bekvemmelighet og brukervennlighet, og dermed dukket Windows PowerShell opp.

Hva er Windows PowerShell?

Windows PowerShell er et Windows-skriptspråk og kommandoskall designet for å administrere og konfigurere Windows-operativsystemer. PowerShell er bygget på toppen av CRL-rammeverket og .NET Framework, og i motsetning til kommandolinjen, som aksepterer og returnerer tekst, fungerer Windows PowerShell med objekter. Hvert objekt i PowerShell har egenskaper og metoder som du kan bruke til å manipulere disse objektene.

På Windows Microsoft PowerShell utviklet konseptet med cmdlets ( cmdlets), som er et kommandonavnsystem " Verb substantiv" Dette systemet lar systemadministratorer raskt mestre og forenkle arbeidet med PowerShell.

MED bruker Windows PowerShell kan:

  • Få tilgang til filsystemet;
  • Administrer registeret;
  • Administrere tjenester;
  • Administrere prosesser;
  • Konfigurer operativsystemet;
  • Installer programvare;
  • Installer serverroller og komponenter;
  • Administrere og konfigurere serverroller og komponenter;
  • Skrive og bruke skript for å automatisere administrasjon og administrasjon;
  • Utfør andre systemadministratoroppgaver.

Windows PowerShell inneholder mange ofte brukte verktøy og kommandoer som du kan kjøre fra kommandolinjen, for eksempel ipconfig, ping og andre. Dette ble gjort for å lette overgangen for systemadministratorer fra kommandolinjen til PowerShell.

For enkelhets skyld har mange ofte brukte kommandoer og verktøy i PowerShell synonymer ( Alias), for eksempel er cls et synonym for Clear-Host cmdlet, dir er et synonym for Get-ChildItem ( full liste synonymer kan sees ved å kjøre Get-Alias-cmdlet).

For å forenkle søket etter ønsket kommando, har PowerShell en spesiell cmdlet Get-Command, som du kan søke med både verb og substantiv. Alle kommandoer i Windows PowerShell er gruppert i moduler ( for eksempel Hyper-V, NetTCPIP), som også gjør det lettere å finne riktig kommando.

Når den nødvendige kommandoen er funnet, kan du se på instruksjonene for å arbeide med denne kommandoen, dvs. hjelp, det er en spesiell Get-Help cmdlet for disse formålene, for eksempel vil følgende kommando vise hjelp for Get-Command cmdleten:

Få-hjelp Få-kommando

Hjelp i Windows PowerShell kan være kort, detaljert ( parameter - Detaljert), full ( parameter -Full), og du kan også vise bare eksempler ( parameter - Eksempler). Følgende kommando viser bare eksempler på bruk av Get-Command-cmdleten:

Få-hjelp Get-Command -Eksempler

PowerShell-hjelpen kan oppdateres, dvs. den kan oppdateres med kommandoen Update-Help.

Windows PowerShell-versjoner

Den første versjonen av PowerShell 1.0 dukket opp 14. november 2006 og ble utgitt som en separat distribusjon som kunne installeres på følgende versjoner av Windows-operativsystemer: Windows XP Service Pack 2, Windows Server 2003 Service Pack 1 og Windows Vista.

I Windows Server 2008 kom PowerShell 1.0 som en komponent som også måtte installeres.

Fra og med Windows 7 og Windows Server 2008 R2, kommer PowerShell som en integrert komponent av systemet ( de. forhåndsinstallert, det er ikke nødvendig å installere det). Nedenfor er en samsvarstabell mellom versjonen av PowerShell og versjonen av Windows-operativsystemet ( de. hvilken versjon av PowerShell er installert som standard på hvilken versjon av Windows):

PowerShell-versjon Windows-versjoner
PowerShell 2.0 Windows 7, Windows Server 2008 R2
PowerShell 3.0 Windows 8, Windows Server 2012
PowerShell 4.0 Windows 8.1, Windows Server 2012 R2
PowerShell 5.0 Windows 10, Windows Server 2016

Med hver ny verson PowerShell blir et stadig kraftigere administrasjonsverktøy; til sammenligning hadde den første PowerShell omtrent 130 cmdlets, og PowerShell 5.0 har nå over 600!

Å vite gjeldende versjon PowerShell kan bruke PSVersion-egenskapen til den innebygde variabelen $PSVersionTable, for eksempel kjør følgende kommando:

$PSVersionTable.PSVersion

Eller kjør cmdleten

Get-Variable -Name PSVersionTable -ValueOnly

hvor PSVersion-verdien vil være PowerShell-versjonen.

PowerShell-språk

Kraftskall er et objektorientert skriptprogrammeringsspråk. Den brukes til å skrive kommandoer for å kontrollere alle komponenter i Windows-operativsystemet i Windows PowerShell, samt å skrive skript for å automatisere administrative oppgaver i et integrert miljø Windows-skript PowerShell (ISE). Selv om PowerShell-språket ble opprettet for administrasjonsoppgaver, er det et fullverdig skriptprogrammeringsspråk, siden det har programkonstruksjoner som finnes i alle programmeringsspråk, for eksempel: betingelser, løkker, feilhåndtering, arbeid med variabler, objekter og matriser.

PowerShell-språket har en enhetlig syntaks for å skrive kommandoer og en navnestruktur for disse kommandoene basert på prinsippet " Verb substantiv", hva er det han gjør gitt språk intuitivt for både programmerere og systemadministratorer.

Windows PowerShell

Windows PowerShell er et miljø for å utføre kommandoer og skript i PowerShell. Dette skallet har de samme egenskapene som kommandolinjen, for eksempel: lagring av kommandoutførelseshistorikk, innstilling utseende shell, fullføring av kommandoer med Ctrl+C-tastekombinasjonen, samt mange andre funksjoner som ikke er tilgjengelige i kommandolinjeskallet, for eksempel en så fantastisk funksjon som " syntaksutheving» ( introdusert i PowerShell 5.0).

Det er flere måter å starte PowerShell på, for eksempel:

  • Fra kommandolinjen ved å skrive PowerShell;
  • Gjennom dialogboksen " Henrette» ( hurtigtast Win+R), skriver også PowerShell;
  • I Windows 7 - Start->Alle programmer -> Tilbehør -> Windows PowerShell -> Windows PowerShell;
  • I Windows 8.1 eller Windows Server 2012 R2 - Start->Alle programmer -> Systemverktøy -> Windows PowerShell;
  • I Windows 10 eller Windows Server 2016 - Start->Alle programmer -> Windows PowerShell Directory ( i gruppe W) -> Windows PowerShell.

Eksempel på å kjøre PowerShell i Windows Server 2016

Skjermbilde av PowerShell i Windows Server 2016

Cmdlets i PowerShell

Cmdlet (cmdlet) - Dette Windows-kommando PowerShell, som du kan samhandle med operativsystemobjekter for å administrere dem. Disse kommandoene er en del av PowerShell-språket. Cmdlets er bygget i henhold til prinsippet " Verb substantiv", atskilt med en bindestrek (-); med andre ord indikerer vi først hva vi skal gjøre, og med bindestrek indikerer vi hva vi skal gjøre. For eksempel, Get-Help cmdlet, der Get er et verb som betyr " ", og Hjelp er et substantiv" Hjelp"i sammenheng med PowerShell" Vis – Hjelp" PowerShell-cmdlets returnerer resultater som objekter, som er en av hovedforskjellene fra Windows-ledeteksten, der kommandoer bare returnerer tekst til skjermen.

I tillegg til cmdlets for innhenting av data (Get), finnes det også typer cmdlets som:

  • Legg til – legge til data;
  • Klart – klart;
  • Aktiver – aktivere;
  • Deaktiver – slå av;
  • Ny – opprette;
  • Fjern – fjern;
  • Sett – sett;
  • Start - start;
  • Stopp – stopp;
  • Eksport – eksport;
  • Import – import;
  • Og mange flere.

En komplett liste over cmdlets i Windows PowerShell kan vises ved å bruke den spesielle Get-Command-cmdleten. For eksempel, kjør den med -CommandType cmdlet-parameteren, som et resultat vil en liste over cmdlets vises på skjermen.

Get-Command -CommandType cmdlet

Som du allerede har forstått, har cmdlets parametere som vi kan spesifisere handlingene til cmdleten. Parametre kan være obligatoriske eller valgfrie; for eksempel har Get-Command-cmdleten ingen nødvendige parametere.

Bildet nedenfor viser en måte å søke etter en cmdlet etter verb ( Verb parameter). I dette tilfellet viste vi en liste over cmdlets som kan starte noe på nytt.

Team

Get-Command -Verb Start på nytt

For å søke etter en cmdlet etter substantiv, må du bruke parameteren Substantiv. Nedenfor har vi for eksempel en liste over cmdlets som fungerer med tjenester.

Team

Get-Command -Substantivtjeneste

Hvis du ikke finner cmdleten du trenger ved å fullt navn Du kan bruke en maske i *Tekst*-format.

Pipeline i PowerShell

En av de viktigste Windows-funksjoner PowerShell er i stand til å bruke en pipeline når du utfører kommandoer.

Transportbånd– dette er overføringen av resultatet av en cmdlet gjennom en vertikal strek (|) til en annen cmdlet. Samtidig, som du husker, fungerer cmdlets i PowerShell med objekter og returnerer objekter; følgelig overføres objekter også langs rørledningen.

Ved å bruke en pipeline kan du utføre komplekse oppgaver på en enkel og praktisk måte uten å måtte skrive komplekse algoritmer og skript.

La oss for eksempel finne ut navnet på den største filen i katalogen "C:\Windows\System32" ( enkelt eksempel på en rørledning).

Team

Get-ChildItem -Path "C:\Windows\System32" -Fil | Sorter-Objektlengde -Synkende | Velg-objekt -Først 1

  • Get-ChildItem – cmdlet for å hente objekter i den angitte katalogen;
  • Sort-Object er en cmdlet for sortering av objekter, i vårt tilfelle sorterer vi etter filstørrelse ( lengde -Synkende);
  • Select-Object er en cmdlet for å velge de ønskede egenskapene til et objekt; i vårt tilfelle viser vi standardfelt og kun det aller første objektet, dvs. stor fil (parameter -Første 1).

Alle cmdlets er atskilt fra hverandre med en vertikal strek. Resultatet av hver cmdlet sendes som input til en annen cmdlet, dvs. først får vi alle objektene i den angitte katalogen, deretter sorterer vi resultatet og velger til slutt det aller første objektet.

Bakgrunnsutførelse av oppgaver

Windows PowerShell har muligheten til å kjøre jobber i bakgrunnen, som er en mekanisme som du kan bruke til å kjøre en kommando ( for eksempel som tar lang tid å fullføre) i bakgrunnen, dvs. etter oppstart går du tilbake til gjeldende økt og kan fortsette å jobbe uten å vente på at kommandoen er ferdig. Denne sjansen Du trenger det når du trenger å kjøre en kommando som tar ganske lang tid å fullføre, og som du vet, i løpet av denne tiden er PowerShell-økten blokkert til kommandoen fullføres, og du må fortsette å jobbe.

Du kan administrere alle oppgavene som kjører i bakgrunnen, for eksempel se listen over oppgaver, stoppe oppgaven, slette oppgaven og, selvfølgelig, se resultatet av oppgaven.

Windows PowerShell har følgende cmdlets for å jobbe med bakgrunnsjobber:

  • Start-Job – start en bakgrunnsoppgave;
  • Stop-Job – stopp en bakgrunnsoppgave
  • Get-Job – se listen over bakgrunnsoppgaver;
  • Motta-jobb – se resultatet av en bakgrunnsoppgave;
  • Remove-Job – fjern en bakgrunnsoppgave;
  • Vent-jobb – flytt en bakgrunnsoppgave til forgrunnen for å vente til den er ferdig.

For å kjøre i bakgrunnen, må du skrive Start-Job-kommandoen, og i krøllete klammeparenteser () en kommando eller et sett med kommandoer som du vil kjøre i bakgrunnen.

La oss for eksempel kjøre en oppgave ( vis liste over tjenester) i bakgrunnen, og se deretter på listen bakgrunnsjobber og vis resultatet av oppgaven vår på skjermen ( de. liste over tjenester).

Kjør en oppgave i bakgrunnen

Start-Job (Get-Service)

Vi ser på listen over oppgaver som kjører i bakgrunnen

Viser resultatet av Job1

Motta-jobb jobb1

Som du kan se, har vi nå en oppgave med statusen " Fullført", dvs. den er allerede fullført ( Get-Service fungerer bare raskt).

For å se resultatet av bakgrunnsoppgaven, dvs. Get-Service cmdlet, vi utførte Receive-Job-kommandoen og ga den jobbnavnet ( identifikasjonsverdien er også mulig). Som et resultat viste vi en liste over tjenester.

Fjernkontroll med PowerShell

Windows PowerShell er designet ikke bare for lokal bruk, men også for ekstern kjøring av kommandoer. Denne funksjonen er nødvendig for at du skal kunne styre eksterne datamaskiner fra arbeidsplassen din, dvs. kjør PowerShell-kommandoer.

Det er flere måter fjernkontroll:

  • Ved å bruke parameteren – Datamaskinnavn (mange lag har det). Med andre ord sender du navnet på datamaskinen du vil utføre kommandoen på, som en parameter. Metoden har den ulempen at den er begrenset til utførelse av én kommando;
  • Bruk av økter. Cmdlet Enter-PSSession (interaktiv økt). På denne måten kobler du til en ekstern datamaskin og alle kommandoene du skriver inn i PowerShell vil bli utført på ekstern datamaskin akkurat som om du skrev kommandoer direkte på den eksterne datamaskinen. Metoden har også den ulempen at økten er begrenset til én datamaskin;
  • Ved hjelp av en cmdlet Påkalle-kommando. Ved bruk av denne metoden Du kan kjøre kommandoer eller skript på én datamaskin eller på flere.

For eksempel, for å koble til en ekstern datamaskin ( i eksempelet nedenfor ServerName) i en interaktiv økt, kjør følgende kommando:

Skriv inn-PSSession ServerName

Skript, funksjoner og moduler i Windows PowerShell

Hvis du har skrevet en algoritme, vil du mest sannsynlig ønske å lagre den for å bruke den i fremtiden. Windows PowerShell har en skriptmekanisme for dette formålet.

Essensen av denne mekanismen er som følger: du skriver settet med kommandoer du trenger og lagrer det som et skript - dette er en enkel tekstfil med filtypen .PS1.

Deretter, for å kjøre dette skriptet, kjører du det ganske enkelt i PowerShell. I dette tilfellet må du enten spesifisere den fullstendige banen til skriptfilen, eller gå til katalogen med skriptet og kalle det ved navn.

Viktig!

Som standard er det forbudt å kjøre skript på Windows! For å se skriptutførelsespolicyen, kjør cmdleten Get-ExecutionPolicy. Som et resultat vil den returnere gjeldende policy, for eksempel:

  • Begrenset – utførelse av alle skript er blokkert ( standardverdi);
  • AllSigned – kjøring av skript som har en digital signatur er tillatt;
  • RemoteSigned – kjøring av lokale skript er tillatt, alle nedlastede skript må ha en digital signatur;
  • Ubegrenset - kjøring av alle skript er tillatt ( anbefales ikke da det er utrygt!).

For å aktivere skript til å kjøre, må du bruke cmdlet Set-ExecutionPolicy med en av parameterne ovenfor.

For å la lokale skript kjøres, kjør følgende kommando og godta endringene ved å trykke Y.

Set-ExecutionPolicy Remote Signed

Du kan sende parametere til et skript, gjøre dem obligatoriske eller angi en standardverdi.

Windows PowerShell gir en mekanisme for å lage dine egne funksjoner, som, i likhet med innebygde cmdlets, kan brukes i PowerShell-skallet.

For å gjøre dette må du spesifisere nøkkelord Funksjon og deretter i krøllete klammeparenteser () skriv algoritmen for denne funksjonen, dvs. kommandosett ( for eksempel noen ofte brukte prosedyrer: opprette en bruker med visse rettigheter, rydde ut visse kataloger, og så videre). Da må du lagre alt dette i et skript, men bare med filtypen .psm1, siden denne filen allerede vil være en modul.

Det er ikke alt, denne filen må plasseres i katalogen der PowerShell ser etter moduler. Det finnes flere slike kataloger ( spesiell katalog i brukerprofilen, katalogen der PowerShell er installert), kan de vises i PowerShell-miljøvariabler. For å gjøre dette, kjør følgende kommando

Get-ChildItem Env:\PSModulePath | Format-tabell -Autostørrelse

Når du har plassert modulen du skrev i en spesiell katalog, kan du få tilgang til funksjonene dine som vanlige PowerShell-kommandoer.

Windows PowerShell Integrated Scripting Environment (ISE)

For å gjøre det praktisk å skrive skript, funksjoner og følgelig moduler, har Microsoft utviklet en spesiell grafikk program Integrert skriptmiljø(ISE) - Integrert skriptmiljø. Det er veldig praktisk å jobbe i dette programmet, og det har også kraftig funksjonalitet ( opprettelse av flere faner med skript, utdataområde, innebygd debugger og mer).

Du kan kjøre det slik:

  • I Windows 7 - Start -> Alle programmer -> Tilbehør -> Windows PowerShell -> Windows PowerShell ISE;
  • I Windows 10 eller Windows Server 2016 - Start->Alle programmer -> Windows PowerShell Directory ( i gruppe W) -> Windows PowerShell ISE.

Merk! ISE vil ikke fungere på Windows-system Server installert i Server Core-versjonen.

Skjermbilde av PowerShell Integrated Scripting Environment (ISE) i Windows Server 2016

Det var alt for meg, jeg håper materialet var nyttig for deg! Lykke til!

Kjører et program fra PowerShell

Oppgaven med å kjøre en kjørbar fil (program eller kommandolinjeverktøy) fra PowerShell skjer ganske ofte. PowerShell tilbyr flere alternativer for dette. på ulike måter, som vi vil vurdere senere i denne artikkelen. La oss starte med det enkleste...

Direkte lansering

Den enkleste måten å kjøre en kjørbar i PowerShell er å navigere til katalogen med filen og kjøre den direkte. La oss for eksempel ta et enkelt program som viser en hilsen og utføre den med kommandoen:

Set-Location ″C:\Program Files″
.\Hello.exe

Vær oppmerksom på at selv om du er i ønsket katalog, må du spesifisere den relative banen til den kjørbare filen. Unntaket er filer fra katalogene som er oppført i miljøvariabel(sti). For eksempel kan forskjellige innebygde programmer og verktøy (notisblokk, calc, ping, etc.) i Windows\System32-katalogen startes uten å spesifisere banen.

Operatør &

Hvis du trenger å spesifisere hele banen til den kjørbare filen, kan du bruke operatøren & (ringe operatør). Den lar deg utføre en tekststreng spesifisert i anførselstegn som et enkelt lag. For eksempel:

& ′C:\Program Files\Hello.exe′

Siden &-operatoren ikke analyserer kommandoen som sendes, kan den ikke tolke parameterne. Derfor sendes tilleggsparametere\argumenter også som tekst, i anførselstegn. Som et eksempel, la oss ta det forrige programmet og endre det litt slik at det godtar ønsket tekst som argument:

& ′C:\Program Files\Hello.exe′ ′Hei, verden′

Om ønskelig kan du spesifisere flere argumenter atskilt med komma:

& "C:\Program Files\Hello.exe" "Hei", "verden"

For enkelhets skyld kan kommandoen og argumentene plasseres i variabler:

$exe = ′C:\Program Files\Hello.exe′
$arg1 = "Hei"
$arg2 = "verden"
& $exe $arg1 $arg2

Vel, hvis det er mange argumenter, kan de kombineres ved å bruke følgende konstruksjon:

$exe = ′C:\Program Files\Hello.exe′
$allargs = @('Hei,','verden')
& $exe $allargs

Invoke-Expression

Invoke-Expression cmdleten fungerer omtrent på samme måte som &-operatoren – den tar en tekststreng og utfører den som en kommando. For eksempel:

Invoke-Expression -Kommando ′C:\Windows\Hello.exe′

Det har imidlertid én stor ulempe, nemlig manglende evne til å jobbe med mellomrom. For eksempel vil følgende kommando forårsake en feil:

Invoke-Expression -Kommando ′C:\Program Files\Hello.exe′

Denne funksjonen gjør det ekstremt upraktisk å bruke cmdlet. Selv om slike feil om nødvendig kan unngås ved å bruke flere sitater, for eksempel som dette:

Invoke-Expression -Kommando ″C:\′Program Files′\Hello.exe″

Start-prosess

Start-Process cmdleten starter spesifisert fil som en prosess ved bruk av metoden Start.NET-klassen Prosess. For eksempel:

Start-prosess -FilePath ′C:\Program Files\Hello.exe′

Som standard kjører prosessen inn eget vindu, som avsluttes ved slutten av prosessen. Du kan endre denne oppførselen ved å bruke parametere, så følgende kommando kjøres i det gjeldende vinduet:

Start-prosess -FilePath ′C:\Program Files\Hello.exe′ -NoNewWindow -Wait

Start-Process lar deg også sende flere argumenter til prosessen:

Start-prosess -FilePath ′C:\Program Files\Hello.exe′ -ArgumentList ′Hei, verden′ -NoNewWindow -Vent

Som standard returnerer ikke cmdleten noe, men du kan bruke parameteren -PassThru for å tvinge den til å returnere et prosessobjekt. Det er veldig praktisk å plassere dette objektet i en variabel:

$process = Start-Process -FilePath ′C:\Program Files\Hello.exe′ -Wait -PassThru

hvorfra du kan lære mange nyttige ting, for eksempel status:

$process.HasExited

$process.ExitTime

eller utførelseskode:

$process.ExitCode

.NETT

I prinsippet kan .NET Process-klassen brukes direkte, uten Start-Process cmdlet. For eksempel kan du starte prosessen med kommandoen:

::Start(′C:\Program Files\Hello.exe′)

Denne metoden er ganske upraktisk og tungvint (etter min mening), men litt mer fleksibel i bruk. La oss for eksempel kjøre programmet vårt i det gjeldende vinduet, sende argumenter til det og ta utførelsesresultatet:

$process = New-Object -TypeName System.Diagnostics.Process
$process.StartInfo.FileName = ″C:\Program Files\Hello.exe″
$process.StartInfo.Arguments = ″Hei, verden″
$process.StartInfo.RedirectStandardOutput = $true
$process.StartInfo.UseShellExecute = $false
$process.Start()
$process.WaitForExit()

$process.StandatdOutput.ReadToEnd()

WMI

Du kan gjøre nesten hva som helst med WMI, inkludert å kjøre et program. Metoden er ganske egnet for dette Skape WMI-klasse Win32_Process. Denne metoden starter en prosess på en lokal eller ekstern maskin via RPC. For eksempel å kjøre et program på lokal datamaskin du kan bruke denne kommandoen:

()″Win32_Process″).Create(′C:\Program Files\Hello.exe′)

Og for å kjøre på en ekstern datamaskin, vil kommandoen se slik ut:

()″\\fjerndatamaskin\root\cimv2:Win32_Process″).Create(′C:\Program Files\Hello.exe′)

Alternativt kan du bruke Invoke-WmiMethod cmdleten:

Invoke-WmiMethod -Class Win32_Process -Name Create -ArgumentList ″C:\Program Files\Hello.exe″

Eller bruk Invoke-CimMethod cmdleten:

Invoke-CimMethod -ClassName Win32_Process -MethodName Create -Arguments @(CommandLine=″C:\Program Files\Hello.exe″)

WMI starter prosessen i et eget vindu og returnerer et objekt som inneholder prosess-ID (ProcessID) og resultatet av utførelse (ReturnValue). ReturnValue kan ha følgende verdier:

0 — Vellykket fullføring
2 -Ingen tilgang
3 — Utilstrekkelig privilegium
8 – Ukjent feil
9 - Sti ikke funnet
21 - Ugyldig parameter

Påkalle-kommando

Invoke-Command-cmdleten kan utføre kommandoer på en lokal eller ekstern datamaskin ved hjelp av WinRM. For å kjøre programmet vårt på den lokale datamaskinen bruker vi for eksempel kommandoen:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″)

Om nødvendig kan du sende argumenter til programmet:

Invoke-Command -ScriptBlock (C:\′Program Files′\Hello.exe ″Hello,world″)

Vær oppmerksom på at Invoke-Command ikke er veldig vennlig med mellomrom, så for å unngå feil må du være kreativ med sitater. Imidlertid kan slike problemer unngås, for eksempel ved å kombinere bruken av cmdleten med &-operatoren:

Invoke-Command -ScriptBlock (& ​​′C:\Program Files\Hello.exe′)

Invoke-Command brukes hovedsakelig til fjernkontroll; dens største fordel er muligheten til å kjøre samtidig på flere datamaskiner. For eksempel:

Invoke-Command -ScriptBlock (″C:\′Program Files′\Hello.exe″) -Datamaskinnavn SRV1,SRV2,SRV3

$scriptblock = (″C:\′Program Files′\Hello.exe″)
$Computers = @(′SRV1′,′SRV2′,′SRV3′)
Invoke-Command -ScriptBlock $scriptblock -ComputerName $Computers

Som standard returnerer cmdleten resultatet av programkjøringen, og hvis du kjører den i bakgrunnen (-AsJob-parameteren), returnerer den et jobbobjekt:

Invoke-Command -ScriptBlock (C:\′Program Files′\Hello.exe) -ComputerName localhost -AsJob -JobName Hei

Invoke-Item

Invoke-Item cmdleten er utformet for å bruke en standardhandling på en fil. Så du kan kjøre den kjørbare filen med kommandoen:

Invoke-Item -Path ″C:\Program Files\Hello.exe″

Imidlertid er det mest praktisk å bruke Invoke-Item for å åpne en bestemt type fil. For eksempel, dette er hvordan vi åpner en tekstfil:

Invoke-Item -Path ″C:\Files\test.txt″

Og det er alt tekstfiler i mappen:

Invoke-Item -Path ″C:\Files\*.txt″

CMD

Vel, avslutningsvis, en annen måte å starte et program fra PowerShell på er å bruke cmd-skallet. Metoden er ganske "indirekte", men fungerer likevel. Følgende kommando starter en ny forekomst av cmd, kjøres i den det angitte programmet, avslutter cmd og returnerer resultatet:

cmd /c ″C:\Program Files\Hello.exe″

PoSh gir en slik overflod av måter å starte et program på. Og hver av dem er bra for visse situasjoner.

Artikkelen er forresten skrevet basert på PowerShell: Deep Dive and Best Practice. Jeg anbefaler å lese den, det er fortsatt mye interessant der.

Det er flere forskjellige måter å kjøre skriptet på, de viktigste er nedenfor:

  1. Start PowerShell og kjør skriptet i det (skriv inn banen til filen og filnavnet, for eksempel slik: C:\Scripts\test.ps1, eller gå til skriptmappen med kommandoen cd C:\Scripts og kjør den med kommandoen.\test.ps1) Skallet kan finnes og lanseres på mange måter. En måte er gjennom Start-menyen. For Windows 7 - må du gå til "Alle programmer" - "Tilbehør" - "Windows PowerShell" og starte "Windows PowerShell"-skallet. For Windows 10 - du må finne gruppen med bokstaven "W" og i den finner du "Windows PowerShell".
  2. Start "Windows PowerShell ISE" er et program – et utviklingsmiljø som lar deg redigere og feilsøke PowerShell-skript, som også er tilgjengelig som standard sammen med selve PowerShell. Etter å ha lansert den, trenger du bare å klikke på "Åpne"-knappen eller gå til Fil-menyen - Åpne og velg nødvendig skript, trykk deretter F5 eller "Kjør skript"-knappen. Du finner Windows PowerShell ISE på samme sted som PowerShell - i Start-menyen.
  3. Start standard kommandolinje og skriv i den:
    powershell -fil<имя_скрипта> (eksempel: powershell -file myscript.ps1)

Hvis du ikke har kjørt PowerShell-skript før, vil du sannsynligvis motta følgende melding: Kan ikke laste ned filen<имя_скрипта>, siden kjøring av skript er forbudt for dette systemet. Skriv "get-help about_signing" for mer informasjon. Dette skyldes det faktum at av sikkerhetsgrunner og for å forhindre utilsiktet utførelse av ondsinnet kode, må alle skript signeres digitalt.

Hvordan tillate kjøring av et usignert PowerShell-skript?

1. I PowerShell, før du kjører skriptet, kjør kommandoen for å tillate kjøring av usignerte skript for gjeldende shell-økt:

Set-ExecutionPolicy Remote Signed -Scope Process

2. Ved oppstart fra standard kommandolinje bruk parameteren -executionpolicy, dvs. kjør skriptet slik:

<имя_скрипта>

Begge metodene setter policyen bare for gjeldende økt, mens sikkerhetspolicyen for utføring av PowerShell-skript skrevet i registeret ikke endres og forblir den samme. Hvis du vil endre sikkerhetspolicyen for utførelse av skript til "permanent", bruk denne metoden:

3. Tillat oppstart for alltid: Start PowerShell som administrator, og kjør deretter kommandoen:

Set-ExecutionPolicy Remote Signed

Merk: Hvis skriptet ble lastet ned fra Internett, må du bruke Bypass i stedet for RemoteSigned for å unngå en forespørsel om å bekrefte lanseringen - helt deaktivere eventuelle forespørsler og advarsler.

Hvordan kjører jeg et PowerShell-skript i bakgrunnen?

For å gjøre dette, bruk bare startparameteren -WindowStyle, som kan ha følgende verdier: Normal, Minimert, Maksimert og Skjult. For å kjøre et usignert skript i bakgrunnen, må du kjøre kommandoen:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -fil<имя_скрипта>

Du kan også legge til -NonInteractive hvis du ønsker det, slik at skriptet ikke stiller noen spørsmål. Dermed vil skriptet kjøres ubemerket av brukeren. Vær forsiktig når du bruker denne metoden.

Kjøre et PowerShell-skript med parametere

Selve lanseringen bør gjøres som om du skulle lansere vanlig program eller bat-fil med parametere. For å kjøre et skript med parametere fra kommandolinjen, kan du for eksempel skrive følgende kommando:

powershell -executionpolicy RemoteSigned -fil<имя_скрипта>param1 param2 "en annen tekstparameter"

I selve skriptet kan du få disse parameterne slik:

Param ($var1, $var2, $var3) ekko $var1, $var2, $var3

I PowerShell ISE kan du kjøre et skript med parametere på samme måte ved å bruke kommandopanelet.

Hvordan kjører jeg et PowerShell-skript ved hjelp av en snarvei?

Denne oppgaven kan utføres på to måter:

  1. Lag en bat/cmd-fil der du kan skrive en kommando for å kjøre skriptet (du har lest parameterne ovenfor)
  2. Lag en snarvei til PowerShell, som du finner i mappen c:\Windows\System32\WindowsPowerShell\v<версия>\ og i snarveiegenskapene i "Objekt"-feltet, legg til de nødvendige parameterne.

Så for eksempel å løpe powershell-skript Når brukeren logger på, kan du ganske enkelt lage en snarvei som beskrevet i avsnitt 2 og sette den i oppstart. Hvis du oppretter en snarvei ved å bruke en av metodene ovenfor, kan du enkelt kjøre skriptet som administrator eller som en hvilken som helst annen bruker som et vanlig program.

PowerShell-skriptspråket er et ganske kraftig verktøy for å løse ulike problemer, men det kan brukes ikke bare til gode ting, men også til dårlige ting, så bruk det med omhu ;)