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.

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.
Stap 2) Het PowerShell-venster wordt geopend.
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-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
Ontvang service: Vindt alle services op de machine.
Voorbeeld: haal alle services op waarvan de naam begint met "vm".
Get-Service "vm*"
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
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:
PowerShell-gegevenstypen
PowerShell ondersteunt de standaard .NET-gegevenstypen, zodat u elke waarde probleemloos in een variabele kunt opslaan.
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โ.
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.
Stap 2) Voer de onderstaande commando's uit.
Get-ExecutionPolicySet-ExecutionPolicy Unrestricted- Enter
Ybij de bevestigingsprompt. Get-ExecutionPolicy
Eerste PowerShell-script
Open Kladblok en typ:
Write-Host "Hello, Guru99!"
Sla het bestand op met een .ps1 uitbreiding โ bijvoorbeeld, FirstScript.ps1.
Voer het script uit in PowerShell met:
& "X:\FirstScript.ps1"
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.
Maak het eerdere script opnieuw aan in ISE:
- Plak de code in de editor.
- Sla het script op.
- Druk op F5 om het programma te starten.
- Bekijk de uitvoer in het consolevenster.
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
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.
















