Capitolo 2 - Sistema della Guida
In un esperimento progettato per valutare la competenza in PowerShell, due gruppi distinti di professionisti IT, principianti ed esperti, hanno ricevuto prima un esame scritto senza accesso a un computer. Sorprendentemente, i punteggi dei test hanno indicato competenze confrontabili in entrambi i gruppi. Un test successivo è stato quindi amministrato, mirroring il primo ma con una differenza fondamentale: i partecipanti hanno avuto accesso a un computer offline dotato di PowerShell. I risultati hanno rivelato un divario significativo di competenze tra i due gruppi questa volta.
Quali fattori hanno contribuito ai risultati osservati tra le due valutazioni?
Gli esperti non sempre conoscono le risposte, ma sanno come trovarle.
I risultati osservati nei risultati dei due test sono stati perché gli esperti non memorizzano migliaia di comandi di PowerShell. Al contrario, eccelle nell'uso del sistema della Guida all'interno di PowerShell, consentendo loro di individuare e imparare a usare i comandi quando necessario.
Diventare esperti nel sistema della Guida è la chiave per il successo con PowerShell.
Ho sentito Jeffrey Snover, creatore di PowerShell, condividere una storia simile in più occasioni.
Individuabilità
I comandi compilati in PowerShell sono noti come cmdlet, pronunciati come "command-let", non "CMD-let". La convenzione di denominazione per i cmdlet segue un formato verbo-sostantivo singolare per renderli facilmente individuabili. Ad esempio, Get-Process
è il cmdlet per determinare quali processi sono in esecuzione ed Get-Service
è il cmdlet per recuperare un elenco di servizi. Le funzioni, note anche come cmdlet script, e alias sono altri tipi di comandi di PowerShell descritti più avanti in questo libro. Il termine "comando di PowerShell" descrive qualsiasi comando in PowerShell, indipendentemente dal fatto che si tratti di un cmdlet, di una funzione o di un alias.
È anche possibile eseguire comandi nativi del sistema operativo da PowerShell, ad esempio programmi della riga di comando tradizionali come ping.exe
e ipconfig.exe
.
I tre cmdlet principali in PowerShell
Get-Help
Get-Command
Get-Member
(illustrato nel capitolo 3)
Viene spesso chiesto: "Come si determinano i comandi in PowerShell?". Sia Get-Help
che Get-Command
sono risorse preziose per l'individuazione e la comprensione dei comandi in PowerShell.
Get-Help
La prima cosa da sapere sul sistema della Guida in PowerShell è come usare il Get-Help
cmdlet .
Get-Help
è un comando multiuso che consente di imparare a usare i comandi dopo averli trovate.
È anche possibile usare Get-Help
per individuare i comandi, ma in modo diverso e più indiretto rispetto a Get-Command
.
Quando si usano Get-Help
per individuare i comandi, inizialmente esegue una ricerca con caratteri jolly per i nomi dei comandi in base all'input. Se ciò non trova corrispondenze, esegue una ricerca full-text completa in tutti gli articoli della Guida di PowerShell nel sistema. Se questo non riesce a trovare risultati, restituisce un errore.
Ecco come usare Get-Help
per visualizzare il contenuto della Guida per il Get-Help
cmdlet .
Get-Help -Name Get-Help
A partire da PowerShell versione 3.0, il contenuto della Guida non viene fornito preinstallato con il sistema operativo. Quando si esegue Get-Help
per la prima volta, un messaggio chiede se si desidera scaricare i file della Guida di PowerShell nel computer.
La risposta Sì premendo Y esegue il Update-Help
cmdlet, scaricando il contenuto della Guida.
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
https:/go.microsoft.com/fwlink/?LinkId=210614.
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"):
Se non si riceve questo messaggio, eseguire Update-Help
da una sessione di PowerShell con privilegi elevati in esecuzione come amministratore.
Al termine dell'aggiornamento, viene visualizzato l'articolo della Guida.
Per eseguire l'esempio nel computer, esaminare l'output e osservare come il sistema della Guida organizza le informazioni.
- NOME
- RIEPILOGO
- SYNTAX
- DESCRIZIONE
- COLLEGAMENTI CORRELATI
- REMARKS
Quando si esamina l'output, tenere presente che gli articoli della Guida contengono spesso una grande quantità di informazioni e ciò che viene visualizzato per impostazione predefinita non è l'intero articolo della Guida.
Parametri
Quando si esegue un comando in PowerShell, potrebbe essere necessario fornire informazioni aggiuntive o input al comando. I parametri consentono di specificare opzioni e argomenti che modificano il comportamento di un comando. La sezione SYNTAX di ogni articolo della Guida descrive i parametri disponibili per il comando.
Get-Help
include diversi parametri che è possibile specificare per restituire l'intero articolo della Guida o un subset per un comando. Per visualizzare tutti i parametri disponibili per Get-Help
, vedere la sezione SYNTAX del relativo articolo della Guida, come illustrato nell'esempio seguente.
...
SYNTAX
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Full]
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Detailed
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] -Examples
[-Functionality <System.String[]>] [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Online [-Path <System.String>] [-Role
<System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] -Parameter <System.String> [-Path <System.String>]
[-Role <System.String[]>] [<CommonParameters>]
Get-Help [[-Name] <System.String>] [-Category {Alias | Cmdlet | Provider
| General | FAQ | Glossary | HelpFile | ScriptCommand | Function |
Filter | ExternalScript | All | DefaultHelp | Workflow | DscResource |
Class | Configuration}] [-Component <System.String[]>] [-Functionality
<System.String[]>] [-Path <System.String>] [-Role <System.String[]>]
-ShowWindow [<CommonParameters>]
...
Set di parametri
Quando si esamina la sezione SYNTAX per Get-Help
, si noti che le informazioni sembrano essere ripetute sei volte. Ognuno di questi blocchi è un singolo set di parametri, che indica le caratteristiche del Get-Help
cmdlet di sei set distinti di parametri. Un'occhiata più da vicino rivela che ogni set di parametri contiene almeno un parametro univoco, rendendolo diverso dagli altri.
I set di parametri si escludono a vicenda. Dopo aver specificato un parametro univoco che esiste solo in un set di parametri, PowerShell limita l'uso dei parametri contenuti all'interno di tale set di parametri.
Ad esempio, non è possibile usare insieme i Get-Help
parametri Full e Detailed perché appartengono a set di parametri diversi.
Ognuno dei parametri seguenti appartiene a un set di parametri diverso per il Get-Help
cmdlet .
- Completa
- Dettagliate
- Esempi
- Online
- Parametro
- ShowWindow
Sintassi del comando
Se non si ha familiarità con PowerShell, comprendere le informazioni criptiche, caratterizzate da parentesi quadre e angolari, nella sezione SINTASSI potrebbe sembrare travolgente. Tuttavia, l'apprendimento di questi elementi di sintassi è essenziale per diventare esperti con PowerShell. Più frequentemente si usa il sistema della Guida di PowerShell, più facile diventa ricordare tutte le sfumature.
Visualizzare la sintassi del Get-EventLog
cmdlet.
Get-Help Get-EventLog
L'output seguente illustra la parte pertinente dell'articolo della Guida.
...
SYNTAX
Get-EventLog [-LogName] <System.String> [[-InstanceId]
<System.Int64[]>] [-After <System.DateTime>] [-AsBaseObject] [-Before
<System.DateTime>] [-ComputerName <System.String[]>] [-EntryType {Error
| Information | FailureAudit | SuccessAudit | Warning}] [-Index
<System.Int32[]>] [-Message <System.String>] [-Newest <System.Int32>]
[-Source <System.String[]>] [-UserName <System.String[]>]
[<CommonParameters>]
Get-EventLog [-AsString] [-ComputerName <System.String[]>] [-List]
[<CommonParameters>]
...
Le informazioni sulla sintassi includono coppie di parentesi quadre ([]
). A seconda del loro utilizzo, queste parentesi quadre servono due scopi diversi.
- Gli elementi racchiusi tra parentesi quadre sono facoltativi.
- Un set vuoto di parentesi quadre che seguono un tipo di dati, ad esempio
<string[]>
, indica che il parametro può accettare più valori passati come matrice o oggetto raccolta.
Parametri posizionali
Alcuni cmdlet sono progettati per accettare parametri posizionali. I parametri posizionali consentono di specificare un valore senza specificare il nome del parametro. Quando si usa un parametro in modo posizionale, è necessario specificarne il valore nella posizione corretta nella riga di comando. È possibile trovare le informazioni posizionali per un parametro nella sezione PARAMETERS dell'articolo della Guida di un comando. Quando si specificano in modo esplicito i nomi dei parametri, è possibile usare i parametri in qualsiasi ordine.
Per il Get-EventLog
cmdlet, il primo parametro nel primo set di parametri è LogName.
LogName è racchiuso tra parentesi quadre, a indicare che si tratta di un parametro posizionale.
Get-EventLog [-LogName] <System.String>
Poiché LogName è un parametro posizionale, è possibile specificarlo in base al nome o alla posizione. In base alle parentesi angolari che seguono il nome del parametro, il valore per LogName deve essere una singola stringa. L'assenza di parentesi quadre che racchiudono sia il nome del parametro che il tipo di dati indicano che LogName è un parametro obbligatorio all'interno di questo set di parametri specifico.
Il secondo parametro nel set di parametri è InstanceId. Sia il nome del parametro che il tipo di dati sono interamente racchiusi tra parentesi quadre, che indica che InstanceId è un parametro facoltativo.
[[-InstanceId] <System.Int64[]>]
InstanceId ha inoltre una coppia di parentesi quadre, a indicare che si tratta di un parametro posizionale simile al parametro LogName. Dopo il tipo di dati, un set vuoto di parentesi quadre implica che InstanceId può accettare più valori.
Parametri opzionali
Un parametro che non richiede un valore è detto parametro opzionale. È possibile identificare facilmente i parametri switch perché non è presente alcun tipo di dati dopo il nome del parametro. Quando si specifica un parametro switch, il relativo valore è true
. Quando non si specifica un parametro switch, il relativo valore è false
.
Il secondo set di parametri include un parametro List , ovvero un parametro switch. Quando si specifica il parametro List , viene restituito un elenco di registri eventi nel computer locale.
[-List]
Approccio semplificato alla sintassi
Esiste un metodo più intuitivo per ottenere le stesse informazioni della sintassi dei comandi criptici per alcuni comandi, tranne in inglese normale. PowerShell restituisce l'articolo della Guida completo quando si usa Get-Help
con il parametro Full , semplificando la comprensione dell'utilizzo di un comando.
Get-Help -Name Get-Help -Full
Per eseguire l'esempio nel computer, esaminare l'output e osservare come il sistema della Guida organizza le informazioni.
- NOME
- RIEPILOGO
- SYNTAX
- DESCRIZIONE
- PARAMETERS
- INPUT
- OUTPUT
- NOTE
- ESEMPI
- COLLEGAMENTI CORRELATI
Specificando il parametro Full con il Get-Help
cmdlet , l'output include diverse sezioni aggiuntive. Tra queste sezioni, PARAMETERS spesso fornisce una spiegazione dettagliata per ogni parametro. Tuttavia, l'estensione di queste informazioni varia a seconda del comando specifico che si sta analizzando.
...
-Detailed <System.Management.Automation.SwitchParameter>
Adds parameter descriptions and examples to the basic help display.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Examples <System.Management.Automation.SwitchParameter>
Displays only the name, synopsis, and examples. This parameter is
effective only when the help files are installed on the computer. It
has no effect on displays of conceptual ( About_ ) help.
Required? true
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
-Full <System.Management.Automation.SwitchParameter>
Displays the entire help article for a cmdlet. Full includes
parameter descriptions and attributes, examples, input and output
object types, and additional notes.
This parameter is effective only when the help files are installed
on the computer. It has no effect on displays of conceptual ( About_
) help.
Required? false
Position? named
Default value False
Accept pipeline input? False
Accept wildcard characters? false
...
Quando è stato eseguito il comando precedente per visualizzare la Guida per il Get-Help
comando, probabilmente si è notato che l'output è stato eseguito troppo rapidamente per leggerlo.
Se si usa la console di PowerShell, Terminale Windows o VS Code ed è necessario visualizzare un articolo della Guida, la help
funzione può essere utile. Invia tramite pipe l'output di Get-Help
a more.com
, visualizzando una pagina di contenuto della Guida alla volta. È consigliabile usare la help
funzione anziché il Get-Help
cmdlet perché offre un'esperienza utente migliore ed è meno da digitare.
Nota
L'ISE non supporta l'uso more.com
di , quindi l'esecuzione help
funziona allo stesso modo di Get-Help
.
Eseguire ognuno dei comandi seguenti in PowerShell nel computer.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Sono state osservate variazioni nell'output quando sono stati eseguiti i comandi precedenti?
Nell'esempio precedente la prima riga usa il Get-Help
cmdlet , la seconda usa la help
funzione e la terza riga omette il parametro Name durante l'uso della help
funzione . Poiché Name è un parametro posizionale, il terzo esempio sfrutta la posizione invece di indicare in modo esplicito il nome del parametro.
La differenza è che gli ultimi due comandi visualizzano l'output di una pagina alla volta. Quando si usa la help
funzione, premere la barra spaziatrice per visualizzare la pagina successiva del contenuto o Q per uscire. Se è necessario terminare qualsiasi comando in esecuzione in modo interattivo in PowerShell, premere CTRL+C.
Per trovare rapidamente informazioni su un parametro specifico, usare il parametro Parameter . Questo approccio restituisce contenuto contenente solo le informazioni specifiche dei parametri, anziché l'intero articolo della Guida. Questo è il modo più semplice per trovare informazioni su un parametro specifico.
Nell'esempio seguente viene usata la help
funzione con il parametro Parameter per restituire informazioni dall'articolo della Guida per il parametro Name di Get-Help
.
help Get-Help -Parameter Name
Le informazioni della Guida indicano che il parametro Name è posizionale e deve essere specificato nella prima posizione (posizione zero) quando viene usato in modo posizionale.
-Name <System.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 any text that doesn't match any help article titles,
`Get-Help` displays a list of articles that include that text 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
Il parametro Name prevede un valore stringa identificato dal <String>
tipo di dati accanto al nome del parametro.
Esistono diversi altri parametri che è possibile specificare con Get-Help
per restituire un subset di un articolo della Guida. Per vedere come funzionano, eseguire i comandi seguenti nel computer.
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
In genere uso help <command name>
con il parametro Full o Online. Se si ha interesse solo negli esempi, usare il parametro Examples . Se si ha interesse solo per un parametro specifico, usare il parametro Parameter .
Quando si usa il parametro ShowWindow , viene visualizzato il contenuto della Guida in una finestra ricercabile separata. È possibile spostare tale finestra in un monitor diverso se sono presenti più monitor. Tuttavia, il parametro ShowWindow presenta un bug noto che potrebbe impedire la visualizzazione dell'intero articolo della Guida. Il parametro ShowWindow richiede anche un sistema operativo con interfaccia utente grafica (GUI). Restituisce un errore quando si tenta di usarlo in Windows Server Core.
Se si ha accesso a Internet, è possibile usare invece il parametro Online . Il parametro Online apre l'articolo della Guida nel Web browser predefinito. Il contenuto online è il contenuto più aggiornato. Il browser consente di cercare il contenuto della Guida e visualizzare altri articoli della Guida correlati.
Nota
Il parametro Online non è supportato per gli articoli About .
help Get-Command -Online
Ricerca di comandi con Get-Help
Per trovare i comandi con Get-Help
, specificare un termine di ricerca racchiuso tra caratteri jolly asterisco (*
) per il valore del parametro Name . Nell'esempio seguente viene utilizzato il parametro Name in modo posizionale.
help *process*
Name Category Module Synops
---- -------- ------ ------
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
Exit-PSHostProcess Cmdlet Microsoft.PowerShell.Core Clo...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Invoke-LapsPolicyProcessing Cmdlet LAPS Inv...
ConvertTo-ProcessMitigationPolicy Cmdlet ProcessMitigations Con...
Get-ProcessMitigation Cmdlet ProcessMitigations Get...
Set-ProcessMitigation Cmdlet ProcessMitigations Set...
In questo scenario non è necessario aggiungere i *
caratteri jolly. Se Get-Help
non riesce a trovare un comando corrispondente al valore specificato, esegue una ricerca full-text per tale valore. Nell'esempio seguente vengono generati gli stessi risultati della specifica del *
carattere jolly in ogni estremità di process
.
help process
Quando si specifica un carattere jolly all'interno del valore, Get-Help
cerca solo i comandi che corrispondono al modello specificato. Non esegue una ricerca full-text. Il comando seguente non restituisce alcun risultato.
help pr*cess
PowerShell genera un errore se si specifica un valore che inizia con un trattino senza racchiuderlo tra virgolette perché lo interpreta come nome di parametro. Per il cmdlet non esiste alcun nome di Get-Help
parametro di questo tipo.
help -process
Se si tenta di cercare i comandi che terminano con -process
, è necessario aggiungere un *
oggetto all'inizio del valore.
help *-process
Quando si cercano i comandi di PowerShell con Get-Help
, è preferibile essere vaghi anziché troppo specifici.
Quando è stata eseguita la ricerca in process
precedenza, i risultati hanno restituito solo i comandi inclusi process
nel nome. Tuttavia, se si cerca processes
, non trova corrispondenze per i nomi dei comandi. Come indicato in precedenza, quando la Guida non trova corrispondenze, esegue una ricerca full-text completa di ogni articolo della Guida nel sistema e restituisce tali risultati. Questo tipo di ricerca produce spesso più risultati del previsto, incluse le informazioni non rilevanti per l'utente.
help processes
Name Category Module Synops
---- -------- ------ ------
Disconnect-PSSession Cmdlet Microsoft.PowerShell.Core Dis...
Enter-PSHostProcess Cmdlet Microsoft.PowerShell.Core Con...
ForEach-Object Cmdlet Microsoft.PowerShell.Core Per...
Get-PSHostProcessInfo Cmdlet Microsoft.PowerShell.Core Get...
Get-PSSessionConfiguration Cmdlet Microsoft.PowerShell.Core Get...
New-PSSessionOption Cmdlet Microsoft.PowerShell.Core Cre...
New-PSTransportOption Cmdlet Microsoft.PowerShell.Core Cre...
Out-Host Cmdlet Microsoft.PowerShell.Core Sen...
Start-Job Cmdlet Microsoft.PowerShell.Core Sta...
Where-Object Cmdlet Microsoft.PowerShell.Core Sel...
Debug-Process Cmdlet Microsoft.PowerShell.M... Deb...
Get-Process Cmdlet Microsoft.PowerShell.M... Get...
Get-WmiObject Cmdlet Microsoft.PowerShell.M... Get...
Start-Process Cmdlet Microsoft.PowerShell.M... Sta...
Stop-Process Cmdlet Microsoft.PowerShell.M... Sto...
Wait-Process Cmdlet Microsoft.PowerShell.M... Wai...
Clear-Variable Cmdlet Microsoft.PowerShell.U... Del...
Convert-String Cmdlet Microsoft.PowerShell.U... For...
ConvertFrom-Csv Cmdlet Microsoft.PowerShell.U... Con...
ConvertFrom-Json Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Html Cmdlet Microsoft.PowerShell.U... Con...
ConvertTo-Xml Cmdlet Microsoft.PowerShell.U... Cre...
Debug-Runspace Cmdlet Microsoft.PowerShell.U... Sta...
Export-Csv Cmdlet Microsoft.PowerShell.U... Con...
Export-FormatData Cmdlet Microsoft.PowerShell.U... Sav...
Format-List Cmdlet Microsoft.PowerShell.U... For...
Format-Table Cmdlet Microsoft.PowerShell.U... For...
Get-Unique Cmdlet Microsoft.PowerShell.U... Ret...
Group-Object Cmdlet Microsoft.PowerShell.U... Gro...
Import-Clixml Cmdlet Microsoft.PowerShell.U... Imp...
Import-Csv Cmdlet Microsoft.PowerShell.U... Cre...
Measure-Object Cmdlet Microsoft.PowerShell.U... Cal...
Out-File Cmdlet Microsoft.PowerShell.U... Sen...
Out-GridView Cmdlet Microsoft.PowerShell.U... Sen...
Select-Object Cmdlet Microsoft.PowerShell.U... Sel...
Set-Variable Cmdlet Microsoft.PowerShell.U... Set...
Sort-Object Cmdlet Microsoft.PowerShell.U... Sor...
Tee-Object Cmdlet Microsoft.PowerShell.U... Sav...
Trace-Command Cmdlet Microsoft.PowerShell.U... Con...
Write-Information Cmdlet Microsoft.PowerShell.U... Spe...
Export-BinaryMiLog Cmdlet CimCmdlets Cre...
Get-CimAssociatedInstance Cmdlet CimCmdlets Ret...
Get-CimInstance Cmdlet CimCmdlets Get...
Import-BinaryMiLog Cmdlet CimCmdlets Use...
Invoke-CimMethod Cmdlet CimCmdlets Inv...
New-CimInstance Cmdlet CimCmdlets Cre...
Remove-CimInstance Cmdlet CimCmdlets Rem...
Set-CimInstance Cmdlet CimCmdlets Mod...
Compress-Archive Function Microsoft.PowerShell.A... Cre...
Get-Counter Cmdlet Microsoft.PowerShell.D... Get...
Invoke-WSManAction Cmdlet Microsoft.WSMan.Manage... Inv...
Remove-WSManInstance Cmdlet Microsoft.WSMan.Manage... Del...
Get-WSManInstance Cmdlet Microsoft.WSMan.Manage... Dis...
New-WSManInstance Cmdlet Microsoft.WSMan.Manage... Cre...
Set-WSManInstance Cmdlet Microsoft.WSMan.Manage... Mod...
about_Arithmetic_Operators HelpFile
about_Arrays HelpFile
about_Environment_Variables HelpFile
about_Execution_Policies HelpFile
about_Functions HelpFile
about_Jobs HelpFile
about_Logging HelpFile
about_Methods HelpFile
about_Objects HelpFile
about_Pipelines HelpFile
about_Preference_Variables HelpFile
about_Remote HelpFile
about_Remote_Jobs HelpFile
about_Session_Configuration_Files HelpFile
about_Simplified_Syntax HelpFile
about_Switch HelpFile
about_Variables HelpFile
about_Variable_Provider HelpFile
about_Windows_Powershell_5.1 HelpFile
about_WQL HelpFile
about_WS-Management_Cmdlets HelpFile
about_Foreach-Parallel HelpFile
about_Parallel HelpFile
about_Sequence HelpFile
Quando è stata eseguita la ricerca di process
, sono stati restituiti 12 risultati. Tuttavia, durante la ricerca processes
di , ha prodotto 78 risultati. Se la ricerca trova una sola corrispondenza, Get-Help
visualizza il contenuto della Guida anziché elencare i risultati della ricerca.
help *hotfix*
NAME
Get-HotFix
SYNOPSIS
Gets the hotfixes that are installed on local or remote computers.
SYNTAX
Get-HotFix [-ComputerName <System.String[]>] [-Credential
<System.Management.Automation.PSCredential>] [-Description
<System.String[]>] [<CommonParameters>]
Get-HotFix [[-Id] <System.String[]>] [-ComputerName <System.String[]>]
[-Credential <System.Management.Automation.PSCredential>]
[<CommonParameters>]
DESCRIPTION
> This cmdlet is only available on the Windows platform. The
`Get-Hotfix` cmdlet uses the Win32_QuickFixEngineering WMI class to
list hotfixes that are installed on the local computer or specified
remote computers.
RELATED LINKS
Online Version: https://learn.microsoft.com/powershell/module/microsoft.
powershell.management/get-hotfix?view=powershell-5.1&WT.mc_id=ps-gethelp
about_Arrays
Add-Content
Get-ComputerRestorePoint
Get-Credential
Win32_QuickFixEngineering class
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"
È anche possibile trovare comandi che non contengono articoli della Guida con Get-Help
, anche se questa funzionalità non è comunemente nota. La more
funzione è uno dei comandi che non ha un articolo della Guida. Per confermare che è possibile trovare i comandi con Get-Help
che non includono articoli della Guida, usare la help
funzione per trovare more
.
help *more*
La ricerca ha trovato una sola corrispondenza, quindi ha restituito le informazioni di base sulla sintassi visualizzate quando un comando non ha un articolo della Guida.
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
Il sistema della Guida di PowerShell contiene anche articoli della Guida relativi alle informazioni concettuali. È necessario aggiornare il contenuto della Guida nel sistema per ottenere gli articoli Informazioni. Per altre informazioni, vedere la sezione Aggiornamento della Guida di questo capitolo.
Usare il comando seguente per restituire un elenco di tutti gli articoli della Guida Informazioni sul sistema.
help About_*
Quando si limitano i risultati a un articolo informazioni sulla Guida, Get-Help
visualizza il contenuto di tale articolo.
help about_Updatable_Help
Aggiornamento della Guida
In precedenza in questo capitolo sono stati aggiornati gli articoli della Guida di PowerShell nel computer la prima volta che è stato eseguito il Get-Help
cmdlet. È consigliabile eseguire periodicamente il Update-Help
cmdlet nel computer per ottenere eventuali aggiornamenti al contenuto della Guida.
Importante
In Windows PowerShell 5.1 è necessario eseguire Update-Help
come amministratore in una sessione di PowerShell con privilegi elevati.
Nell'esempio seguente scarica Update-Help
il contenuto della Guida di PowerShell per tutti i moduli installati nel computer. È consigliabile usare il parametro Force per assicurarsi di scaricare la versione più recente del contenuto della Guida.
Update-Help -Force
Come illustrato nei risultati seguenti, un modulo ha restituito un errore. Gli errori non sono insoliti e in genere si verificano quando l'autore del modulo non configura correttamente la Guida aggiornabile.
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 : ResourceUnavailable: (:) [Update-Help], Except
ion
+ FullyQualifiedErrorId : UnableToRetrieveHelpInfoXml,Microsoft.PowerShe
ll.Commands.UpdateHelpCommand
Update-Help
richiede l'accesso a Internet per scaricare il contenuto della Guida. Se il computer non ha accesso a Internet, usare il Save-Help
cmdlet in un computer con accesso a Internet per scaricare e salvare il contenuto della Guida aggiornato. Usare quindi il parametro SourcePath di Update-Help
per specificare il percorso del contenuto della Guida aggiornato salvato.
Get-Command
Get-Command
è un altro comando multiuso che consente di trovare i comandi. Quando si esegue Get-Command
senza parametri, viene restituito un elenco di tutti i comandi di PowerShell nel sistema.
È anche possibile usare Get-Command
per ottenere la sintassi dei comandi simile a Get-Help
.
Come si determina la sintassi per Get-Command
? È possibile usare Get-Help
per visualizzare l'articolo della Guida per Get-Command
, come illustrato nella sezione Get-Help di questo capitolo. È anche possibile usare Get-Command
con il parametro Syntax per visualizzare la sintassi per qualsiasi comando. Questo collegamento consente di determinare rapidamente come usare un comando senza spostarsi nel contenuto della Guida.
Get-Command -Name Get-Command -Syntax
L'uso Get-Command
con il parametro Syntax offre una visualizzazione più concisa della sintassi che mostra i parametri e i relativi tipi di valore, senza elencare i valori consentiti specifici, ad Get-Help
esempio show.
Get-Command [[-ArgumentList] <Object[]>] [-Verb <string[]>]
[-Noun <string[]>] [-Module <string[]>]
[-FullyQualifiedModule <ModuleSpecification[]>] [-TotalCount <int>]
[-Syntax] [-ShowCommandInfo] [-All] [-ListImported]
[-ParameterName <string[]>] [-ParameterType <PSTypeName[]>]
[<CommonParameters>]
Get-Command [[-Name] <string[]>] [[-ArgumentList] <Object[]>]
[-Module <string[]>] [-FullyQualifiedModule <ModuleSpecification[]>]
[-CommandType <CommandTypes>] [-TotalCount <int>] [-Syntax]
[-ShowCommandInfo] [-All] [-ListImported] [-ParameterName <string[]>]
[-ParameterType <PSTypeName[]>] [<CommonParameters>]
Se sono necessarie informazioni più dettagliate su come usare un comando, usare Get-Help
.
help Get-Command -Full
La sezione SYNTAX di Get-Help
fornisce una visualizzazione più intuitiva espandendo i valori enumerati per i parametri. Mostra i valori effettivi che è possibile usare, semplificando la comprensione delle opzioni disponibili.
...
Get-Command [[-Name] <System.String[]>] [[-ArgumentList]
<System.Object[]>] [-All] [-CommandType {Alias | Function | Filter |
Cmdlet | ExternalScript | Application | Script | Workflow |
Configuration | All}] [-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-ParameterName <System.String[]>]
[-ParameterType <System.Management.Automation.PSTypeName[]>]
[-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>]
[<CommonParameters>]
Get-Command [[-ArgumentList] <System.Object[]>] [-All]
[-FullyQualifiedModule
<Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported]
[-Module <System.String[]>] [-Noun <System.String[]>] [-ParameterName
<System.String[]>] [-ParameterType
<System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo]
[-Syntax] [-TotalCount <System.Int32>] [-Verb <System.String[]>]
[<CommonParameters>]
...
La sezione PARAMETERS della Guida per Get-Command
indica che i parametri Name, Noun e Verb accettano caratteri jolly.
...
-Name <System.String[]>
Specifies an array of names. This cmdlet gets only commands that
have the specified name. Enter a name or name pattern. Wildcard
characters are permitted.
To get commands that have the same name, use the All parameter. When
two commands have the same name, by default, `Get-Command` gets the
command that runs when you type the command name.
Required? false
Position? 0
Default value None
Accept pipeline input? True (ByPropertyName, ByValue)
Accept wildcard characters? true
-Noun <System.String[]>
Specifies an array of command nouns. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified noun. Enter one or more nouns or noun
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
-Verb <System.String[]>
Specifies an array of command verbs. This cmdlet gets commands,
which include cmdlets, functions, and aliases, that have names that
include the specified verb. Enter one or more verbs or verb
patterns. Wildcard characters are permitted.
Required? false
Position? named
Default value None
Accept pipeline input? True (ByPropertyName)
Accept wildcard characters? true
...
Nell'esempio seguente viene utilizzato il *
carattere jolly con il valore per il parametro Name di Get-Command
.
Get-Command -Name *service*
Quando si usano caratteri jolly con il parametro Name di Get-Command
, restituisce i comandi di PowerShell e i comandi nativi, come illustrato nei risultati seguenti.
CommandType Name Version
----------- ---- -------
Function Get-NetFirewallServiceFilter 2.0.0.0
Function Set-NetFirewallServiceFilter 2.0.0.0
Cmdlet Get-Service 3.1.0.0
Cmdlet New-Service 3.1.0.0
Cmdlet New-WebServiceProxy 3.1.0.0
Cmdlet Restart-Service 3.1.0.0
Cmdlet Resume-Service 3.1.0.0
Cmdlet Set-Service 3.1.0.0
Cmdlet Start-Service 3.1.0.0
Cmdlet Stop-Service 3.1.0.0
Cmdlet Suspend-Service 3.1.0.0
Application SecurityHealthService.exe 10.0.2...
Application SensorDataService.exe 10.0.2...
Application services.exe 10.0.2...
Application services.msc 0.0.0.0
Application TieringEngineService.exe 10.0.2...
Application Windows.WARP.JITService.exe 10.0.2...
È possibile limitare i risultati di ai comandi di Get-Command
PowerShell usando il parametro CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script
Un'altra opzione può essere quella di usare il parametro Verb o Noun oppure entrambi poiché solo i comandi di PowerShell hanno verbi e sostantivi.
Nell'esempio seguente viene Get-Command
usato per trovare i comandi nel computer che funzionano con i processi.
Usare il parametro Noun e specificare Process
come valore.
Get-Command -Noun Process
CommandType Name Version
----------- ---- -------
Cmdlet Debug-Process 3.1.0.0
Cmdlet Get-Process 3.1.0.0
Cmdlet Start-Process 3.1.0.0
Cmdlet Stop-Process 3.1.0.0
Cmdlet Wait-Process 3.1.0.0
Riepilogo
In questo capitolo si è appreso come trovare i comandi con Get-Help
e Get-Command
. Si è anche appreso come usare il sistema della Guida per comprendere come usare i comandi dopo averli trovate. Inoltre, si è appreso come aggiornare il sistema della Guida nel computer quando è disponibile un nuovo contenuto della Guida.
Revisione
- Il parametro DisplayName di
Get-Service
è posizionale? - Quanti set di parametri ha il cmdlet
Get-Process
? - Quali comandi di PowerShell sono disponibili per gestire i log eventi?
- Qual è il comando di PowerShell per restituire un elenco di processi di PowerShell in esecuzione nel computer?
- Come si aggiorna il contenuto della Guida di PowerShell archiviato nel computer?
Riferimenti
Per altre informazioni sui concetti trattati in questo capitolo, vedere gli articoli della Guida di PowerShell seguenti.
Passaggi successivi
Nel capitolo successivo verranno fornite informazioni su oggetti, proprietà, metodi e cmdlet Get-Member
.