Een programma uitvoeren vanuit PowerShell. Hoe PowerShell te openen, alle methoden Een powershell-script uitvoeren

Een PowerShell-script uitvoeren

In deze opmerking wordt beschreven hoe u de benodigde parameters voor het starten kunt configureren PowerShell scripts. Vaker bij de eerste start .ps1 scripts ziet u de volgende fouten:

Bestand kan niet worden geladen. Bestand beschikt niet over een digitale handtekening. Het script wordt niet op het systeem uitgevoerd. Voor meer informatie voert u het commando "Get-Help about_signing" in.
Het bestand kan niet worden geladen. Het bestand is niet digitaal ondertekend. Het script wordt niet uitgevoerd op het systeem. Zie 'Hulp krijgen over_ondertekenen' voor meer informatie.

Een programma lanceren van een onbetrouwbare uitgever? Bestand gepubliceerd door CN= Deze uitgever is door dit systeem niet gemarkeerd als vertrouwd. Voer alleen scripts van vertrouwde uitgevers uit.
[V] Nooit uitvoeren [D] Niet uitvoeren [R] Eén keer uitvoeren [A] Altijd uitvoeren [?] Help (standaard "D"):
Wilt u software van deze niet-vertrouwde uitgever uitvoeren? Het bestand wordt uitgegeven door CN= Deze uitgever wordt niet vertrouwd op uw systeem. Voer alleen scripts uit van vertrouwde uitgevers.
[V] Nooit uitvoeren [D] Niet uitvoeren [R] Eén keer uitvoeren [A] Altijd uitvoeren [?] Help (standaard is “D”):

Deze fouten en berichten worden veroorzaakt door de instellingen van het Windows-uitvoeringsbeleid PowerShell. U moet echter niet denken dat deze parameters daadwerkelijk de beveiliging van het besturingssysteem vergroten, omdat de code nog steeds werkt als u deze naar de PowerShell-console kopieert. Beveiligingsinstellingen kunnen dus worden uitgeschakeld - ze beschermen alleen tegen onbedoelde acties. Daarom meestal dit probleem wordt door het team opgelost:

Set-ExecutionPolicy Onbeperkt LocalMachine

Deze aanpak is uiteraard niet toepasbaar in een bedrijfsomgeving, dus laten we deze situatie eens nader bekijken. U kunt de huidige beleidsinstellingen in alle toepassingsgebieden bekijken door de cmdlet uit te voeren Get-uitvoeringsbeleid met de lijstparameter.

get-executionpolicy-lijst

Domein Uitvoeringsbeleid
—— —————
Machinebeleid Onbeperkt
Gebruikersbeleid Ongedefinieerd
Proces Op afstand ondertekend
Huidige gebruiker Allesondertekend
Lokaal apparaat Beperkt

Dit beleid kan zes waarden aannemen:

Beperkt(Het beleid wordt standaard uitgevoerd. Bijvoorbeeld als alle toepassingsgebieden zijn ingesteld op Ongedefinieerd)
- Staat individuele opdrachten toe, maar scripts kunnen niet worden uitgevoerd.
- Voorkomt de uitvoering van alle scriptbestanden, inclusief indelings- en configuratiebestanden (PS1XML), modulescriptbestanden (PSM1) en Windows PowerShell-profielen (PS1).

Allesondertekend

- Vereist dat alle scripts en configuratiebestanden worden ondertekend door een vertrouwde uitgever, inclusief scripts die op de lokale computer zijn voorbereid.
- Er worden waarschuwingen gegeven voordat uitgeversscripts worden uitgevoerd waarvan nog niet is vastgesteld dat ze vertrouwd zijn.
— Er bestaat een risico dat niet-ondertekende scripts worden uitgevoerd vanaf andere bronnen dan internet, evenals ondertekende maar kwaadaardige scripts.

Op afstand ondertekend
— Uitvoering van scripts is toegestaan.
- Vereist dat scripts en configuratiebestanden gedownload van internet (inclusief e-mail en instant messaging) digitaal worden ondertekend door een vertrouwde uitgever.
— Vereist geen digitale handtekeningen voor scripts die worden uitgevoerd en geschreven op de lokale computer (niet gedownload van internet).
— Er bestaat een risico dat ondertekende maar kwaadaardige scripts worden uitgevoerd.

Onbeperkt
- Niet-ondertekende scripts kunnen worden uitgevoerd. (Er bestaat een risico dat kwaadaardige scripts worden uitgevoerd.)
- Waarschuwt de gebruiker voordat scripts en configuratiebestanden worden uitgevoerd die zijn gedownload van internet.

Omzeilen
— Er wordt niets geblokkeerd en er verschijnen geen waarschuwingen of verzoeken.
- Dit uitvoeringsbeleid is bedoeld voor configuraties waarin een Windows PowerShell-script is ingebed binnen een grotere applicatie, of voor configuraties waarin Windows PowerShell het platform is voor een programma dat een eigen beveiligingsmodel heeft.

Ongedefinieerd
— Voor het huidige bereik is geen uitvoeringsbeleid ingesteld.
- Als het uitvoeringsbeleid in alle bereiken Ongedefinieerd is, is het uitvoeringsbeleid Beperkt, wat het standaarduitvoeringsbeleid is.

Er zijn vijf gebieden waarop dit beleid en deze instellingen van toepassing zijn:

Machinebeleid En Gebruikersbeleid worden ingesteld door AD-beleid of lokaal beleid van een bepaalde computer.
Proces— toepassingsgebied: huidige sessie. De help zegt dat de waarde ervan is opgeslagen in de variabele $PSExecutionPolicyPreference, maar het was niet mogelijk om de waarde van dit beleid via de variabele te verkrijgen/wijzigen. Wijzigingen in dit toepassingsgebied hebben geen invloed op andere sessies.
Huidige gebruiker— reikwijdte van de huidige gebruiker. De waarde ervan wordt opgeslagen in de registersleutel HKEY_CURRENT_USER (“HKEY_CURRENT_USER\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell\ExecutionPolicy”).
Lokaal apparaat— toepassingsgebied voor alle gebruikers van de huidige computer. Het wordt opgeslagen in de registersleutel HKEY_LOCAL_MACHINE("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\ScriptedDiagnostics\ExecutionPolicy").

Het team get-executiebeleid er is een parameter -Scope. Met deze parameter kunt u het bereik selecteren waarvoor de beleidswaarde wordt weergegeven.

Get-ExecutionPolicy-scope-proces

Resultaat van het uitvoeren van de cmdlet: Op afstand ondertekend

In dit geval hebben de toepassingsgebieden prioriteit, heeft MachinePolicy de hoogste prioriteit en hebben UserPolicy, Process, CurrentUser en LocalMachine de laagste prioriteit.
Daarom in het voorbeeld:

Domein Uitvoeringsbeleid
—— —————
Machinebeleid Onbeperkt
Gebruikersbeleid Ongedefinieerd
Proces Op afstand ondertekend
Huidige gebruiker Allesondertekend
Lokaal apparaat Beperkt

In de huidige sessie is het resulterende beleid Onbeperkt.

Om de waarde van het scriptuitvoeringsbeleid voor een bepaalde sessie te achterhalen, moet u de cmdlet Get-ExecutionPolicy zonder parameters gebruiken.

Conclusie: onbeperkt

Het scriptuitvoeringsbeleid wijzigen PowerShell:

Om de waarde van het uitvoeringsbeleid voor PowerShell-scripts te wijzigen, is er de cmdlet Set-ExecutionPolicy.
Deze cmdlet heeft de volgende parameters:

-Executiebeleid
Geeft de waarde van het beleid aan. Kan de volgende waarden hebben: Restricted, AllSigned, RemoteSigned, Unrestricted, Bypass, Undefined. Deze parameter is vereist. Indien niet gespecificeerd, zal de comadlet tijdens runtime om waarden vragen.

Conclusie:
Geef waarden op voor de volgende parameters:
Uitvoeringsbeleid:

-Domein
Definieert de reikwijdte van dit beleid. Kan de volgende waarden hebben: LocalMachine, Process, CurrentUser. Als de scope-parameter niet is opgegeven, is de standaardwaarde LocalMachine.

Set-ExecutionPolicy -ExecutionPolicy Onbeperkt - Bereikproces

Set-ExecutionPolicy Onbeperkt proces

-Kracht
Met deze parameter heeft de cmdlet geen bevestiging van de gebruiker nodig. Bijvoorbeeld:

Set-ExecutionPolicy Onbeperkt proces - Force

De cmdlet geeft niets weer en past de beleidswaarde toe.

-Bevestigen
Als u daarentegen aan één bevestiging niet genoeg heeft. U kunt de parameter Bevestigen opgeven en u krijgt nog een extra verzoek om uw acties te bevestigen:

Set-ExecutionPolicy -ExecutionPolicy Onbeperkt - Bereikproces - bevestigen

Uitvoeringsresultaat:

Bevestiging
Weet u zeker dat u deze actie wilt uitvoeren?
Een "Set-ExecutionPolicy" -bewerking uitvoeren op het doelobject "Unrestricted".
[Y] Ja - Y [A] Ja voor alles - A [N] Nee - N [L] Nee voor alles - L [S] Onderbreken - S [?] Help (standaardwaarde is "Y"):

Het uitvoeringsbeleid wijzigen
Uitvoeringsbeleid beschermt uw computer tegen niet-vertrouwde scripts. Het wijzigen van het uitvoeringsbeleid kan de systeemveiligheid in gevaar brengen, zoals beschreven in het Help-onderwerp voor de opdracht about_Execution_Policies. Wilt u het uitvoeringsbeleid wijzigen?
[Y] Ja - J [N] Nee - N [S] Onderbreken - S [?] Help (standaardwaarde is "Y"):. exe -uitvoeringsbeleid Onbeperkt

Get-ExecutionPolicy-lijst

Uitvoeringsresultaat:

Domein Uitvoeringsbeleid
—— —————
Machinebeleid Onbeperkt
Gebruikersbeleid Ongedefinieerd
Proces Op afstand ondertekend
Huidige gebruiker Allesondertekend
Lokaal apparaat Beperkt

Beleidsinstellingen voor het starten van scripts wijzigen met behulp van groepsbeleid.

In groepsbeleid bevindt de parameter die het starten van scripts regelt zich langs het pad:

Voor Machinebeleid:

Computerconfiguratie/Beleid/Beheersjablonen/Windows-componenten/Windows PowerShell

Computerconfiguratie/Beheersjablonen/Windows-componenten/Windows PowerShell

Voor Gebruikersbeleid:
Gebruikersconfiguratie/beleid/beheersjablonen/Windows-componenten/Windows PowerShell

Gebruikersconfiguratie/Beheersjablonen/Windows-componenten/Windows PowerShell

De parameter Uitvoeringsbeleid kan drie waarden aannemen.

PowerShell-scripts uitvoeren volgens een schema

De taken van vrijwel elke systeembeheerder omvatten het schrijven van verschillende scripts en het uitvoeren ervan. Het plannen van een script om volgens een schema te worden uitgevoerd met Task Sheduler is geen moeilijke taak, maar er zijn enkele nuances bij het gebruik van PowerShell, die ik in dit artikel zal bespreken.

Laten we zeggen dat ik een script start.ps1 heb dat ik tien dagen lang elke dag moet uitvoeren. Er zijn twee manieren om dit probleem op te lossen.

Methode 1

Om het script uit te voeren, gebruiken we de module Taakplanner, ook wel de taakplanner genoemd. U kunt het vinden in het gedeelte Systeembeheer of door erop te klikken Winnen+R en het invoeren van de opdracht takenschd.msc. Open de planner en selecteer in het gedeelte Acties Taak maken.

Geef op het tabblad Algemeen de naam en beschrijving van de taak op, evenals (indien nodig) de gebruiker onder wiens naam de taak wordt gestart. Om ervoor te zorgen dat de taak wordt uitgevoerd, ongeacht of de gebruiker is ingelogd op het systeem, selecteert u de optie "Uitvoeren, ongeacht of de gebruiker is aangemeld of niet". Als een verhoging van bevoegdheden vereist is om een ​​taak te voltooien, vink dan de optie ‘Uitvoeren met de hoogste rechten’ aan.

Ga vervolgens naar het tabblad Triggers en maak een nieuwe trigger, waarin het startschema voor onze taak wordt opgeslagen. In het veld Start geven we de startdatum en -tijd aan, en in het veld Verlopen geven we de datum en tijd aan waarop de taak is voltooid. Wij geven aan de taak dagelijks uit te voeren (Dagelijks) en stellen de herhaalperiode (Elke herhaling) in op 1 dag.

Opmerking. Als u een taak vaker dan één keer per dag wilt uitvoeren, moet u Eén keer selecteren en in het gedeelte Geavanceerde instellingen de optie Taak herhalen elk item selecteren en de herhalingstijd opgeven, minimaal 5 minuten, maximaal 1 uur. Als dit niet voldoende is, kunt u in het veld Vertragingstaak voor maximaal een extra tijdsvertraging opgeven.

En het belangrijkste. Ga naar het tabblad Actie en geef de actie op voor de geplande taak. Ik wil u eraan herinneren dat scripts om veiligheidsredenen met PowerShell alleen interactief kunnen worden uitgevoerd, dat wil zeggen dat u eerst de PowerShell-shell moet starten en daarin het pad naar het script moet opgeven. Daarom geven we in het veld "Actie" de lancering van powershell.exe aan, en in het veld "Argumenten toevoegen" de parameter -File en het pad naar ons script, zoals dit:

Bestand ″C:\Scripts\start.ps1″

U kunt ook in het argumentenveld opgeven:

Commando - Voert de opgegeven opdrachten en eventuele andere parameters uit. Deze parameter kan ook worden gebruikt om een ​​script uit te voeren, bijvoorbeeld: -Commando ″& (C:\Scripts\start.ps1)″. Bovendien kan het worden gebruikt om parameters aan het script door te geven: -Commando ″& (C:\Scripts\start.ps1 -a 1 -b 3)″;
-ExecutionPolicy — stelt het scriptuitvoeringsbeleid in voor de huidige sessie en kan de waarden Unrestricted, RemoteSigned, AllSigned en Restricted aannemen. Het gespecificeerde beleid zal van kracht zijn alleen in de huidige sessie en heeft voorrang op eerder gecreëerd beleid;
-NonInteractive — schakel de uitvoer van interactieve verzoeken naar de gebruiker uit;
-WindowStyle Hidden - start het PowerShell-venster in verborgen modus, onzichtbaar voor de gebruiker;
-NoProfile - voorkomt het laden van profielen, wat de uitvoering van het script enigszins kan versnellen;
-NoExit — laat de shell open nadat het script is uitgevoerd. Dit kan nodig zijn bij het controleren en debuggen van het script.

Nadat u de verplichte velden heeft ingevuld, klikt u op OK en slaat u de taak op. Nu wordt het script gedurende 10 dagen elke dag op het opgegeven tijdstip volgens een schema uitgevoerd.

Methode 2

PowerShell 3.0 introduceert nieuwe functionaliteit voor geplande taken, die het mogelijk maakt om geplande taken rechtstreeks vanaf de console te maken, zonder gebruik te maken van de Scheduler-module. We zullen het gebruiken voor de geplande lancering van ons script.

Eerst maken we een lanceerschema (dagelijks om half vijf 's avonds, gedurende 10 dagen):

$t = Nieuwe taaktrigger -Dagelijks -Om 16:30 uur -Dageninterval 10

Vervolgens slaan we de inloggegevens op in een variabele:

$cred = Get-referentie contoso\administrator

Als optie specificeren we het uitvoeren van de taak met verhoogde rechten:

$o = Nieuwe geplande taakoptie - RunElevated

En registreer een taak met de naam Start:

Register-ScheduledJob -Naam Start -Bestandspad C:\Scripts\start.ps1 -Trigger $t -Credential $cred -ScheduledJobOption $o

Om er zeker van te zijn dat de taak is aangemaakt, kunt u de planner openen en onze taak vinden in de sectie Microsoft\Windows\PowerShell\SheduledJobs.

Opmerking. Voor elke geplande PowerShell-taak wordt een map met dezelfde naam gemaakt in de map %systemdrive%\Users\%username%\AppData\Local\Microsoft\Windows\PowerShell\ScheduledJobs. Deze map bevat de taak zelf in een XML-bestand en de map Output, waarin, in submappen op uitvoeringstijd, de geschiedenis van de uitvoering van de taak wordt opgeslagen: het uitvoeringsresultaat (bestand Result.xml) en de taakstatus (Status.xml). Deze bestanden kunnen nuttig zijn voor foutopsporing en diagnose als de taak niet goed werkt.

Uitvoeringsbeleid

Tot slot wil ik u herinneren aan één belangrijk punt, namelijk het uitvoeringsbeleid. U kunt de huidige beleidswaarde bekijken met de opdracht Get-ExecutionPolicy. Uitvoeringsbeleid kan de volgende waarden hebben:

Beperkt - de uitvoering van scripts is geblokkeerd. Standaardwaarde;
AllSigned - uitvoering van scripts met een digitale handtekening is toegestaan;
RemoteSigned - scripts die op de lokale computer zijn voorbereid, kunnen zonder beperkingen worden uitgevoerd, scripts die van internet zijn gedownload - alleen met een digitale handtekening;
Onbeperkt - uitvoering van alle scripts is toegestaan. Bij het uitvoeren van een niet-ondertekend script dat van internet is gedownload, heeft het programma mogelijk bevestiging nodig;
Omzeilen - er wordt niets geblokkeerd, er verschijnen geen waarschuwingen of verzoeken.

Voor een probleemloze uitvoering van scripts is het doorgaans voldoende om de waarde in te stellen op RemoteSigned. U kunt de huidige waarde wijzigen met de opdracht Set-ExecutionPolicy, bijvoorbeeld:

Set-ExecutionPolicy RemoteSigned -force

Opmerking. Als het uitvoeringsbeleid dat in de opdracht is opgegeven in tegenspraak is met het groepsbeleid, wordt de parameter naar het register geschreven, maar heeft deze geen effect.

Dag Allemaal! Vandaag een korte opmerking over dit onderwerp, hoe powershell als beheerder te openen. Ik wil u eraan herinneren dat PowerShell een krachtige programmeer- en beheertaal van Microsoft is; het krijgt elk jaar een toenemend aantal cmdlets en functionaliteit. In wezen is het een vervanging voor de Windows-opdrachtprompt. Hieronder zullen we methoden bekijken waarmee u het kunt openen en configureren.
.

Methoden voor het openen van een PowerShell-module

Powershell ontwikkelt zich erg goed en heeft met de release van Windows 10 al versie 5 ontvangen, maar ons onderwerp is anders. Dus hoe powershell te openen? Alles is eenvoudig, als er in Windows XP niets is. Omdat het apart wordt geleverd, wordt het in alle volgende releases als ingebouwd onderdeel geleverd. De meest universele manier om Powershell te openen is door te klikken

Win+R en voer powershell in

Door op enter te drukken, wordt de PowerShell-console gestart, het enige probleem is dat deze niet als beheerder wordt geopend. En als gevolg daarvan zullen veel opdrachten niet worden uitgevoerd; hieronder zullen we zien hoe u dit namens de beheerder kunt doen.

Windows Powershell uitvoeren als beheerder in Windows 8.1 en Windows 7

U kunt Windows Powershell openen via Start. Ga in Windows 8.1, Windows 2012 R2 naar Systeemwerkset - Windows, klik met de rechtermuisknop en selecteer Als administrator uitvoeren.

In Windows 7 en Windows 2008 R2 ziet het er als volgt uit: Start > Accessoires > Windows PowerShell

U kunt ook een snelkoppeling maken in het taakitem, er met de rechtermuisknop op klikken en het juiste item selecteren

Het zou handig zijn als PowerShell altijd als beheerder wordt geopend, laten we het implementeren. Dit gebeurt in alle versies van Windows op dezelfde manier. Het bedieningspaneel openen

Klik er met de rechtermuisknop op en selecteer Eigenschappen. U kunt onmiddellijk het pad zien naar het bestand waar het zich in het systeem bevindt.

Klik op de knop "Geavanceerd". U zult aanvullende eigenschappen zien. waar u het vakje Als administrator uitvoeren moet aanvinken.

Alles is heel eenvoudig. Ik ben er zeker van dat je nu geen vraag meer hebt over het openen van Windows Powershell. Een ander handig ding is om het lettertype in het powershell-venster te wijzigen.

Hoe PowerShell te openen vanuit het contextmenu van de startknop in Windows 10

Microsoft concentreert zich steeds meer op zijn krachtige taal (PowerShell) vanaf de opdrachtregel, en dit is logisch, aangezien de mogelijkheden voor het beheren van besturingssystemen van de Windows-familie vrijwel onbeperkt zijn, zo niet meer dan in de grafische interface. Vanaf versie 1709 van Windows 10 verving PowerShell in het contextmenu de gebruikelijke cmd. Klik met de rechtermuisknop op de startknop in Windows 10 en selecteer in het contextmenu het juiste item:

  1. Windows PowerShell
  2. Windows PowerShell (beheerder) is precies de modus met maximale rechten in Windows 10.

Start Windows PowerShell met Zoeken in Windows 10

In Windows 10 en oudere versies kun je de PowerShell-shell vinden met een normale zoekopdracht; hiervoor is een speciale sectie. Klik naast de Start-knop op het vergrootglaspictogram. Voer in het zoekformulier dat wordt geopend het woord PowerShell in. Je gaat zoeken naar alle opties, waaronder de schaal. Als u er met de rechtermuisknop op klikt, kunt u het als beheerder openen.

Windows PowerShell starten vanuit het Start-menu in Windows 10

Om PowerShell te openen vanuit het Start-menu, opent u het en zoekt u het Windows PowerShell-item. Het heeft de vorm van een map, opent het en voert de juiste versie uit.

Als u met de rechtermuisknop klikt, kunt u de Vershel-shell uitvoeren als beheerder met beheerdersrechten.

Aanvullende en generieke shell-lanceringsmethoden

Er zijn ook zeer specifieke methoden om een ​​shell te openen met een krachtige taal van Microsoft. De meest onhandige is om simpelweg het uitvoerbare bestand te vinden en het rechtstreeks vanaf de locatie op het systeem uit te voeren. Laten we naar uw Windows 10 gaan via het volgende pad:

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

Als gevolg hiervan ziet u een map met snelkoppelingen die aanwezig zijn in het Start-menu, u kunt ze starten.

U kunt ook het originele uitvoerbare bestand uitvoeren, dat zich langs het pad bevindt:

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

En door er met de rechtermuisknop op te klikken, kunt u het downloaden als beheerder, met maximale rechten.

U kunt Windows PowerShell ook starten vanuit het opdrachtregelvenster; voer eenvoudigweg het toverwoord erin in en druk op Enter.

Welnu, laat me u ook herinneren aan de methode voor het starten van een nieuwe taak vanuit de module "Taakbeheer". Open "Taakbeheer", selecteer het menu-item "Bestand - Nieuwe taak uitvoeren"

Voer PowerShell in het venster dat verschijnt.

Welnu, de laatste methode die mij bekend is, is om PowerShell te starten via Windows 10 Explorer. Om dit te doen, opent u Explorer, selecteert u het menu-item "Bestand - start Windows PowerShell", er zullen beide modi zijn.

Wat is PowerShell ISE

U hebt waarschijnlijk gemerkt dat de PowerShell ISE-snelkoppeling overal aanwezig is, en u wilt graag weten wat deze is. In een notendop is dit een speciale shell waarin je scripts en scenario's kunt schrijven in PowerShell, met behulp van alle verschillende cmdlets die Microsoft je biedt.

Powershell het wijzigen van het lettertype is heel eenvoudig, ga naar het tabblad Lettertype in de eigenschappen, waar u de grootte kunt instellen van 5 tot 72.

U kunt ook naar de eigenschappen gaan vanuit het hulpprogramma zelf, klik op het pictogram in de linkerbovenhoek en selecteer eigenschappen

Hier zijn de lettertype-instellingen enigszins anders, en naarmate ze veranderen, verandert ook de grootte van de console.

Op het tabblad Kleuren kunt u de lettertypekleur in Powershell en het venster zelf instellen. Door het bijvoorbeeld zwart te maken, net als de opdrachtregel.

Ik adviseer ook dat als u een actieve consolegebruiker bent, u de buffergrootte niet op 50 opdrachten instelt, maar op zijn minst op 100.

Bedankt voor uw aandacht. Dit zijn de methoden voor het openen van de Power Shell-console in Windows. Sitemateriaal

PowerShell is een alternatieve opdrachtregel met uitgebreide functionaliteit. Veel computerbezitters die goed thuis zijn in systeemprocessen zijn geïnteresseerd in de mogelijkheden om het op Windows 10 en eerdere versies van deze software te gebruiken om specifieke processen en pc-instellingen voor zichzelf te wijzigen.

Er is niets ingewikkelds aan het gebruik van PowerShell. Volg gewoon alle instructies in dit artikel en u zult slagen.

Als u geen expert bent op dit gebied, maar net begint met het bestuderen van opdrachtregels en de acties die daarin kunnen worden uitgevoerd, zal het nuttig zijn om de antwoorden te kennen op de belangrijkste vragen over het gebruik van een dergelijke applicatie. Bijvoorbeeld hoe u Windows PowerShell ISE Windows 10 uitvoert en scripts schrijft en ermee werkt.

Hoe PowerShell openen?

Dit kan op verschillende van de volgende manieren:

  • - u vindt de toepassing in de algemene componentenlijst onder de letter W.
  • Gebruik zoeken in de taakbalk - open het en voer het woord PowerShell in om te zoeken.
  • Gebruik het menu "Uitvoeren", voer het door de Win + R-combinatie uit en schrijf de naam van het hulpprogramma, waarna het in het systeem zal worden gevonden.
  • Stel in Commander de PowerShell-actie in, maar u moet weten dat u met de applicatie werkt via een reeds lopende regel, en niet in een apart venster.
  • Selecteer in Windows-instellingen Taakbalkeigenschappen en Startmenu. Vink op het tabblad “Navigatie” het vakje aan naast “Vervang de opdrachtregel door PowerShell...”. Nu kunt u het hulpprogramma inschakelen met behulp van de Win+X-combinatie.

Hoe schrijf en voer ik scripts uit?

Hoe maak je een PowerShell-script en voer je het uit? Dit kan eenvoudig in een notitieblok worden gedaan - gebruik het om de opdrachten aan te geven die u nodig hebt in het nieuwe document. Sla het vervolgens op, maar verander het formaat in .ps1 - dit is de extensie die de bestanden van dit systeemhulpprogramma hebben.

U kunt als volgt scripts in de applicatie zelf schrijven:

  • Lanceer het.
  • Klik op het item "Maken".
  • Of klik op “Bestand” en selecteer “Maken” in de lijst die verschijnt.
  • Schrijf alle opdrachten die moeten worden uitgevoerd en sla het bestand op.

Scripts kunnen nog steeds in FAR Manager worden geschreven en bewerkt, maar ze kunnen niet rechtstreeks in een dergelijke applicatie worden gebruikt, omdat deze bestanden van dit type via de standaard cmd-regel weergeeft. Andere acties worden echter op dezelfde manier uitgevoerd als in het "native" hulpprogramma.

U kunt het script op deze manier uitvoeren:

  1. Meld u als beheerder aan bij PowerShell.
  2. Gebruik de cd-opdrachten om de locatie van het vereiste bestand op te geven. Bijvoorbeeld e: cd\ cd work .\ bestandsnaam. Ps1, of e: \werk\bestandsnaam.ps1
  3. In dit geval is e: de naam van de harde schijf waarop het bestand zich bevindt.
  4. Druk op Enter.

Het programma zal u zeker een bericht laten zien met de tekst "Het bestand ___ .Ps1 kan niet worden geladen omdat het uitvoeren van scripts verboden is op dit systeem..." wanneer u de opdracht voor de eerste keer uitvoert. Feit is dat Windows dankzij de ontwikkelaars is uitgerust met bescherming tegen interferentie, dus geen van de gebruikers heeft standaard toegang om dergelijke acties uit te voeren. Maar deze beperking kan heel gemakkelijk worden omzeild.

Hoe? De tekst die bij de fout verschijnt, raadt u aan de opdracht get-help about_signing in te voeren om meer informatie te krijgen. U kunt deze instructies volgen of de op afstand ondertekende combinatie Set-ExecutionPolicy gebruiken. Nadat u deze hebt ingevoerd, is bevestiging vereist en wordt de beperking verwijderd.

Overige vragen over gebruik

Veel mensen hebben een vraag: hoe kom je achter de versie van PowerShell? Om dit te doen, doet u het volgende:

  1. Voer $PSVersionTable in.
  2. Als dit niets oplevert, dan heb je versie 1.0 - daar is een commando $host.version voor.
  3. Anders verschijnt er gedetailleerde informatie over welke versie van de applicatie op de pc is geïnstalleerd.

Een andere vraag die het beantwoorden waard is, is hoe PowerShell te verwijderen? Hiervoor zijn de volgende acties nodig:

  • Ga via het Configuratiescherm naar het menu Programma's toevoegen/verwijderen.
  • Zoek de Microsoft Windows-tak
  • Verwijder de update voor de WindowsPowerShell(TM)-component en volg de systeeminstructies.

Nu u alles weet over het schrijven en uitvoeren van PowerShell-scripts, kunt u deze opdrachtregel voor veel bewerkingen op het systeem gebruiken. Bovendien heeft u altijd de mogelijkheid om de versie van dit product te achterhalen en deze zelfs gedeeltelijk te verwijderen - vanwege het feit dat het samen met systeemcomponenten is geïnstalleerd, zal dit nog steeds niet mogelijk zijn om dit volledig te doen. We raden u alleen aan voorzichtig te zijn bij het uitvoeren van al deze acties, om de computer als geheel niet te beschadigen.

Er is meer dan een jaar verstreken sinds de release van Windows 7 en Server 2008.

Programmeurs, systeembeheerders en gevorderde gebruikers hebben veel toepassingen gevonden voor het blauwe venster, vergelijkbaar met de opdrachtregel.

De meeste beginnende gebruikers weten niet eens wat PowerShell (PS) is.

Maar met scripts voor PowerShell kunt u bijna 100% van de acties en scripts die in het besturingssysteem worden uitgevoerd, automatiseren via de opdrachtregel en grafische interface.

Laten we kennis maken met de belangrijkste mogelijkheden van dit programma, waarbij we meer aandacht besteden aan de functie van het maken en uitvoeren van scripts (firmware).

Er zijn talloze handleidingen en documentatie voor het programma, ook in het Russisch. Doel van het artikel– de gebruiker voorzien van conceptuele kennis, up-to-date brengen, maar of het de moeite waard is om de tolk en de uitvoering van scripts daarin beter te leren kennen, zal iedereen voor zichzelf beslissen.

Wat is Windows PowerShell?

PowerShell– een tolk gebaseerd op het .NET Framework, uitgerust met een eigen scripttaal.

De eerste betekent dat het in tekstmodus werkt: u voert een opdracht in, voert deze uit en op het scherm ziet u het resultaat van de uitvoering ervan.

Zoals het was in MS-DOS en oudere versies van UNIX.

De tweede vereenvoudigt, versnelt en automatiseert het beheer en onderhoud van systemen, applicaties, processen en aanverwante diensten door beheerders en gewone gebruikers aanzienlijk.

Vergeleken met andere tolken, PS is anders:

  • integratie met – stelt u in staat krachtige scripts te maken door er programmacode in te introduceren;
  • alle geretourneerde gegevens zijn objecten, geen tekst-/tekenreeksgegevens, wat de overdracht ervan naar andere scripts en eventuele verwerking impliceert.

PowerShell-versie 2 beschikt over de volgende mogelijkheden, Laten we enkele ervan in meer detail bekijken:

  • Mogelijkheid om opdrachten weer te geven als cmdlets– ze worden binnen de tolk gelanceerd; anders wordt de opdracht in een afzonderlijk proces uitgevoerd.
  • Gebruik van transportbanden– zijn ontworpen om gegevens van de ene opdracht naar de andere over te dragen met behoud van hun structuur en type.
  • Geïntegreerde multi-stream gegevensoverdracht via het netwerk met prioriteitstelling en hervatting van de verbinding.
  • Ondersteuning voor positionele en benoemde parameters.
  • Achtergrondwerk– asynchrone aanroep van opdrachten en het starten van scripts op externe machines.
  • Het opzetten van beperkte sessies met externe clients en er scripts op uitvoeren.
  • Modules– een manier om scripts te organiseren wanneer ze zelfvoorzienend worden en in hun eigen container worden uitgevoerd zonder de omgeving van de module te beïnvloeden.
  • Beschikbaarheid van een foutafhandelaar.
  • Grafische omgeving voor de taal: syntaxis, debugger, markeren, automatische opdrachtvoltooiing met ondersteuning voor Unicode en bladwijzers.
  • Breekpunten aan lijnen toevoegen, opdrachten, bewerkingen en variabelen voor het debuggen van het script.
  • Blokkeer en interlineaire opmerkingen.
  • Ondersteuning voor het maken van aliassen voor sommige cmdlets, die op het moment van uitvoering worden omgezet in gewone opdrachten.
  • Beperkte sessies creëren, waar u een strikt gespecificeerde lijst met opdrachten kunt uitvoeren en nog veel meer.

PowerShell-broncode voor iedereen beschikbaar gemaakt: Elk communitylid kan vrijelijk zijn eigen extensies maken om de functionaliteit van de opdrachtregelinterpreter te vergroten.

U kunt beginnen met het beheersen van een geïntegreerde scripttaal zonder enige programmeervaardigheden.

Het is onwaarschijnlijk dat je een complex scenario kunt creëren, maar bijna iedereen zal reeksen primitieve acties kunnen uitvoeren.

Hoewel het, zonder kennis van de basisconcepten van PowerShell, onwaarschijnlijk is dat u iets kunt doen in het opdrachtinterpretervenster. Laten we met hen beginnen.

Cmdlets

Cmdlets– eigenaardige PS-commando’s waarachter een verscheidenheid aan functies verborgen zijn. De commando's die in de tolk zijn ingebouwd, worden geïmplementeerd volgens het principe van "werkwoord-zelfstandig naamwoord", bijvoorbeeld Get-Process (een lijst met processen ophalen). Met deze oplossing kunt u de essentie van de opdracht begrijpen, alleen al door de naam (in het Engels).

Sommige cmdlets ondersteunen het ontvangen/overdragen van gegevens en reeksen informatie, terwijl hun structuur en type behouden blijven. Dit werkt volgens het principe van een transportband (dit wordt in de volgende sectie besproken). Hoe dan ook, de cmdlets worden de objecten in volgorde uitgevoerd en verwerkt.

Voor het implementeren van cmdlets kunnen alle ondersteunde .NET API's worden gebruikt die in elke .NET-taal zijn gemaakt.

Zo krijgt de gebruiker toegang tot specifieke functies van het programma.

Cmdlets kunnen rechtstreeks of via unieke paden (stationsletters en mappaden) toegang krijgen tot de vereiste informatie.

Met behulp van cmdlets kunt u werken met bestandssysteem- en certificaatarchiefobjecten, geïnstalleerde applicaties en services.

Transportband

Wanneer u niet erg primitieve scripts maakt of bewerkingen uitvoert met gegevens die u via het script hebt verkregen, moet u soms ook enkele acties uitvoeren.

Hiervoor is een transportband aanwezig. Net als in UNIX combineert het opdrachten door de uitvoer van de ene cmdlet ongewijzigd door te geven aan de invoer van een andere, waarbij het type ervan behouden blijft.

In dit geval is er geen container- of karakter-voor-karakter parsering van informatie vereist.

De verzonden informatie kan ook een functie bevatten. Nadat het werk van de gecombineerde opdrachten is voltooid, wordt de functie van het converteren van informatie naar tekstvorm (gegevens naar tekenreeksen converteren) aangeroepen met behulp van tekstopmaak.

Scripts

Ondanks het feit dat je met de shell veel acties kunt automatiseren, moet je opdrachten handmatig invoeren, wat niet erg handig is.

Vooral als dezelfde handelingen steeds opnieuw moeten worden uitgevoerd.

En je kunt niet zonder de menselijke factor: typefouten, fouten, het per ongeluk indrukken van toetsen bij het schrijven van regels code, het corrigeren of opnieuw typen van een regel vereist een gebruiksvriendelijkere houding.

Om eentonige reeks acties uit te voeren, heeft PS scripts geïmplementeerd: tekstbestanden met een reeks opdrachten erin die begrijpelijk zijn voor de tolk.

Scripts in PowerShell zullen het werk op de pc en het onderhoud ervan verder vereenvoudigen en automatiseren, vooral als het script vertakkingen, voorwaarden, logische bewerkingen en lussen bevat.

Maar ook hier is ‘niet alles goud wat blinkt’: een eigen script schrijven of een kant-en-klaar script uploaden (zij het enigszins afstemmen op je eigen doelstellingen) zal niet zo eenvoudig lukken.

Als binnenMicrosofthet mocht ongeacht hoeveel moeite scripts voor gemaaktPowerShell , geschreven door oplichters en kwaadwillenden voor egoïstische of hooligan-doeleinden.

Om op Windows PS te kunnen draaien, moet u de startcontrole passeren.

Als het mislukt en het script moet worden uitgevoerd, moet u de configuratie wijzigen van de objecten die verantwoordelijk zijn voor de beveiliging van macro's.

Voordat u scripts gebruikt

Bij het gebruik van VBS doen zich veel problemen voor, die de PowerShell-ontwikkelaars volledig hebben opgelost als de scriptbeveiliging niet wordt verlaagd om aan gebruikersscriptverzoeken te voldoen of problemen op te lossen die verband houden met het beveiligingsniveau van het besturingssysteem.

Het uitvoeren van een gedownload script op de computer van een gebruiker is een eenvoudige en effectieve optie voor het verspreiden van kwaadaardige software of het stelen van persoonlijke informatie door aanvallers.

Alles gebeurt vanwege fundamentele onwetendheid over de inhoud van het scriptbestand (ps1) en de wens om hun problemen snel op te lossen ten koste van het werk van anderen. Objecten die het beveiligingsniveau van de scriptuitvoering bepalen, creëren een omgeving waarin het onmogelijk is het script uit te voeren.

Het opzettelijk uitvoeren van macro's vindt plaats na het wijzigen van het beveiligingsniveau, als de gebruiker groen licht geeft, zich realiseert wat hij doet en zeker weet wat er in het *.ps1-bestand staat.

Omdat de beveiligingsconfiguratie lastig is voor mensen die hun eigen scripts moeten implementeren en uitvoeren, is het mogelijk om de configuratie te wijzigen.

Hier kunt u de bescherming tot een minimum beperken of verstandig manoeuvreren tussen de mogelijkheid om gaten te openen voor penetratie en het gemak van werken met PowerShell.

De shell heeft drie beveiligingsniveaus:

  • bestanden met de ps1-extensie worden niet door het systeem geïdentificeerd als uitvoerbaar bestand en aangeduid als onbekend of tekst (door te dubbelklikken worden ze geopend in de standaard teksteditor die op de computer wordt gebruikt);
  • Met de shell kunt u scripts uitvoeren nadat u hun volledige pad hebt opgegeven, worden scriptbestanden in de huidige map niet doorzocht, waardoor het onmogelijk wordt om macro's uit te voeren die zich in de huidige map bevinden;
  • het ingebouwde Execution Policy-script uitvoeren, verantwoordelijk voor het toevoegen van het vereiste script aan de lijst met toegestane scripts.

Denk er niet eens aan om de configuratie te wijzigen, door het op zijn minst naar het tweede niveau te verlagen, zonder jezelf vertrouwd te maken met de basisPowerShelltotdat je op zijn minst oppervlakkig de inhoud van * begint te begrijpen.ps1.

Er is ook het concept van een uitvoeringsbeleid, gemaakt om te voorkomen dat scripts per ongeluk worden uitgevoerd. Er zijn vijf instellingen voor het startbeleid:

  • beperkt - standaard geïnstalleerd, worden alleen door Microsoft ondertekende scripts uitgevoerd, waardoor u informatie kunt verkrijgen over de hardware- en softwareshell van de computer;
  • handtekening van verwijderde bestanden hebben– u kunt alle macro's uitvoeren, maar per mail verzonden bestanden moeten ondertekend zijn;
  • digitaal ondertekend door een vertrouwde bron– alle ondertekende scripts worden uitgevoerd;
  • onbeperkt– start eventuele macro's;
  • omzeilen– zijn bedoeld voor programmeurs die hun eigen beveiligingssysteem creëren, in plaats van het systeem in de shell te gebruiken.

U kunt de huidige status van het uitvoeringsbeleid controleren met behulp van de opdracht “Get-ExecutionPolicy”.Wat het beveiligingsbeleid ook is, de gebruiker zal geen script kunnen uitvoeren dat opdrachten bevat waarvoor hij niet voldoende rechten heeft om uit te voeren.

Powershell starten

Het is tijd om van theorie naar praktijk te gaan. Om scripts uit te voeren heeft u dus een digitale handtekening nodig of (de tweede optie is eenvoudiger).

Er zijn verschillende manieren om een ​​PowerShell-venster te openen.

Het wordt gepresenteerd in twee vormen:

  • klassieke console;

  • PowerShell ISE - voegt ondersteuning toe voor tabbladen, syntaxis, contextuele hulp, contextuele en hoofdmenu's, wat het werken in de tolk enorm vergemakkelijkt.

Begin

De eenvoudigste manier om PS te bellen is via Start.

  1. Open het menu(klik in Windows 7 op “Alle programma’s”).
  2. Ga naar de Windows PowerShell-map en klik op het gewenste icoon.

Rijst. 4 – Start PS via Start

Je kunt ook PS bellen via geïntegreerd zoeksysteem.

Commando tolk

Voor degenen die van niet-standaard en snelle startmethoden houden, gebruik het venster Uitvoeren. Het wordt geopend met de gelijknamige knop in Start en de toetsencombinatie Win + R.

In het dialoogvenster schrijven we "powershell" en druk op “Invoeren”.

Win+X

In Windows 10 kan PS worden opgeroepen vanuit het WinX-menu. Feit is dat dit standaard gebeurt door op de opdracht te klikken "Opdrachtregel" CMD openen. Het kan worden vervangen door PowerShell.

Open de “Eigenschappen” van de Taakbalk, plaats op het tabblad “Navigatie” een vinkje naast de enige optie en sla de instellingen op.

U kunt PowerShell aanroepen via de opdrachtregel door er “powershell” in te schrijven of door het uitvoerbare bestand langs het pad uit te voeren: %WINDIR%\ Systeem32\ WindowsPowerShell\v1.0 voor 32-bits systemen en op %WINDIR%\ syswow64\ WindowsPowerShell\v1.0 voor 64-bits Windows van elke editie.

Rijst. 8 – Voer PS uit vanuit de map waar het uitvoerbare bestand is opgeslagen

Het opzetten van een beveiligingsbeleid

Een beetje achtergelaten– PowerShell toestaan ​​scripts uit te voeren. Voer het commando “Set-ExecutionPolicy RemoteSigned” in en druk op “Y”.

Dat is alles. Nu kunt u alle cmdlets en scripts uitvoeren. Laten we bijvoorbeeld proberen een lijst met actieve processen weer te geven door "Get-Process" uit te voeren.

Scripts uitvoeren

U kunt scripts maken in elk (het is beter om bij Win te blijven, of iets dergelijks, met ondersteuning voor syntaxis of validatie) of in het PowerShell ISE-programma.

Dit laatste biedt gemakkelijke toegang tot cmdlets, de mogelijkheid om scripts uit te voeren, fouten op te sporen en op te slaan.

Laten we aannemen dat u uw eerste script hebt geschreven (dit is om een ​​lijst met actieve processen te verkrijgen), het hebt opgeslagen via het menu "Bestand" en dat u het moet uitvoeren. Dit gebeurt op drie manieren:

1 We schrijven het volledige pad naar het script in PowerShell (of ISE);

Rijst. 13 – Scripts uitvoeren vanuit het PowerShell ISE-venster

Belangrijk zodat er geen spaties in het pad naar het bestand staan!

PowerShell– een krachtig hulpmiddel voor het vereenvoudigen van routinematige handelingen in Server 2008 en nieuwer. Een belangrijk voordeel van PowerShell zijn scripts en beschikbaarheid versie van het programma met een grafische interface PS ISE. De opdrachten daarin worden gepresenteerd in de vorm van cmdlets, waardoor u vertrouwd kunt raken met de shell en de betekenis van elke opdracht kunt begrijpen. Het beveiligingsbeleid staat niet toe dat een beginner zijn computer beschadigt scripts ontvangen van onbekende bronnen, en de debugging-modus, het creëren van uw eigen cmdlets, functies en foutafhandelingsmechanismen openen onbeperkte mogelijkheden voor programmeurs en beheerders.