Hoofdstuk 2 - Het Help-systeem
Twee groepen IT-professionals kregen een geschreven test zonder toegang tot een computer om hun vaardigheidsniveau met PowerShell te bepalen. PowerShell-beginners zijn in één groep en experts in een andere geplaatst. Op basis van de resultaten van de test leek er niet veel verschil in het vaardigheidsniveau tussen de twee groepen. Beide groepen kregen een tweede test die vergelijkbaar is met de eerste. Deze keer kregen ze toegang tot een computer met PowerShell die geen toegang tot internet had. De resultaten van de tweede test vertoonden een enorm verschil in het vaardigheidsniveau tussen de twee groepen. Experts kennen de antwoorden niet altijd, maar ze weten hoe ze de antwoorden kunnen bepalen.
Wat was het verschil in de resultaten van de eerste en tweede test tussen deze twee groepen?
De verschillen die in deze twee tests werden waargenomen, waren omdat experts niet onthouden hoe ze duizenden opdrachten in PowerShell kunnen gebruiken. Ze leren hoe ze het Help-systeem in PowerShell zeer goed kunnen gebruiken. Hierdoor kunnen ze de benodigde opdrachten vinden wanneer dat nodig is en hoe ze deze opdrachten kunnen gebruiken zodra ze ze hebben gevonden.
Ik heb Jeffrey Snover, de uitvinder van PowerShell, een vergelijkbaar verhaal gehoord.
Het helpsysteem beheersen is de sleutel om succesvol te zijn met PowerShell.
Vindbaarheid
Gecompileerde opdrachten in PowerShell worden cmdlets genoemd. Cmdlet wordt uitgesproken als 'command-let' (niet CMD-let). Namen van cmdlets hebben de vorm van enkelvoudige opdrachten 'Werkwoord-Zelfstandig naamwoord' om ze gemakkelijk te detecteren. De cmdlet voor het bepalen van de processen die worden uitgevoerd, is Get-Process
bijvoorbeeld de cmdlet voor het ophalen van een lijst met services en hun statussen Get-Service
. Er zijn andere typen opdrachten in PowerShell, zoals aliassen en functies die verderop in dit boek worden behandeld. De term PowerShell-opdracht is een algemene term die vaak wordt gebruikt om te verwijzen naar elk type opdracht in PowerShell, ongeacht of het een cmdlet, functie of alias is.
De drie kern-cmdlets in PowerShell
Get-Command
Get-Help
Get-Member
(behandeld in hoofdstuk 3)
Een vraag die ik vaak heb gesteld, is hoe weet u wat de opdrachten zijn in PowerShell? Beide Get-Command
en Get-Help
kunnen worden gebruikt om de opdrachten te bepalen.
Get-Help
Get-Help
is een opdracht voor meerdere doeleinden. Get-Help
helpt u te leren hoe u opdrachten gebruikt zodra u ze hebt gevonden. Get-Help
kan ook worden gebruikt om opdrachten te vinden, maar op een andere en meer indirecte manier in vergelijking met Get-Command
.
Wanneer Get-Help
wordt gebruikt om opdrachten te vinden, wordt eerst gezocht naar jokertekenovereenkomsten met opdrachtnamen op basis van de opgegeven invoer. Als er geen overeenkomst wordt gevonden, wordt in de Help-onderwerpen zelf gezocht en wordt er een fout geretourneerd als er geen overeenkomst wordt gevonden. In tegenstelling tot populaire overtuigingen, Get-Help
kan worden gebruikt om opdrachten te vinden die geen Help-onderwerpen hebben.
Het eerste wat u moet weten over het Help-systeem in PowerShell is het gebruik van de Get-Help
cmdlet. De volgende opdracht wordt gebruikt om het Help-onderwerp voor Get-Help
weer te geven.
Get-Help -Name Get-Help
Do you want to run Update-Help?
The Update-Help cmdlet downloads the most current Help files for Windows PowerShell
modules, and installs them on your computer. For more information about the Update-Help
cmdlet, see http://go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Vanaf PowerShell versie 3 wordt PowerShell niet geleverd met het besturingssysteem. De eerste keer Get-Help
dat een opdracht wordt uitgevoerd, wordt het vorige bericht weergegeven. Als de help
functie of man
alias wordt gebruikt in plaats van de Get-Help
cmdlet, ontvangt u deze prompt niet.
Als u ja beantwoordt door op Y te drukken, wordt de Update-Help
cmdlet uitgevoerd. Hiervoor is standaard internettoegang vereist. Y
kan worden opgegeven in hoofdletters of kleine letters.
Zodra de Help is gedownload en de update is voltooid, wordt het Help-onderwerp geretourneerd voor de opgegeven opdracht:
Get-Help -Name Get-Help
Neem even de tijd om dat voorbeeld op uw computer uit te voeren, bekijk de uitvoer en noteer hoe de gegevens zijn gegroepeerd:
- NAAM
- SAMENVATTING
- SYNTAXIS
- BESCHRIJVING
- GERELATEERDE KOPPELINGEN
- OPMERKINGEN
Zoals u kunt zien, kunnen Help-onderwerpen een enorme hoeveelheid informatie bevatten en dit is niet eens het hele Help-onderwerp.
Hoewel dit niet specifiek is voor PowerShell, is een parameter een manier om invoer voor een opdracht op te geven. Get-Help
bevat veel parameters die kunnen worden opgegeven om het hele Help-onderwerp of een subset ervan te retourneren.
De syntaxissectie van het Help-onderwerp dat in de vorige set met resultaten wordt weergegeven, bevat een lijst met alle parameters voor Get-Help
. Op het eerste gezicht worden dezelfde parameters zes verschillende keren weergegeven. Elk van deze verschillende blokken in de syntaxissectie is een parameterset. Dit betekent dat de Get-Help
cmdlet zes verschillende parametersets heeft. Als u nader kijkt, ziet u dat ten minste één parameter verschilt in elk van de parametersets.
Parametersets sluiten elkaar wederzijds uit. Zodra een unieke parameter in een van de parametersets wordt gebruikt, kunnen alleen parameters in die parameterset worden gebruikt. De parameters Volledig en Gedetailleerd kunnen bijvoorbeeld niet tegelijkertijd worden opgegeven omdat ze zich in verschillende parametersets bevinden.
Elk van de volgende parameters bevinden zich in verschillende parametersets:
- Volledig
- Gedetailleerde
- Voorbeelden
- Online
- Parameter
- ShowWindow
Alle cryptische syntaxis, zoals vierkante haakjes en hoekhaken in de syntaxissectie, betekent iets maar wordt behandeld in bijlage A van dit boek. Hoewel belangrijk, is het leren van de cryptische syntaxis vaak moeilijk te behouden voor iemand die niet bekend is met PowerShell en deze mogelijk niet dagelijks gebruikt.
Zie bijlage A voor meer informatie over de cryptische syntaxis.
Voor beginners is er een eenvoudigere manier om dezelfde informatie te achterhalen, behalve in gewone taal.
Wanneer de parameter Volledig is Get-Help
opgegeven, wordt het hele Help-onderwerp geretourneerd.
Get-Help -Name Get-Help -Full
Neem even de tijd om dat voorbeeld op uw computer uit te voeren, bekijk de uitvoer en noteer hoe de gegevens zijn gegroepeerd:
- NAAM
- SAMENVATTING
- SYNTAXIS
- BESCHRIJVING
- PARAMETERS
- INVOER
- UITVOER
- OPMERKINGEN
- VOORBEELDEN
- GERELATEERDE KOPPELINGEN
U ziet dat met behulp van de parameter Volledig verschillende extra secties zijn geretourneerd. Dit is de sectie PARAMETERS die meer informatie biedt dan de sectie cryptische SYNTAXIS.
De parameter Volledig is een schakelparameter. Een parameter waarvoor geen waarde is vereist, wordt een schakelparameter genoemd. Wanneer een switchparameter is opgegeven, is de waarde waar en wanneer dit niet het geval is, is de waarde onwaar.
Als u dit hoofdstuk in de PowerShell-console hebt doorlopen, hebt u gemerkt dat met de vorige opdracht het volledige Help-onderwerp wordt weergegeven dat u Get-Help
op het scherm hebt gevlogen zonder dat u het kunt lezen. Er is een betere manier.
Help
is een functie die een functie met de naam more
krijgtGet-Help
, een wrapper voor het more.com
uitvoerbare bestand in Windows. In de PowerShell-console help
vindt u één pagina met Help-informatie tegelijk. In de ISE werkt het op dezelfde manier als Get-Help
. Mijn aanbeveling is om de help
functie te gebruiken in plaats van de Get-Help
cmdlet, omdat deze een betere ervaring biedt en het minder is om te typen.
Minder typen is echter niet altijd een goede zaak. Als u uw opdrachten opslaat als een script of deze met iemand anders deelt, moet u de volledige cmdlet- en parameternamen gebruiken. De volledige namen zijn zelfdocumenterend, waardoor ze gemakkelijker te begrijpen zijn. Denk na over de volgende persoon die uw opdrachten moet lezen en begrijpen. Het kan jij zijn. Uw collega's en toekomstige zelf zullen u bedanken.
Voer de volgende opdrachten uit in de PowerShell-console op uw Windows 10-testomgevingscomputer.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Zag u verschillen in de uitvoer van de eerder vermelde opdrachten toen u ze uitvoerde op uw Windows 10-testomgevingscomputer?
Er zijn geen andere verschillen dan de laatste twee opties die de resultaten één pagina tegelijk retourneren.
De spatiebalk wordt gebruikt om de volgende pagina met inhoud weer te geven wanneer u de Help
functie gebruikt en Ctrl+C annuleert opdrachten die worden uitgevoerd in de PowerShell-console.
In het eerste voorbeeld wordt de Get-Help
cmdlet gebruikt, het tweede gebruikt de Help
functie en het derde laat de parameter Name weg wanneer u de Help
functie gebruikt. De naam is een positionele parameter en wordt in dat voorbeeld positioneel gebruikt. Dit betekent dat de waarde kan worden opgegeven zonder de parameternaam op te geven, zolang de waarde zelf op de juiste positie is opgegeven. Hoe weet ik in welke positie de waarde moet worden opgegeven? Door de Help te lezen, zoals wordt weergegeven in het volgende voorbeeld.
help Get-Help -Parameter Name
-Name <String>
Gets help about the specified command or concept. Enter the name of a cmdlet, function,
provider, script, or workflow, such as Get-Member, a conceptual article name, such as
about_Objects, or an alias, such as ls. Wildcard characters are permitted in cmdlet and
provider names, but you can't use wildcard characters to find the names of function help and
script help articles.
To get help for a script that isn't located in a path that's listed in the $env:Path
environment variable, type the script's path and file name.
If you enter the exact name of a help article, Get-Help displays the article contents.
If you enter a word or word pattern that appears in several help article titles, Get-Help
displays a list of the matching titles.
If you enter a word that doesn't match any help article titles, Get-Help displays a list of
articles that include that word in their contents.
The names of conceptual articles, such as about_Objects, must be entered in English, even in
non-English versions of PowerShell.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
U ziet dat in het vorige voorbeeld de parameter parameter is gebruikt met de Help-functie om alleen informatie te retourneren uit het Help-onderwerp voor de parameter Name . Dit is veel beknopter dan het handmatig doorzoeken van wat soms een honderd pagina-Help-onderwerp lijkt.
Op basis van deze resultaten kunt u zien dat de parameter Name positioneel is en moet worden opgegeven in positie nul (de eerste positie) wanneer deze positioneel wordt gebruikt. De volgorde waarin parameters zijn opgegeven, maakt niet uit of de parameternaam is opgegeven.
Een ander belangrijk stukje informatie is dat de parameter Name verwacht dat het gegevenstype voor de waarde één tekenreeks is, die wordt aangeduid door <String>
. Als het meerdere tekenreeksen heeft geaccepteerd, wordt het gegevenstype weergegeven als <String[]>
.
Soms wilt u het hele Help-onderwerp voor een opdracht niet weergeven. Er zijn een aantal andere parameters naast Full die kunnen worden opgegeven met Get-Help
of Help
. Voer de volgende opdrachten uit op uw Windows 10-testomgevingcomputer:
Get-Help -Name Get-Command -Full
Get-Help -Name Get-Command -Detailed
Get-Help -Name Get-Command -Examples
Get-Help -Name Get-Command -Online
Get-Help -Name Get-Command -Parameter Noun
Get-Help -Name Get-Command -ShowWindow
Normaal gesproken gebruik help <command name>
ik met de parameter Volledig of Online . Als ik alleen geïnteresseerd ben in de voorbeelden, gebruik ik de parameter Voorbeelden en als ik alleen geïnteresseerd ben in een specifieke parameter, gebruik ik de parameter Parameter . De parameter ShowWindow opent het Help-onderwerp in een afzonderlijk doorzoekbaar venster dat op een andere monitor kan worden geplaatst als u meerdere beeldschermen hebt. Ik heb de parameter ShowWindow vermeden omdat er een bekende bug is waarbij het hele Help-onderwerp niet wordt weergegeven.
Als u hulp in een apart venster wilt, is het raadzaam om de onlineparameter te gebruiken of de parameter Volledig te gebruiken en de resultaten door te Out-GridView
geven, zoals wordt weergegeven in het volgende voorbeeld.
help Get-Command -Full | Out-GridView
Zowel de Out-GridView
cmdlet als de parameter ShowWindow van de Get-Help
cmdlet vereisen een besturingssysteem met een GUI (Graphical User Interface). Er wordt een foutbericht gegenereerd als u probeert een van deze te gebruiken op Windows Server die is geïnstalleerd met behulp van de server core (no-GUI) installatieoptie.
Get-Help
Als u opdrachten wilt zoeken, gebruikt u het jokerteken sterretje (*
) met de parameter Naam. Geef een term op waarvoor u opdrachten zoekt als de waarde voor de parameter Naam , zoals wordt weergegeven in het volgende voorbeeld.
help *process*
Name Category Module Synopsis
---- -------- ------ --------
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Connects to and ...
Exit-PSHostProcess Cmdlet Microsoft.PowerShell.Core Closes an intera...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core
Debug-Process Cmdlet Microsoft.PowerShell.M... Debugs one or mo...
Get-Process Cmdlet Microsoft.PowerShell.M... Gets the process...
Start-Process Cmdlet Microsoft.PowerShell.M... Starts one or mo...
Stop-Process Cmdlet Microsoft.PowerShell.M... Stops one or mor...
Wait-Process Cmdlet Microsoft.PowerShell.M... Waits for the pr...
Get-AppvVirtualProcess Function AppvClient ...
Start-AppvVirtualProcess Function AppvClient ...
In het vorige voorbeeld zijn de *
jokertekens niet vereist en worden ze weggelaten, waardoor hetzelfde resultaat wordt gegenereerd. Get-Help
voegt automatisch de jokertekens achter de schermen toe.
help process
De vorige opdracht produceert dezelfde resultaten als het opgeven van het *
jokerteken aan elk einde van het proces.
Ik voeg ze liever toe, omdat dat de optie is die altijd consistent werkt. Anders zijn ze vereist in bepaalde scenario's en niet in andere. Zodra u een jokerteken in het midden van de waarde toevoegt, worden deze niet meer automatisch achter de opgegeven waarde toegevoegd.
help pr*cess
Er worden geen resultaten geretourneerd door deze opdracht, tenzij het *
jokerteken wordt toegevoegd aan het begin, einde of zowel het begin als het einde van pr*cess
.
Als de waarde die u hebt opgegeven, begint met een streepje, wordt er een fout gegenereerd omdat powerShell deze interpreteert als een parameternaam en er geen dergelijke parameternaam bestaat voor de Get-Help
cmdlet.
help -process
Als wat u zoekt, opdrachten zijn waarmee u eindigt -process
, hoeft u alleen het *
jokerteken toe te voegen aan het begin van de waarde.
help *-process
Wanneer u zoekt naar PowerShell-opdrachten, Get-Help
wilt u wat vaager zijn in plaats van te specifiek te zijn met wat u zoekt.
process
Zoeken naar eerder gevonden alleen opdrachten die zijn opgenomen process
in de naam van de opdracht en alleen die resultaten hebben geretourneerd. Wanneer Get-Help
wordt gebruikt om naar te zoeken processes
, vindt het geen overeenkomsten voor opdrachtnamen, dus voert het een zoekopdracht uit van elk Help-onderwerp in PowerShell op uw systeem en retourneert eventuele overeenkomsten die worden gevonden. Dit zorgt ervoor dat het een enorm aantal resultaten retourneert.
Get-Help processes
Name Category Module Synopsis
---- -------- ------ --------
Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Disconnects from...
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Connects to and ...
ForEach-Object Cmdlet Microsoft.PowerShell.Core Performs an oper...
Get-PSSessionConfiguration Cmdlet Microsoft.PowerShell.Core Gets the registe...
New-PSTransportOption Cmdlet Microsoft.PowerShell.Core Creates an objec...
Out-Host Cmdlet Microsoft.PowerShell.Core Sends output to ...
Where-Object Cmdlet Microsoft.PowerShell.Core Selects objects ...
Clear-Variable Cmdlet Microsoft.PowerShell.U... Deletes the valu...
Compare-Object Cmdlet Microsoft.PowerShell.U... Compares two set...
Convert-String Cmdlet Microsoft.PowerShell.U... Formats a string...
ConvertFrom-Csv Cmdlet Microsoft.PowerShell.U... Converts object ...
ConvertTo-Html Cmdlet Microsoft.PowerShell.U... Converts Microso...
ConvertTo-Xml Cmdlet Microsoft.PowerShell.U... Creates an XML-b...
Debug-Runspace Cmdlet Microsoft.PowerShell.U... Starts an intera...
Export-Csv Cmdlet Microsoft.PowerShell.U... Converts objects...
Export-FormatData Cmdlet Microsoft.PowerShell.U... Saves formatting...
Format-List Cmdlet Microsoft.PowerShell.U... Formats the outp...
Format-Table Cmdlet Microsoft.PowerShell.U... Formats the outp...
Get-Random Cmdlet Microsoft.PowerShell.U... Gets a random nu...
Get-Unique Cmdlet Microsoft.PowerShell.U... Returns unique i...
Group-Object Cmdlet Microsoft.PowerShell.U... Groups objects t...
Import-Clixml Cmdlet Microsoft.PowerShell.U... Imports a CLIXML...
Import-Csv Cmdlet Microsoft.PowerShell.U... Creates table-li...
Measure-Object Cmdlet Microsoft.PowerShell.U... Calculates the n...
Out-File Cmdlet Microsoft.PowerShell.U... Sends output to ...
Out-GridView Cmdlet Microsoft.PowerShell.U... Sends output to ...
Select-Object Cmdlet Microsoft.PowerShell.U... Selects objects ...
Set-Variable Cmdlet Microsoft.PowerShell.U... Sets the value o...
Sort-Object Cmdlet Microsoft.PowerShell.U... Sorts objects by...
Tee-Object Cmdlet Microsoft.PowerShell.U... Saves command ou...
Trace-Command Cmdlet Microsoft.PowerShell.U... Configures and s...
Write-Output Cmdlet Microsoft.PowerShell.U... Sends the specif...
Debug-Process Cmdlet Microsoft.PowerShell.M... Debugs one or mo...
Get-Process Cmdlet Microsoft.PowerShell.M... Gets the process...
Get-WmiObject Cmdlet Microsoft.PowerShell.M... Gets instances o...
Start-Process Cmdlet Microsoft.PowerShell.M... Starts one or mo...
Stop-Process Cmdlet Microsoft.PowerShell.M... Stops one or mor...
Wait-Process Cmdlet Microsoft.PowerShell.M... Waits for the pr...
Get-Counter Cmdlet Microsoft.PowerShell.D... Gets performance...
Invoke-WSManAction Cmdlet Microsoft.WSMan.Manage... Invokes an actio...
Remove-WSManInstance Cmdlet Microsoft.WSMan.Manage... Deletes a manage...
Get-WSManInstance Cmdlet Microsoft.WSMan.Manage... Displays managem...
New-WSManInstance Cmdlet Microsoft.WSMan.Manage... Creates a new in...
Set-WSManInstance Cmdlet Microsoft.WSMan.Manage... Modifies the man...
about_Arithmetic_Operators HelpFile Describes the op...
about_Arrays HelpFile Describes arrays...
about_Debuggers HelpFile Describes the Wi...
about_Execution_Policies HelpFile Describes the Wi...
about_ForEach-Parallel HelpFile Describes the Fo...
about_Foreach HelpFile Describes a lang...
about_Functions HelpFile Describes how to...
about_Language_Keywords HelpFile Describes the ke...
about_Methods HelpFile Describes how to...
about_Objects HelpFile Provides essenti...
about_Parallel HelpFile Describes the Pa...
about_Pipelines HelpFile Combining comman...
about_Preference_Variables HelpFile Variables that c...
about_Remote HelpFile Describes how to...
about_Remote_Output HelpFile Describes how to...
about_Sequence HelpFile Describes the Se...
about_Session_Configuration_Files HelpFile Describes sessio...
about_Variables HelpFile Describes how va...
about_Windows_PowerShell_5.0 HelpFile Describes new fe...
about_WQL HelpFile Describes WMI Qu...
about_WS-Management_Cmdlets HelpFile Provides an over...
about_ForEach-Parallel HelpFile Describes the Fo...
about_Parallel HelpFile Describes the Pa...
about_Sequence HelpFile Describes the Se...
Hiermee Help
zoekt u process
naar geretourneerde 10 resultaten en gebruikt u deze om te zoeken naar processes
68 geretourneerde resultaten. Als er slechts één resultaat wordt gevonden, wordt het Help-onderwerp zelf weergegeven in plaats van een lijst met opdrachten.
get-help *hotfix*
NAME
Get-HotFix
SYNOPSIS
Gets the hotfixes that have been applied to the local and remote computers.
SYNTAX
Get-HotFix [-ComputerName <String[]>] [-Credential <PSCredential>] [-Description
<String[]>] [<CommonParameters>]
Get-HotFix [[-Id] <String[]>] [-ComputerName <String[]>] [-Credential
<PSCredential>] [<CommonParameters>]
DESCRIPTION
The Get-Hotfix cmdlet gets hotfixes (also called updates) that have been installed
on either the local computer (or on specified remote computers) by Windows Update,
Microsoft Update, or Windows Server Update Services; the cmdlet also gets hotfixes
or updates that have been installed manually by users.
RELATED LINKS
Online Version: http://go.microsoft.com/fwlink/?LinkId=821586
Win32_QuickFixEngineering http://go.microsoft.com/fwlink/?LinkID=145071
Get-ComputerRestorePoint
Add-Content
REMARKS
To see the examples, type: "get-help Get-HotFix -examples".
For more information, type: "get-help Get-HotFix -detailed".
For technical information, type: "get-help Get-HotFix -full".
For online help, type: "get-help Get-HotFix -online"
Nu om de mythe te ontmaskeren die Help
in PowerShell alleen opdrachten met Help-onderwerpen kunnen vinden.
help *more*
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
U ziet in het vorige voorbeeld dat more
geen Help-onderwerp heeft, maar het Help
systeem in PowerShell kon het vinden. Er is slechts één overeenkomst gevonden en de basissyntaxisgegevens geretourneerd die u ziet wanneer een opdracht geen Help-onderwerp heeft.
PowerShell bevat talloze help-onderwerpen voor conceptuele (info) De volgende opdracht kan worden gebruikt voor het retourneren van een lijst met alle Help-onderwerpen over uw systeem.
help About_*
Als u de resultaten beperkt tot één Help-onderwerp Over help, wordt het werkelijke Help-onderwerp weergegeven in plaats van een lijst te retourneren.
help about_Updatable_Help
Het Help-systeem in PowerShell moet worden bijgewerkt om de Help-onderwerpen Over te kunnen presenteren. Als de eerste update van het Help-systeem om een of andere reden is mislukt op uw computer, zijn de bestanden pas beschikbaar als de Update-Help
cmdlet is uitgevoerd.
Get-Command
Get-Command
is ontworpen om u te helpen bij het vinden van opdrachten. Uitvoeren Get-Command
zonder parameters retourneert een lijst met alle opdrachten op uw systeem. In het volgende voorbeeld ziet u hoe u de Get-Command
cmdlet gebruikt om te bepalen welke opdrachten er bestaan voor het werken met processen:
Get-Command -Noun Process
CommandType Name Version Source
----------- ---- ------- ------
Cmdlet Debug-Process 3.1.0.0 Microsof...
Cmdlet Get-Process 3.1.0.0 Microsof...
Cmdlet Start-Process 3.1.0.0 Microsof...
Cmdlet Stop-Process 3.1.0.0 Microsof...
Cmdlet Wait-Process 3.1.0.0 Microsof...
In het vorige voorbeeld waarin Get-Command
de parameter Zelfstandig naamwoord is uitgevoerd, wordt de parameter Zelfstandig naamwoord gebruikt en Process
opgegeven als de waarde voor de parameter Zelfstandig naamwoord. Wat gebeurt er als u niet wist hoe u de Get-Command
cmdlet moet gebruiken? U kunt het Help-onderwerp voor Get-Help
Get-Command
weergeven.
De parameters Naam, Zelfstandig naamwoord en Werkwoord accepteren jokertekens. In het volgende voorbeeld ziet u jokertekens die worden gebruikt met de parameter Name :
Get-Command -Name *service*
CommandType Name Version Source
----------- ---- ------- ------
Function Get-NetFirewallServiceFilter 2.0.0.0 NetSecurity
Function Set-NetFirewallServiceFilter 2.0.0.0 NetSecurity
Cmdlet Get-Service 3.1.0.0 Microsof...
Cmdlet New-Service 3.1.0.0 Microsof...
Cmdlet New-WebServiceProxy 3.1.0.0 Microsof...
Cmdlet Restart-Service 3.1.0.0 Microsof...
Cmdlet Resume-Service 3.1.0.0 Microsof...
Cmdlet Set-Service 3.1.0.0 Microsof...
Cmdlet Start-Service 3.1.0.0 Microsof...
Cmdlet Stop-Service 3.1.0.0 Microsof...
Cmdlet Suspend-Service 3.1.0.0 Microsof...
Application AgentService.exe 10.0.14... C:\Windo...
Application SensorDataService.exe 10.0.14... C:\Windo...
Application services.exe 10.0.14... C:\Windo...
Application services.msc 0.0.0.0 C:\Windo...
Application TieringEngineService.exe 10.0.14... C:\Windo...
Ik ben geen fan van het gebruik van jokertekens met de parameter Name van Get-Command
, omdat het ook uitvoerbare bestanden retourneert die geen systeemeigen PowerShell-opdrachten zijn.
Als u jokertekens wilt gebruiken met de parameter Name , raad ik u aan de resultaten te beperken met de parameter CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias
Een betere optie is om de parameter Werkwoord of Zelfstandig naamwoord of beide te gebruiken, omdat alleen PowerShell-opdrachten zowel werkwoorden als zelfstandige naamwoorden hebben.
Hebt u iets mis met een Help-onderwerp? Het goede nieuws is dat de Help-onderwerpen voor PowerShell open source zijn en beschikbaar zijn in de PowerShell-Docs-opslagplaats op GitHub. Betaal het door door, niet alleen door de onjuiste informatie voor uzelf te corrigeren, maar ook door alle anderen. U hoeft alleen de PowerShell-documentatieopslagplaats op GitHub te splitsen, het Help-onderwerp bij te werken en een pull-aanvraag in te dienen. Zodra de pull-aanvraag is geaccepteerd, is de gecorrigeerde documentatie beschikbaar voor iedereen.
Help bijwerken
De lokale kopie van de Help-onderwerpen van PowerShell is eerder bijgewerkt. De eerste keer dat u hulp nodig hebt voor een opdracht, is aangevraagd. Het wordt aanbevolen om het Help-systeem periodiek bij te werken, omdat er van tijd tot tijd updates voor de Help-inhoud kunnen zijn. De Update-Help
cmdlet wordt gebruikt om de Help-onderwerpen bij te werken.
Hiervoor is standaard internettoegang vereist en moet u PowerShell uitvoeren als beheerder.
Update-Help
Update-Help : Failed to update Help for the module(s) 'BitsTransfer' with UI culture(s)
{en-US} : Unable to retrieve the HelpInfo XML file for UI culture en-US. Make sure the HelpInfoUri
property in the module manifest is valid or check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+
+ CategoryInfo : InvalidOperation: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : InvalidHelpInfoUri,Microsoft.PowerShell.Commands.UpdateHel
pCommand
Update-Help : Failed to update Help for the module(s) 'NetworkControllerDiagnostics,
StorageReplica' with UI culture(s) {en-US} : Unable to retrieve the HelpInfo XML file
for UI culture en-US. Make sure the HelpInfoUri property in the module manifest is valid
or check your network connection and then try the command again.
At line:1 char:1
+ Update-Help
+
+ CategoryInfo : ResourceUnavailable: (:) [Update-Help], Exception
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShell.Commands.
UpdateHelpCommand
Een aantal van de modules heeft fouten geretourneerd, wat niet ongebruikelijk is. Als de computer geen internettoegang heeft, kunt u de Save-Help
cmdlet gebruiken op een andere computer die wel internettoegang heeft om eerst de bijgewerkte Help-informatie op te slaan in een bestandsshare in uw netwerk en vervolgens de parameter Update-Help
SourcePath te gebruiken om deze netwerklocatie op te geven voor de Help-onderwerpen.
Overweeg om een geplande taak in te stellen of om logica toe te voegen aan uw profielscript in PowerShell om de Help-inhoud op uw computer periodiek bij te werken. Profielscripts worden in een volgend hoofdstuk besproken.
Samenvatting
In dit hoofdstuk hebt u geleerd hoe u opdrachten kunt vinden met zowel Get-Help
als Get-Command
. U hebt geleerd hoe u het Help-systeem kunt gebruiken om erachter te komen hoe u opdrachten gebruikt zodra u ze hebt gevonden. U hebt ook geleerd hoe u de inhoud van de Help-onderwerpen bijwerkt wanneer er updates beschikbaar zijn.
Mijn uitdaging voor u is om een PowerShell-opdracht per dag te leren.
Get-Command | Get-Random | Get-Help -Full
Beoordelen
- Is de parameter DisplayName
Get-Service
positioneel? - Hoeveel parametersets heeft de
Get-Process
cmdlet? - Welke PowerShell-opdrachten bestaan voor het werken met gebeurtenislogboeken?
- Wat is de PowerShell-opdracht voor het retourneren van een lijst met PowerShell-processen die op uw computer worden uitgevoerd?
- Hoe werkt u de Help-inhoud van PowerShell bij die op uw computer is opgeslagen?
Aanbevolen documentatie
Als u meer informatie wilt over de onderwerpen die in dit hoofdstuk worden behandeld, raad ik u aan de volgende Help-onderwerpen voor PowerShell te lezen.
In het volgende hoofdstuk leert u meer over de Get-Member
cmdlet, evenals objecten, eigenschappen en methoden.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor