Powershell-zelfstudie voor beginners: leer Powershell-scripts
Wat is PowerShell?
Windows PowerShell is een objectgeoriënteerde automatiseringsengine en scripttaal. Het is voornamelijk ontworpen voor IT-professionals en systeembeheerders om het beheer ervan te controleren en te automatiseren Windows OS en andere applicaties. Het biedt overtuigende nieuwe concepten om de kennis die u hebt opgedaan en de scripts die u hebt gemaakt binnen de Windows Opdrachtprompt en Windows Scripthost-omgevingen.
Het combineert de flexibiliteit van scripting, de snelheid van de opdrachtregel en de kracht van een GUI-gebaseerde admintool. Het stelt u in staat om problemen efficiënt op te lossen door systeembeheerders te helpen toekomstige handmatige arbeidsuren te elimineren. We zullen alle belangrijke aspecten doornemen die u moet weten om PowerShell te leren.
Dit is een complete gids voor de basisbeginselen van Powershell-scripts... laten we beginnen!
Waarom Powershell gebruiken?
Hier volgen enkele belangrijke redenen om Powershell te gebruiken:
- Powershell biedt een goed geïntegreerde opdrachtregelervaring voor het besturingssysteem
- PowerShell biedt volledige toegang tot alle typen in het .NET-framework
- Vertrouwd door systeembeheerders.
- PowerShell is een eenvoudige manier om server- en werkstationcomponenten te manipuleren
- Het is gericht op systeembeheerders door een eenvoudigere syntaxis te creëren
- PowerShell is veiliger dan hardlopen VBScript of andere scripttalen
PowerShell-geschiedenis
PowerShell eerste versie 1.0 werd uitgebracht in 2006. Vandaag is PowerShell versie 7.2. Naarmate het jaar en de versie verstreken, groeiden de mogelijkheden en hostingomgevingen van PowerShell aanzienlijk.
Laten we de versiegeschiedenis van Powershell bekijken:
- PowerShell versie 1 ondersteunde het lokale beheer van Windows server 2003
- PowerShell 2.0 is geïntegreerd met Windows 7 en Windows Server2008 R2. Deze versie ondersteunt externe communicatie en verbetert de mogelijkheden van PowerShell, zoals transacties, achtergrondtaken, gebeurtenissen, foutopsporing, enz.
- PowerShell 3.0 is uitgebracht als intern onderdeel van de Windows management raamwerk. Het werd geïnstalleerd op Windows 8 en Windows Server 2012. U kunt taken, sessieconnectiviteit, automatisch laden van modules, enz. toevoegen en plannen.
- PowerShell 4.0 is meegeleverd Windows 8.1 en Windows Server2012 R2. In deze versie is ondersteuning toegevoegd voor de gewenste statusconfiguratie, verbeterde foutopsporing en netwerkdiagnostiek.
- PowerShell 5.0 is uitgebracht als intern onderdeel van Windows managementframework 5. De functies in deze versie zijn foutopsporing op afstand, klassendefinities, .NET-opsommingen, enz.
- PowerShell 7.2 is uitgebracht. Het is gebouwd op .NET 6.0. Deze versie biedt nieuwe operators, vereenvoudigde en dynamische foutweergave, automatische meldingen van nieuwe versies, etc.
Vervolgens zullen we in deze Powershell-scripting-tutorial meer leren over de functies van Powershell.
Kenmerken van Powershell
- PowerShell Remoting: Met PowerShell kunnen scripts en cmdlets worden aangeroepen op een externe machine.
- Achtergrond banen: Het helpt u om scripts of pijplijnen asynchroon aan te roepen. U kunt uw taken uitvoeren op de lokale machine of op meerdere extern bediende machines.
- Transacties: Schakel cmdlet in en laat ontwikkelaars presteren
- Avond: Met deze opdracht kunt u luisteren naar, doorsturen van en reageren op beheer- en systeemgebeurtenissen.
- Netwerkbestandsoverdracht: Powershell biedt native ondersteuning voor geprioriteerde, asynchrone en beperkte bestandsoverdracht tussen machines met behulp van de Background Intelligent Transfer Service (BITS)-technologie.
Hoe PowerShell te starten
In deze Powershell-scripttutorial leren we nu hoe u Powershell kunt starten Windows OS.
PowerShell is vooraf geïnstalleerd in alle nieuwste versies van Windows. We moeten PowerShell starten, daarvoor moeten we de gegeven stappen volgen:
Stap 1) Zoek naar PowerShell in Windows. Selecteer en klik
Stap 2) Power Shell-venster wordt geopend
PowerShell-cmdlet
Een cmdlet die ook wel Command let wordt genoemd, is een lichtgewicht commando dat wordt gebruikt in de Window-base PowerShell-omgeving. PowerShell roept deze cmdlets aan via de opdrachtprompt. U kunt de cmdlets-opdracht maken en aanroepen met behulp van PowerShell APIS.
Cmdlet versus opdracht
Cmdlets verschillen van opdrachten in andere opdracht-shellomgevingen op de volgende manieren:
- Cmdlets zijn dat wel . NET Framework class-objecten Het kan niet afzonderlijk worden uitgevoerd
- Cmdlets kunnen bestaan uit slechts een tiental regels code
- Parseren, uitvoeropmaak en foutpresentatie worden niet afgehandeld door cmdlets
- Cmdlets-proces werkt op objecten. Tekststreams en objecten kunnen dus niet worden doorgegeven als uitvoer voor pipelining
- Cmdlets zijn op records gebaseerd en verwerken dus één object tegelijk
Het grootste deel van de PowerShell-functionaliteit komt van Cmdlet's, die altijd in de indeling van werkwoorden en zelfstandig naamwoorden staat en niet in het meervoud. Bovendien retourneren de Cmdlets-objecten geen tekst. Een cmdlet is een reeks opdrachten, bestaande uit meer dan één regel, opgeslagen in een tekstbestand met de extensie .ps1.
Een cmdlet bestaat altijd uit een werkwoord en een zelfstandig naamwoord, gescheiden door een koppelteken. Enkele van de werkwoorden die u kunt gebruiken om PowerShell te leren zijn:
- Krijgen - Iets krijgen
- Start - Om iets te runnen
- Uit - Om iets uit te voeren
- stop - Om iets dat loopt te stoppen
- Zet de - Om iets te definiëren
- Nieuw – Om iets te creëren
PowerShell commando's
Hieronder vindt u een lijst met belangrijke PowerShell-opdrachten:
Hulp krijgen: Hulp over PowerShell-opdrachten en onderwerpen
Voorbeeld: Help-informatie weergeven over de opdracht Format-Table
Get-Help Format-Table
Get-opdracht: Krijg informatie over alles waarop een beroep kan worden gedaan
Powershell-scriptvoorbeeld: om een lijst met cmdlets te genereren, functies die op uw machine zijn geïnstalleerd
Get-Command
Ontvang service: Vindt alle cmdlets met het woord 'service' erin.
Voorbeeld: alle services ophalen die beginnen met 'vm'
Get-Service "vm*"
Lid worden: Laat zien wat je met een voorwerp kunt doen
Voorbeeld: leden van de VM-processen ophalen.
Get-Service "vm*" | Get-Member
Andere opdrachten:
- Module ophalen Toont pakketten met opdrachten
- Inhoud ophalen Deze cmdlet kan een bestand nemen en de inhoud ervan verwerken en er iets mee doen
- Get- get Vindt alle cmdlets die beginnen met het woord 'get-
Voorbeeld: maak een map
New-Item -Path 'X:\Guru99' -ItemType Directory
Output:
Powershell-gegevenstypen
Speciale variabelen
Speciale variabele | Beschrijving |
---|---|
$Fout | Een array met foutobjecten die de meest recente fouten weergeven |
$Host | Geef de naam van de huidige hostingtoepassing weer |
$Profiel | Slaat het volledige pad van een gebruikersprofiel op voor de standaardshell |
$PID | Slaat de procesidentificatie op |
$PSUICultuur | Het bevat de naam van de huidige UI-cultuur. |
$NUL | Bevat een lege of NULL-waarde. |
$Onwaar | Bevat FALSE-waarde |
$Waar | Bevat TRUE-waarde |
PowerShell-scripts
Powershell-scripts worden opgeslagen in een .ps1-bestand. Standaard kunt u een script niet uitvoeren door gewoon op een bestand te dubbelklikken. Dit beschermt uw systeem tegen onbedoelde schade. Om een script uit te voeren:
Stap 1: klik er met de rechtermuisknop op en klik op 'Uitvoeren met PowerShell'.
Bovendien is er een beleid dat de uitvoering van scripts beperkt. U kunt dit beleid zien door de opdracht Get-ExecutionPolicy uit te voeren.
U krijgt een van de volgende uitvoer:
- Beperkt— Er zijn geen scripts toegestaan. Dit is de standaardinstelling, dus deze wordt de eerste keer weergegeven wanneer u de opdracht uitvoert.
- Allemaal ondertekend— U kunt scripts uitvoeren die zijn ondertekend door een vertrouwde ontwikkelaar. Met behulp van deze instelling zal een script om bevestiging vragen dat u het wilt uitvoeren voordat het wordt uitgevoerd.
- RemoteSigned— U kunt uw scripts uitvoeren die zijn ondertekend door een vertrouwde ontwikkelaar.
- Onbeperkt— U kunt elk script uitvoeren dat u wilt uitvoeren
Stappen om het uitvoeringsbeleid te wijzigen
Stap 1) Open een verhoogde PowerShell-prompt. Klik met de rechtermuisknop op PowerShell en "Als administrator uitvoeren"
Stap 2) Voer de volgende opdrachten in
- Get-ExecutionPolicy
- Set-uitvoeringsbeleid onbeperkt
- Voer Y in de prompt in
- Get-ExecutionPolicy
Eerste PowerShell-script
Schrijf de volgende opdracht in een kladblok
Write-Host "Hello, Guru99!"
PowerShell-scripts hebben de extensie ps1. Sla het bestand op als FirstScript.ps1
Roep in Powershell het script aan met de opdracht
& "X:\FirstScript.ps1"
Wat is PowerShell ISE?
De Windows PowerShell Integrated Scripting Environment (ISE) is de standaardeditor voor Windows PowerShell. In deze ISE kunt u opdrachten, schrijvertests en foutopsporingsscripts uitvoeren in een GUI-omgeving in een vensterbasis. U kunt bewerkingen op meerdere regels uitvoeren, syntaxiskleuren, tabbladen aanvullen, selectieve uitvoering en nog veel meer.
Windows PowerShell ISE biedt u ook de mogelijkheid om opdrachten uit te voeren in een consolepaneel. Het ondersteunt echter ook panelen die u kunt gebruiken om tegelijkertijd de broncode van uw script en andere tools te bekijken die u in de ISE kunt pluggen.
U kunt zelfs meerdere scriptvensters tegelijk openen. Dit is met name handig wanneer u een script debugt dat functies gebruikt die in andere scripts of modules zijn gedefinieerd.
Hetzelfde script dat we in Kladblok hebben gemaakt, kan in ISE worden gemaakt
- Plak de code in de editor
- Script opslaan
- Gebruik F5 om het script uit te voeren
- Observeer de uitvoer in de console
Voorbeeld 2:
De volgende code geeft de gratis Virtueel geheugen in uw machine
Get-WmiObject -Class Win32_OperatingSystem –ComputerName localhost | Select-Object -Property CSName,FreeVirtualMemory
PowerShell Concepts
In deze Powershell-zelfstudie voor beginners leren we over belangrijke Powershell-concepten:
cmdlets | Cmdlet zijn build-opdrachten geschreven in .net-talen zoals VB of C#. Hiermee kunnen ontwikkelaars de set cmdlets uitbreiden door PowerShell-modules te laden en te schrijven. |
Functies | Functies zijn opdrachten die zijn geschreven in de PowerShell-taal. Het kan worden ontwikkeld zonder andere IDE-achtige te gebruiken Visual Studio en ontwikkelaars. |
Scripts | Scripts zijn tekstbestanden op schijf met de extensie .ps1 |
Toepassingen | Applicaties zijn bestaande Windows-programma's. |
Wat als | Geeft de cmdlet opdracht om niet uit te voeren, maar om u te vertellen wat er zou gebeuren als de cmdlet zou worden uitgevoerd. |
Bevestigen | Instrueer de cmdlet om te vragen voordat u de opdracht uitvoert. |
breedsprakig | Geeft een hoger detailniveau. |
Debug | Geeft de cmdlet opdracht om foutopsporingsgegevens op te geven. |
FoutActie | Geeft de cmdlet opdracht om een specifieke actie uit te voeren wanneer er een fout optreedt. Toegestane acties gaan door, stoppen, gaan in stilte door en informeren. |
Foutvariabele | Het specificeert de variabele die foutinformatie bevat. |
Uitvariabel | Vertelt de cmdlet dat hij een specifieke variabele moet gebruiken om de uitvoergegevens vast te houden |
UitBuffer | Geeft de cmdlet opdracht om het specifieke aantal objecten vast te houden voordat de volgende cmdlet in de pijplijn wordt aangeroepen. |
Voordelen van het gebruik van PowerShell-script
- PowerShell-scripts zijn erg krachtig en kunnen veel dingen in minder regels doen.
- Variabelen worden gedeclareerd in de vorm $
- Variabelen kunnen worden gebruikt om de uitvoer van opdrachten, objecten en waarden vast te houden.
- “Type” van een variabele hoeft niet te worden gespecificeerd.
PowerShell versus. Opdrachtprompt
PowerShell | Command Prompt |
---|---|
PowerShell is diep geïntegreerd met de Windows Besturingssysteem. Het biedt een interactieve opdrachtregelinterface en scripttaal. | Opdrachtprompt is een standaard opdrachtregelinterface die wordt aangeboden door Microsoft. Het is een eenvoudige win32-applicatie die kan communiceren en praten met alle win32-objecten in de Windows besturingssysteem. |
PowerShell maakt gebruik van zogenaamde cmdlets. Het kan worden aangeroepen in de runtime-omgeving of in de automatiseringsscripts. | Dergelijke functies worden niet aangeboden via de opdrachtprompt. |
PowerShell beschouwt ze als objecten. De uitvoer kan dus via de pijplijn worden doorgegeven als invoer aan andere cmdlets. | Opdrachtprompt of zelfs de *nix-shell, de uitvoer die door een cmdlet wordt gegenereerd, is niet alleen een tekststroom, maar een verzameling objecten. |
De PowerShell is zeer geavanceerd wat betreft functies, mogelijkheden en innerlijke werking. | De opdrachtprompt is erg eenvoudig. |
Toepassingen van Powershell
PowerShell is tegenwoordig een ideale keuze voor IT-beheerders, omdat het de beheersoperatie en -inspanning in grote bedrijfsnetwerken vereenvoudigt. Stel bijvoorbeeld dat u een groot netwerk beheert met meer dan vierhonderd servers. U wilt nu een nieuwe beveiligingsoplossing implementeren. Deze beveiligingsoplossing is afhankelijk van een bepaalde service die op die servers moet worden uitgevoerd.
U kunt zeker bij elke server inloggen en kijken of die service is geïnstalleerd en actief is of niet. Er zijn echter zeker veel menselijke fouten nodig, aangezien uw personeel veel tijd aan dit niet-productieve proces moet besteden.
Als u echter PowerShell gebruikt, kunt u deze taak in slechts een paar minuten voltooien. Dat komt omdat de hele operatie wordt uitgevoerd met één script dat informatie verzamelt over de services die op de servers draaien.
Samenvatting
- Windows PowerShell is een objectgeoriënteerde automatiseringsengine en scripttaal
- Powershell biedt een goed geïntegreerde opdrachtregelervaring voor het besturingssysteem
- PowerShell eerste versie 1.0 werd uitgebracht in 2006
- Met PowerShell kunnen scripts en cmdlets worden aangeroepen op een externe machine
- PowerShell is vooraf geïnstalleerd in alle nieuwste versies van Windows
- Een cmdlet is een lichtgewicht opdracht die wordt gebruikt in de Windows-basis PowerShell-omgeving
- Get, Start, Out, Stop, Set, New zijn belangrijke PowerShell-opdrachten
- Boolean, Byte, Chat, Decimal, Decimal, Long zijn belangrijke gegevenstypen van PowerShell
- $Fout. $Host, $Profile, $PID, $PSUICulture, $NULL zijn enkele speciale variabelen die in PowerShell worden gebruikt
- De Windows PowerShell Integrated Scripting Environment (ISE) is de standaardeditor voor PowerShell
- PowerShell is diep geïntegreerd met de Windows OS, terwijl de opdrachtprompt een standaard opdrachtregelinterface is die wordt aangeboden door Microsoft
- PowerShell is een ideale keuze geworden voor IT-beheerders, omdat het de beheersactiviteiten en -inspanningen in grote bedrijfsnetwerken vereenvoudigt