Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
PowerShell is een opdrachtregelshell en een scripttaal in één. PowerShell is gestart in Windows om beheertaken te automatiseren. Nu wordt het platformoverschrijdend uitgevoerd en kan het worden gebruikt voor verschillende taken.
Wat PowerShell uniek maakt, is dat deze .NET-objecten accepteert en retourneert in plaats van tekst. Met deze functie kunt u eenvoudiger verschillende opdrachten in een pijplijn verbinden.
Waarvoor kan PowerShell worden gebruikt?
In eerste instantie was PowerShell alleen windows. Het is nu platformoverschrijdend en kan worden gebruikt voor verschillende taken, zoals:
- Cloudbeheer. PowerShell kan worden gebruikt voor het beheren van cloudresources. U kunt bijvoorbeeld informatie ophalen, bijwerken of nieuwe resources implementeren.
- CI/CD. Het kan ook worden gebruikt als onderdeel van een pijplijn voor continue integratie/continue implementatie.
- Automatiseer taken voor Active Directory en Exchange. U kunt deze gebruiken om bijna elke taak in Windows te automatiseren, zoals het maken van gebruikers in Active Directory en postvakken in Exchange.
Wie gebruikt PowerShell?
PowerShell is een krachtig hulpprogramma waarmee mensen in een groot aantal rollen kunnen werken. PowerShell werd traditioneel gebruikt door de systeembeheerders. Het wordt nu gebruikt door mensen die zichzelf DevOps, Cloud Ops en zelfs ontwikkelaars noemen.
PowerShellcmdlets
PowerShell wordt geleverd met honderden vooraf geïnstalleerde opdrachten. PowerShell-opdrachten worden cmdlets genoemd (uitgesproken als command-lets).
De naam van elke cmdlet bestaat uit een werkwoord-zelfstandig naamwoordpaar . Bijvoorbeeld: Get-Process. Deze naamconventie maakt het gemakkelijker om te begrijpen wat de cmdlet doet. Het maakt het ook gemakkelijker om de opdracht te vinden die u zoekt. Wanneer u op zoek bent naar een cmdlet die u wilt gebruiken, kunt u filteren op het werkwoord of zelfstandig naamwoord.
Cmdlets gebruiken om PowerShell te verkennen
Wanneer u PowerShell voor het eerst oppikt, voelt het zich misschien intimiderend omdat er zoveel te leren is. PowerShell is ontworpen om u te helpen een beetje tegelijk te leren, omdat u het nodig hebt.
PowerShell bevat cmdlets waarmee u PowerShell kunt detecteren. Met deze drie cmdlets kunt u ontdekken welke opdrachten beschikbaar zijn, wat ze doen en op welke typen ze werken.
-
Get-Verb. Als u deze opdracht uitvoert, wordt een lijst met werkwoorden geretourneerd waaraan de meeste opdrachten voldoen. Het antwoord bevat een beschrijving van wat deze werkwoorden doen. Omdat de meeste opdrachten deze naamconventie volgen, worden verwachtingen ingesteld over wat een opdracht doet. Met deze opdracht kunt u het juiste werkwoord selecteren en een opdracht een naam geven wanneer u uw eigen opdrachten maakt. -
Get-Command. Met deze opdracht wordt een lijst opgehaald met alle opdrachten die op uw computer zijn geïnstalleerd. -
Get-Member. Het werkt op object gebaseerde uitvoer en kan detecteren welk object, welke eigenschappen en methoden beschikbaar zijn voor een opdracht. -
Get-Help. Als u deze opdracht aanroept met de naam van een opdracht als argument, wordt een Help-pagina weergegeven waarin verschillende onderdelen van een opdracht worden beschreven.
Met deze opdrachten kunt u vrijwel alles ontdekken wat u moet weten over PowerShell.
Term
Werkwoord is een belangrijk concept in PowerShell. Het is een naamgevingsstandaard die de meeste cmdlets volgen. Het is ook een naamgevingsstandaard die u verwacht te volgen wanneer u uw eigen opdrachten schrijft. Het idee is dat het werkwoord zegt wat u probeert te doen, zoals het lezen of wijzigen van gegevens. PowerShell heeft een gestandaardiseerde lijst met werkwoorden. Gebruik de Get-Verb cmdlet om een volledige lijst met alle mogelijke werkwoorden op te halen:
Get-Verb
De cmdlet retourneert een lange lijst met werkwoorden. De beschrijving biedt context voor wat het werkwoord moet doen. Dit zijn de eerste paar rijen met uitvoer:
Verb AliasPrefix Group Description
---- ----------- ----- -----------
Add a Common Adds a resource to a container, or attaches an item to another item
Clear cl Common Removes all the resources from a container but does not delete the container
Close cs Common Changes the state of a resource to make it inaccessible, unavailable, or unusab…
Copy cp Common Copies a resource to another name or to another container
Enter et Common Specifies an action that allows the user to move into a resource
Exit ex Common Sets the current environment or context to the most recently used context
...
Opdrachten zoeken met Get-Command
De Get-Command cmdlet retourneert een lijst met alle beschikbare opdrachten die op uw systeem zijn geïnstalleerd. De lijst kan groot zijn. U kunt de hoeveelheid informatie beperken die wordt geretourneerd door het antwoord te filteren met behulp van parameters of helper-cmdlets.
Filteren op naam
U kunt de uitvoer filteren van het gebruik van Get-Command verschillende parameters. Met filteren kunt u opdrachten met bepaalde eigenschappen vinden. Met de parameter Name kunt u een specifieke opdracht vinden op naam.
Get-Command -Name Get-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Wat moet u doen als u alle opdrachten wilt vinden die met processen werken? U kunt een jokerteken * gebruiken om andere vormen van de tekenreeks te vinden. Voorbeeld:
Get-Command -Name *-Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Start-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Management
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Management
Filteren op zelfstandig naamwoord en werkwoord
Er zijn andere parameters die filteren op waarden voor werkwoorden en zelfstandig naamwoorden. Het werkwoordgedeelte van de naam van een opdracht is het meest linkse gedeelte. Het werkwoord moet een van de waarden zijn die worden geretourneerd door de Get-Verb cmdlet. Het meest rechtse deel van een opdracht is het zelfstandig naamwoord. Een zelfstandig naamwoord kan alles zijn.
Filter op werkwoord. In de opdracht
Get-ProcessisGethet werkwoordgedeelte. Als u wilt filteren op het werkwoordonderdeel, gebruikt u de parameter Werkwoord .Get-Command -Verb 'Get'In dit voorbeeld worden alle opdrachten weergegeven die gebruikmaken van het werkwoord
Get.Filter op zelfstandig naamwoord. In de opdracht
Get-ProcessisProcesshet zelfstandig naamwoord. Als u wilt filteren op het zelfstandig naamwoord, gebruikt u de parameter Zelfstandig naamwoord . In het volgende voorbeeld worden alle cmdlets geretourneerd met zelfstandige naamwoorden die beginnen met de letterU.Get-Command -Noun U*
U kunt ook parameters combineren om uw zoekopdracht te verfijnen, bijvoorbeeld:
Get-Command -Verb Get -Noun U*
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Get-UICulture 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Unique 7.0.0.0 Microsoft.PowerShell.Utility
Cmdlet Get-Uptime 7.0.0.0 Microsoft.PowerShell.Utility
Helper-cmdlets gebruiken om resultaten te filteren
U kunt ook andere cmdlets gebruiken om resultaten te filteren.
Select-Object. Met deze veelzijdige opdracht kunt u specifieke eigenschappen uit een of meer objecten kiezen. U kunt ook het aantal items beperken dat u terugkrijgt. In het volgende voorbeeld worden de waarden van de eigenschap Naam en Bron geretourneerd voor de eerste vijf opdrachten die beschikbaar zijn in de huidige sessie.Get-Command | Select-Object -First 5 -Property Name, SourceName Source ---- ------ Add-AppPackage Appx Add-AppPackageVolume Appx Add-AppProvisionedPackage Dism Add-AssertionOperator Pester Add-ProvisionedAppPackage DismZie Select-Object voor meer informatie.
Where-Object. Met deze cmdlet kunt u de objecten filteren die worden geretourneerd op basis van de waarden van eigenschappen. Met de opdracht wordt een expressie gebruikt waarmee de waarde van een eigenschap kan worden getest. In het volgende voorbeeld worden alle processen geretourneerd waarbij hetProcessNamebegint metp.Get-Process | Where-Object {$_.ProcessName -like "p*"}De
Get-Processcmdlet retourneert een verzameling procesobjecten. Als u het antwoord wilt filteren, sluist u de uitvoer door naarWhere-Object. Piping betekent dat twee of meer opdrachten zijn verbonden via een pipe-teken|. De uitvoer van de ene opdracht wordt verzonden als invoer voor de volgende opdracht. De filterexpressie voorWhere-Objecthet gebruik van de-likeoperator om processen te vinden die beginnen met de letterp.
Objecten verkennen met Get-Member
Zodra u de gewenste cmdlet hebt gevonden, wilt u meer weten over de uitvoer die deze produceert. De Get-Member cmdlet geeft het type, de eigenschappen en methoden van een object weer. Sluis de uitvoer die u wilt inspecteren.Get-Member
Get-Process | Get-Member
Het resultaat geeft het geretourneerde type weer als TypeName en alle eigenschappen en methoden van het object. Hier volgt een fragment van een dergelijk resultaat:
TypeName: System.Diagnostics.Process
Name MemberType Definition
---- ---------- ----------
Handles AliasProperty Handles = Handlecount
Name AliasProperty Name = ProcessName
...
Met de parameter MemberType kunt u de geretourneerde informatie beperken.
Get-Process | Get-Member -MemberType Method
Standaard worden in PowerShell slechts enkele eigenschappen weergegeven. In het vorige voorbeeld zijn de , MemberTypeen Definition leden Nameweergegeven. U kunt de Select-Object eigenschappen opgeven die u wilt zien. U wilt bijvoorbeeld alleen de eigenschappen en Definition de Name eigenschappen weergeven:
Get-Process | Get-Member | Select-Object Name, Definition
Zoeken op parametertype
Get-Member toont ons dat Get-Processprocestypeobjecten retourneert. De parameter ParameterType van Get-Command kan worden gebruikt om andere opdrachten te vinden die procesobjecten als invoer gebruiken.
Get-Command -ParameterType Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Enter-PSHostProcess 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Get-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Get-PSHostProcessInfo 7.1.0.0 Microsoft.PowerShell.Core
Cmdlet Stop-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Cmdlet Wait-Process 7.0.0.0 Microsoft.PowerShell.Managem…
Als u het uitvoertype van een opdracht kent, kunt u uw zoekopdracht naar gerelateerde opdrachten verfijnen.