Powershell-zelfstudie voor beginners

โšก Slimme samenvatting

PowerShell Scripting is een objectgeoriรซnteerde automatiseringsengine gebouwd op het .NET-framework. Het combineert cmdlets, scripts en een scripttaal om IT-beheerders te helpen bij het automatiseren van processen. WindowsBeheer services en verbind externe machines vanaf รฉรฉn enkele opdrachtregel.

  • ๐Ÿš€ Start de juiste shell: Open PowerShell of PowerShell ISE vanuit het Startmenu en voer het uit als beheerder wanneer u verhoogde bevoegdheden nodig hebt.
  • ๐Ÿงฉ Gebruik cmdlets, geen tekstopdrachten: Cmdlets volgen een naamgevingspatroon van werkwoord-zelfstandig naamwoord en retourneren .NET-objecten, waardoor de uitvoer via een pipeline naar de volgende cmdlet kan worden doorgestuurd.
  • ๐Ÿ” Stel het uitvoeringsbeleid zorgvuldig vast: Gebruik Set-ExecutionPolicy met RemoteSigned om een โ€‹โ€‹balans te vinden tussen veiligheid en gebruiksgemak bij het uitvoeren van .ps1-scripts.
  • ๐Ÿ“ Schrijf herbruikbare .ps1-scripts: Combineer cmdlets, variabelen en pipelines in een tekstbestand met de extensie .ps1 om repetitieve beheertaken te automatiseren.
  • ๐Ÿค– Combineer PowerShell met AI: AI-assistenten zetten verzoeken in begrijpelijke taal om in direct uitvoerbare PowerShell-scripts en leggen onbekende cmdlets regel voor regel uit.

Powershell-zelfstudie voor beginners

Wat is PowerShell?

Windows PowerShell is een objectgeoriรซnteerde automatiseringsengine en scripttaal. Het is ontworpen voor IT-professionals en systeembeheerders die de administratie van systemen moeten beheren en automatiseren. Windows en andere toepassingen. PowerShell breidt de concepten uit die zijn geleerd in Windows Opdrachtprompt en Windows Script Host met nieuwe objecten, cmdlets en een krachtige pipeline.

Het combineert de flexibiliteit van scripting, de snelheid van de commandoregel en de diepgang van een grafische beheertool. Hiermee kunnen beheerders problemen efficiรซnt oplossen en uren handmatig werk besparen. Deze handleiding behandelt de essentiรซle zaken die je nodig hebt om PowerShell vanaf nul te leren.

Waarom PowerShell gebruiken?

De belangrijkste redenen om PowerShell te gebruiken zijn:

  • Biedt een goed geรฏntegreerde commandoregelervaring voor het besturingssysteem.
  • Biedt volledige toegang tot elk type in het .NET-framework.
  • Vertrouwd door systeembeheerders in alle soorten bedrijven.
  • Hiermee kunt u server- en werkstationcomponenten met slechts enkele regels code manipuleren.
  • Speciaal ontwikkeld voor systeembeheerders, met een heldere werkwoord-zelfstandig naamwoord-structuur.
  • Veiliger dan hardlopen VBScript of andere verouderde scripttalen.

PowerShell-geschiedenis

PowerShell 1.0 werd voor het eerst uitgebracht in 2006. PowerShell is nu toe aan versie 7.2 en hoger. Met elke nieuwe release zijn de mogelijkheden en hostingomgevingen aanzienlijk uitgebreid.

Versiegeschiedenis van PowerShell:

  • Power Shell 1.0 โ€” ondersteunde het lokale bestuur van Windows Server 2003.
  • Power Shell 2.0 โ€” geรฏntegreerd met Windows 7 en Windows Server 2008 R2. Remoting, transacties, achtergrondtaken, gebeurtenissen en debuggen toegevoegd.
  • Power Shell 3.0 โ€” verzonden met Windows 8 en Windows Server 2012 als onderdeel van de Windows Beheerframework. Toegevoegd: geplande taken, sessieconnectiviteit en automatisch laden van modules.
  • Power Shell 4.0 โ€” verzonden met Windows 8.1 en Windows Server 2012 R2. Toegevoegde gewenste statusconfiguratie, verbeterde foutopsporing en netwerkdiagnostiek.
  • Power Shell 5.0 โ€” onderdeel van Windows Management Framework 5. Externe debugging, klassedefinities en .NET-enumeraties toegevoegd.
  • Power Shell 7.2 โ€” gebouwd op .NET 6.0. Voegt nieuwe operators, dynamische foutweergaven en automatische versie-meldingen toe.

Functies van PowerShell

  • PowerShell-remotebeheer: Scripts en cmdlets uitvoeren op een externe machine.
  • Achtergrondfuncties: Scripts of pipelines asynchroon uitvoeren op de lokale machine of op meerdere externe machines.
  • transacties: Hiermee kunnen cmdlets en ontwikkelaars gegroepeerde bewerkingen uitvoeren die samen kunnen worden vastgelegd of teruggedraaid.
  • Evenementen: Luister naar, geef door en handel naar gebeurtenissen binnen het management en het systeem.
  • Netwerkbestandsoverdracht: Native ondersteuning voor geprioriteerde, asynchrone en gelimiteerde bestandsoverdracht tussen machines via de Background Intelligent Transfer Service (BITS).

Hoe start ik PowerShell?

PowerShell is standaard geรฏnstalleerd op elke recente versie van Windows. Start het als volgt.

Stap 1) Zoek naar PowerShell in WindowsSelecteer het vervolgens en klik erop.

Start PowerShell

Stap 2) Het PowerShell-venster wordt geopend.

PowerShell-venster

Cmdlet versus opdracht

A cmdlet (uitgesproken als โ€œcommand-letโ€) is een lichtgewicht commando dat wordt gebruikt in de PowerShell-omgeving. PowerShell roept cmdlets aan bij de prompt en u kunt uw eigen cmdlets maken met behulp van de PowerShell API's. Cmdlets verschillen op de volgende manieren van traditionele shell-commando's:

  • Cmdlets zijn dat wel . NET Framework Klasseobjecten; ze kunnen niet als zelfstandige uitvoerbare bestanden worden uitgevoerd.
  • Cmdlets kunnen in slechts een dozijn regels code worden geschreven.
  • Het parsen, de uitvoeropmaak en de foutmeldingen worden door de runtime afgehandeld, niet door de cmdlet zelf.
  • Cmdlets werken met objecten, dus zowel tekststromen als objecten kunnen door pijplijnen stromen.
  • Cmdlets zijn recordgebaseerd en verwerken รฉรฉn object tegelijk.

De meeste PowerShell-functionaliteit wordt geleverd via cmdlets, die altijd een naamgevingspatroon van werkwoord-zelfstandig naamwoord gebruiken (altijd enkelvoud). Cmdlets retourneren objecten, geen tekst. script โ€” in tegenstelling tot een cmdlet โ€” is een reeks opdrachten die zijn opgeslagen in een tekstbestand met de .ps1 verlenging.

Veelgebruikte werkwoorden die je zult gebruiken om PowerShell te leren, zijn onder andere:

  • Krijgen โ€” iets ophalen.
  • Start โ€” iets uitvoeren.
  • Uit โ€” iets uitvoeren.
  • stop โ€” iets stoppen dat draait.
  • Set โ€” definieer iets.
  • Nieuwe โ€” iets creรซren.

Belangrijke PowerShell-opdrachten

Hulp krijgen: Bekijk de helpfunctie voor PowerShell-opdrachten en -onderwerpen.

Voorbeeld: help weergeven voor de Format-Table opdracht.

Get-Help Format-Table

Get-Help cmdlet

Get-opdracht: Informatie verkrijgen over alles wat opgeroepen kan worden.

Voorbeeld: genereer een lijst van cmdlets en functies die op de machine zijn geรฏnstalleerd.

Get-Command

Get-Command cmdlet

Ontvang service: Vindt alle services op de machine.

Voorbeeld: haal alle services op waarvan de naam begint met "vm".

Get-Service "vm*"

Get-Service cmdlet

Word lid: Laat zien wat je met een object kunt doen.

Voorbeeld: lijst de leden van de VM-services die worden geretourneerd door Get-Service.

Get-Service "vm*" | Get-Member

Get-Member cmdlet

Andere nuttige cmdlets:

  • Get-Module โ€” Toon de geรฏnstalleerde commandopakketten.
  • Get-Content โ€” een bestand lezen en de inhoud ervan verwerken.
  • Get-* jokerteken โ€” toon alle cmdlets die beginnen met โ€œGet-โ€œ.

Voorbeeld: een map aanmaken.

New-Item -Path 'X:\Guru99' -ItemType Directory

Output:

Nieuwe-item-uitvoer

PowerShell-gegevenstypen

PowerShell ondersteunt de standaard .NET-gegevenstypen, zodat u elke waarde probleemloos in een variabele kunt opslaan.

PowerShell-gegevenstypen

Speciale variabelen

PowerShell biedt een aantal ingebouwde speciale variabelen. De meest bruikbare staan โ€‹โ€‹hieronder vermeld.

Speciale variabele Beschrijving
$Fout Een array van foutobjecten die de meest recente fouten weergeven.
$Host Geeft de naam weer van de huidige hostapplicatie.
$Profiel Slaat het volledige pad van het gebruikersprofiel voor de standaard shell op.
$PID Slaat de proces-ID op.
$PSUICultuur Draagt โ€‹โ€‹de naam van de huidige UI-cultuur.
$NUL Bevat een lege of null-waarde.
$Onwaar Bevat de booleaanse waarde FALSE.
$Waar Bevat de booleaanse waarde TRUE.

PowerShell-scripts

PowerShell-scripts worden opgeslagen in .ps1 bestanden. Standaard kunt u een script niet uitvoeren door erop te dubbelklikken; deze beveiliging beschermt het systeem tegen onbedoelde schade. Om een โ€‹โ€‹script uit te voeren, klikt u er met de rechtermuisknop op en kiest u 'Uitvoeren'. โ€œUitvoeren met PowerShellโ€.

Uitvoeren met PowerShell

Een uitvoeringsbeleid bepaalt welke scripts mogen worden uitgevoerd. Bekijk het huidige beleid met Get-ExecutionPolicyMogelijke waarden zijn onder andere:

  • Beperkt โ€” Scripts zijn niet toegestaan. Dit is de standaardinstelling.
  • Allemaal ondertekend โ€” Alleen scripts die zijn ondertekend door een vertrouwde ontwikkelaar worden uitgevoerd, en elk script vereist bevestiging.
  • RemoteSigned โ€” uw eigen scripts worden uitgevoerd, plus ondertekende scripts van vertrouwde bronnen.
  • Onbeperkt โ€” elk script kan worden uitgevoerd (gebruik het spaarzaam).

Stappen om het uitvoeringsbeleid te wijzigen:

Stap 1) Open een PowerShell-prompt met beheerdersrechten door met de rechtermuisknop op PowerShell te klikken en te selecteren. Uitvoeren als Administrator.

Voer PowerShell uit als beheerder.

Stap 2) Voer de onderstaande commando's uit.

  1. Get-ExecutionPolicy
  2. Set-ExecutionPolicy Unrestricted
  3. Enter Y bij de bevestigingsprompt.
  4. Get-ExecutionPolicy

Uitvoeringsbeleid wijzigen

Eerste PowerShell-script

Open Kladblok en typ:

Write-Host "Hello, Guru99!"

Sla het bestand op met een .ps1 uitbreiding โ€” bijvoorbeeld, FirstScript.ps1.

Sla FirstScript.ps1 op.

Voer het script uit in PowerShell met:

& "X:\FirstScript.ps1"

Voer FirstScript.ps1 uit.

Wat is PowerShell ISE?

De Windows PowerShell Geรฏntegreerde Scriptingomgeving (ISE) ISE is de standaardeditor voor PowerShell. In ISE kunt u opdrachten uitvoeren, tests schrijven en scripts debuggen in een grafische, venstergebaseerde omgeving. Het ondersteunt bewerking over meerdere regels, syntaxkleuring, tab-aanvulling, selectieve uitvoering en meer.

PowerShell ISE biedt ook een consolevenster waarin u direct opdrachten kunt uitvoeren, terwijl zijvensters de broncode van uw scripts en alle tools die aan ISE zijn gekoppeld, weergeven. U kunt meerdere scriptvensters tegelijk openen, wat handig is bij het debuggen van scripts die afhankelijk zijn van functies die in andere scripts of modules zijn gedefinieerd.

PowerShell-ISE

Maak het eerdere script opnieuw aan in ISE:

  1. Plak de code in de editor.
  2. Sla het script op.
  3. Druk op F5 om het programma te starten.
  4. Bekijk de uitvoer in het consolevenster.

Script uitvoeren in ISE

Voorbeeld 2: Het volgende script geeft gratis weer. virtueel geheugen op de machine.

Get-WmiObject -Class Win32_OperatingSystem -ComputerName localhost |
Select-Object -Property CSName, FreeVirtualMemory

Gratis script voor virtueel geheugen

PowerShell Concepts

De volgende begrippen vormen de basis van de dagelijkse PowerShell-werkzaamheden.

Concept Beschrijving
cmdlets Ingebouwde opdrachten geschreven in .NET-talen zoals VB of C#. Ontwikkelaars breiden de set uit door PowerShell-snap-ins te laden of te schrijven.
Functies Opdrachten geschreven in de PowerShell-taal zelf, zonder dat een IDE zoals nodig is. Visual Studio.
Scripts Tekstbestanden op de schijf met de .ps1 verlenging.
Toepassingen Bestaand Windows programma's die vanuit de shell worden aangeroepen.
Wat als Geeft de cmdlet de opdracht om niet uit te voeren, maar om te beschrijven wat er zou gebeuren als dat wel gebeurde.
Bevestigen Geeft de cmdlet de opdracht om om bevestiging te vragen voordat deze wordt uitgevoerd.
breedsprakig Biedt een hoger niveau van operationele details.
Debug Geeft de cmdlet de opdracht om foutopsporingsinformatie weer te geven.
FoutActie Definieert wat de cmdlet doet bij een fout. Toegestane waarden: continue, stop, silentlycontinue, inquire.
Foutvariabele Geeft de naam van de variabele die foutinformatie bevat.
Uitvariabel Geeft de cmdlet de opdracht om de uitvoer in een specifieke variabele op te slaan.
UitBuffer Houdt een specifiek aantal objecten vast voordat ze verder in de pipeline worden gestuurd.

Voordelen van het gebruik van PowerShell-scripts

  • PowerShell-scripts zijn krachtig en beknopt: je kunt veel bereiken met slechts een paar regels.
  • Variabelen worden gedeclareerd met de $<variable> syntaxis.
  • Variabelen kunnen uitvoer van opdrachten, objecten en primitieve waarden bevatten.
  • Het variabele type hoeft niet expliciet te worden gespecificeerd.

PowerShell versus opdrachtprompt

PowerShell Command Prompt
Diep geรฏntegreerd met WindowsBiedt een interactieve commandoregel en een volwaardige scripttaal. Standaard opdrachtregelinterface geleverd door MicrosoftEen eenvoudige Win32-applicatie die communiceert met andere Win32-objecten.
Maakt gebruik van cmdlets die interactief of via automatiseringsscripts kunnen worden aangeroepen. Geen cmdlets.
Behandelt uitvoer als objecten, zodat deze via de pipeline naar een andere cmdlet kan worden doorgestuurd. De uitvoer is een eenvoudige tekststroom, geen objecten.
Geavanceerd qua functies, mogelijkheden en interne architectuur. Eenvoudige shell, geschikt voor oudere batchtaken.

Toepassingen van PowerShell

PowerShell is de standaardkeuze geworden voor IT-beheerders omdat het de benodigde inspanning bij het beheren van grote bedrijfsnetwerken aanzienlijk vermindert. Stel je voor dat je meer dan vierhonderd servers beheert en een nieuwe beveiligingsoplossing uitrolt die afhankelijk is van een specifieke service die op elke host draait.

Handmatig inloggen op elke server is traag en foutgevoelig. Met รฉรฉn enkel PowerShell-script kan binnen enkele minuten alle servers worden gecontroleerd, worden gerapporteerd welke hosts de service al uitvoeren en kan deze zelfs op de overige servers worden ingeschakeld. Het script legt de intentie รฉรฉn keer vast en past deze vervolgens betrouwbaar toe op alle servers.

Veelgestelde vragen

PowerShell automatiseert Windows Systeembeheer โ€” het beheren van services, bestanden, gebruikers en servers โ€” via een objectgeoriรซnteerde commandoregel en scripttaal gebouwd op het .NET-framework.

Een cmdlet is een lichtgewicht .NET-klasseobject dat een naam gebruikt die bestaat uit een werkwoord en een zelfstandig naamwoord, en objecten retourneert. Een traditionele opdracht in andere shells geeft platte tekst weer en verzorgt zelf de parsing en opmaak.

PowerShell werkt met objecten en ondersteunt cmdlets, scripting en diepe .NET-integratie. De opdrachtprompt is een eenvoudige, op tekst gebaseerde shell waarvan de opdrachten platte tekst uitvoeren in plaats van objecten.

Een .ps1-bestand is een PowerShell-script: een tekstbestand met een of meer PowerShell-opdrachten. Standaard kan het niet worden uitgevoerd door erop te dubbelklikken; het wordt uitgevoerd vanuit de console of met 'Uitvoeren met PowerShell'.

Open PowerShell als beheerder en voer Set-ExecutionPolicy uit met een waarde zoals RemoteSigned of Unrestricted, en bevestig. Gebruik Get-ExecutionPolicy om de huidige instelling te controleren.

De Integrated Scripting Environment (ISE) is de ingebouwde grafische editor van PowerShell voor het schrijven, uitvoeren, testen en debuggen van scripts, met syntaxkleuring, tab-aanvulling en meerdere scripttabbladen.

AI-assistenten suggereren cmdlets, leggen het gedrag van scripts uit en detecteren fouten tijdens het typen. Ze helpen beheerders taken sneller te automatiseren en verzoeken in gewone taal om te zetten in werkende PowerShell-opdrachten.

Ja. AI-codeassistenten genereren complete PowerShell-scripts op basis van een beschrijving in begrijpelijke taal, zoals "toon alle gestopte services en start ze opnieuw", en leggen elke cmdlet uit zodat u deze kunt controleren voordat u het script uitvoert.

Vat dit bericht samen met: