Capitolo 2 - Sistema della Guida
A due gruppi di professionisti IT è stato assegnato un test scritto senza avere accesso a un computer, per determinare il loro livello di competenza in PowerShell. I principianti di PowerShell sono stati inseriti in un gruppo e gli esperti in un altro. In base ai risultati del test, il livello di competenza tra i due gruppi non è sembrato molto diverso. A entrambi i gruppi è stato assegnato un secondo test simile al primo, per il quale avevano a disposizione un computer con PowerShell, ma senza accesso a Internet. I risultati del secondo test hanno mostrato una grande differenza nel livello di competenza tra i due gruppi. Gli esperti non sempre conoscono le risposte, ma sanno come trovarle.
Qual è la differenza nei risultati del primo e del secondo test tra questi due gruppi?
Le differenze osservate in questi due test sono dovute al fatto che gli esperti non memorizzano come usare migliaia di comandi in PowerShell, ma imparano a usare benissimo il sistema della Guida in PowerShell. In questo modo riescono a trovare i comandi necessari quando servono e a usarli una volta trovati.
Ho sentito Jeffrey Snover, l'inventore di PowerShell, raccontare più volte una storia simile.
Padroneggiare il sistema della Guida è fondamentale per riuscire a usare PowerShell in modo efficiente.
Individuabilità
I comandi compilati di PowerShell sono detti cmdlet. Cmdlet si pronuncia "command-let" (non CMD-let). I nomi dei cmdlet hanno il formato di singoli comandi "Verbo-Sostantivo" per renderli facilmente individuabili. Ad esempio, il cmdlet per determinare quali processi sono in esecuzione è Get-Process
e il cmdlet per recuperare un elenco di servizi e dei relativi stati è Get-Service
. In PowerShell sono disponibili altri tipi di comandi, ad esempio alias e funzioni, che verranno illustrati più avanti in questo libro. Il termine comando di PowerShell è un termine generico usato spesso per indicare qualsiasi tipo di comando in PowerShell, indipendentemente dal fatto che si tratti o meno di un cmdlet, di una funzione o di un alias.
I tre cmdlet principali di PowerShell
Get-Command
Get-Help
Get-Member
(illustrato nel capitolo 3)
Spesso mi viene chiesto come è possibile scoprire quali sono i comandi in PowerShell. Per determinare i comandi, è possibile usare sia Get-Command
che Get-Help
.
Get-Help
Get-Help
è un comando che serve a più scopi. Get-Help
consente di imparare a usare i comandi dopo averli trovati. Get-Help
può essere usato anche per individuare i comandi, ma in modo diverso e meno diretto rispetto a Get-Command
.
Quando Get-Help
viene usato per individuare i comandi, cerca prima di tutto le corrispondenze con caratteri jolly dei nomi dei comandi in base all'input fornito. Se non trova una corrispondenza, cerca negli argomenti della guida e, se non vengono trovate corrispondenze, viene restituito un errore. Contrariamente a quanto si pensa, Get-Help
può essere usato per trovare i comandi per cui non sono disponibili argomenti nella Guida.
La prima cosa da sapere sul sistema della Guida in PowerShell è come usare il cmdlet Get-Help
. Il comando seguente viene usato per visualizzare l'argomento della Guida per Get-Help
.
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"):
A partire da PowerShell versione 3, la Guida di PowerShell non è disponibile con il sistema operativo. La prima volta che si esegue Get-Help
per un comando, viene visualizzato il messaggio precedente. Se viene usata la funzione help
o l'alias man
invece del cmdlet Get-Help
, questo prompt non viene visualizzato.
Se si preme Y per rispondere affermativamente, viene eseguito il cmdlet Update-Help
, che richiede l'accesso a Internet per impostazione predefinita. Y
può essere digitato in maiuscolo o in minuscolo.
Una volta scaricata la Guida e completato l'aggiornamento, viene restituito l'argomento della Guida per il comando specificato:
Get-Help -Name Get-Help
Eseguire questo esempio nel computer, esaminare l'output e prendere nota di come vengono raggruppate le informazioni:
- NOME
- RIEPILOGO
- SYNTAX
- DESCRIZIONE
- COLLEGAMENTI CORRELATI
- REMARKS
Come si può vedere, gli argomenti della Guida possono contenere una grande quantità di informazioni e questo non è nemmeno l'intero argomento della Guida.
Sebbene non sia una modalità specifica di PowerShell, un parametro consente di fornire l'input a un comando. Get-Help
presenta molti parametri che possono essere specificati per restituire l'intero argomento della Guida o un subset.
La sezione relativa alla sintassi dell'argomento della Guida illustrato nel set di risultati precedente elenca tutti i parametri per Get-Help
. A prima vista, sembra che gli stessi parametri siano elencati per sei volte. Ognuno di questi diversi blocchi nella sezione della sintassi è un set di parametri. Ciò significa che il cmdlet Get-Help
ha sei diversi set di parametri. Se si osserva meglio, si noterà che almeno un parametro in ogni set di parametri è diverso.
I set di parametri si escludono a vicenda. Quando viene usato un parametro univoco che esiste solo in uno dei set di parametri, è possibile usare solo i parametri contenuti all'interno di tale set di parametri. Ad esempio, non è stato possibile specificare contemporaneamente i parametri Full e Detailed perché si trovano in set di parametri diversi.
Ognuno dei parametri seguenti si trova in set di parametri diversi:
- Completa
- Dettagliate
- Esempi
- Online
- Parametro
- ShowWindow
Il significato della sintassi criptica, ad esempio le parentesi quadre e angolari nella sezione della sintassi, verrà illustrato nell'appendice A di questo libro. Anche se è importante, spesso chi non ha familiarità con PowerShell e non lo usa quotidianamente trova difficile ricordare il significato di questo tipo di sintassi.
Per altre informazioni sulla sintassi criptica, vedere Appendice A.
I principianti possono ottenere le stesse informazioni in un modo più semplice e in termini più comprensibili.
Quando viene specificato il parametro Full di Get-Help
, viene restituito l'intero argomento della guida.
Get-Help -Name Get-Help -Full
Eseguire questo esempio nel computer, esaminare l'output e prendere nota di come vengono raggruppate le informazioni:
- NOME
- RIEPILOGO
- SYNTAX
- DESCRIZIONE
- PARAMETERS
- INPUT
- OUTPUT
- NOTE
- ESEMPI
- COLLEGAMENTI CORRELATI
Si noti che l'uso del parametro Full ha restituito diverse sezioni aggiuntive, una delle quali è la sezione PARAMETERS che offre più informazioni della sezione criptica SYNTAX.
Full è un parametro opzionale. Un parametro che non richiede un valore è detto parametro opzionale. Quando viene specificato un parametro opzionale, il valore è true e, in caso contrario, il valore è false.
Se si è seguito questo capitolo usando la console di PowerShell, si sarà notato che il comando precedente per visualizzare l'argomento della Guida completo per Get-Help
è stato visualizzato tanto velocemente da non riuscire a leggerlo. Esiste un modo migliore.
Help
è una funzione che invia tramite pipe Get-Help
a una funzione denominata more
, che è un wrapper per il file eseguibile more.com
in Windows. Nella console di PowerShell help
restituisce una pagina della Guida alla volta. In ISE funziona esattamente come Get-Help
. Il mio consigliò è di usare la funzione help
invece del cmdlet Get-Help
perché offre un'esperienza migliore e richiede di digitare meno codice.
Digitare meno codice, tuttavia, non è sempre la cosa migliore. Per salvare i comandi come script o condividerli con altri utenti, assicurarsi di usare nomi di cmdlet e parametri completi. I nomi completi sono più facili da comprendere perché sono autodocumentati. Si pensi alla prossima persona che dovrà leggere e comprendere i comandi. Potrebbe essere chiunque. I colleghi e il futuro stesso ne saranno grati.
Provare a eseguire i comandi seguenti nella console di PowerShell sul computer dell'ambiente lab Windows 10.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
Si notano differenze nell'output dei comandi elencati in precedenza quando sono stati eseguiti nel computer dell'ambiente lab Windows 10?
Non esistono differenze se non che le ultime due opzioni restituiscono i risultati una pagina alla volta.
La BARRA SPAZIATRICE viene usata per visualizzare la pagina successiva del contenuto quando si usa la funzione Help
e CTRL+C annulla i comandi in esecuzione nella console di PowerShell.
Il primo esempio usa il cmdlet Get-Help
, il secondo usa la funzione Help
e il terzo omette il parametro Name quando si usa la funzione Help
. Name è un parametro posizionale e in questo esempio viene usato in base alla posizione. Ciò significa che il valore può essere specificato senza specificare il nome del parametro, purché il valore stesso sia specificato nella posizione corretta. Per sapere in quale posizione specificare il valore, ho letto la Guida, come illustrato nell'esempio seguente.
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
Si noti che nell'esempio precedente il parametro Parameter è stato usato con la funzione Help per restituire solo le informazioni dell'argomento della Guida relativo al parametro Name. È molto più veloce che provare a esaminare manualmente un argomento della Guida che a volte può essere di centinaia di pagine.
In base a tali risultati, si può vedere che il parametro Name è posizionale e deve essere specificato nella posizione zero (la prima posizione) se usato in base alla posizione. L'ordine in cui sono specificati i parametri non è rilevante se è specificato il parametro name.
Un'altra importante informazione è che il tipo di dati previsto per il valore del parametro Name è una singola stringa, come indicato da <String>
. Se venissero accettate più stringhe, il tipo di dati sarebbe elencato come <String[]>
.
In alcuni casi semplicemente non si vuole visualizzare l'intero argomento della Guida per un comando. Oltre a Full, esistono altri parametri che possono essere specificati con Get-Help
o Help
. Provare a eseguire i comandi seguenti sul computer dell'ambiente lab Windows 10:
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 mi interessano solo gli esempi, userò il parametro Examples e se mi interessa solo un parametro specifico, userò il parametro Parameter. Il parametro ShowWindow apre l'argomento della Guida in una finestra di ricerca separata che può essere visualizzata su un altro monitor, se disponibile. Ho evitato il parametro ShowWindow perché a causa di un bug noto non viene visualizzato l'intero argomento della Guida.
Per visualizzare la Guida in una finestra separata, il mio consiglio è di usare il parametro Online o di usare il parametro Full e di inviare tramite pipe i risultati a Out-GridView
, come illustrato nell'esempio seguente.
help Get-Command -Full | Out-GridView
Sia il cmdlet Out-GridView
che il parametro ShowWindow del cmdlet Get-Help
richiedono un sistema operativo con una GUI (interfaccia utente grafica). Verrà generato un messaggio di errore se si prova a usarne uno in Windows Server installato con l'opzione di installazione Server Core (senza GUI).
Per usare Get-Help
per trovare i comandi, usare il carattere jolly asterisco (*
) con il parametro Name. Specificare un termine in cui cercare i comandi come valore per il parametro Name, come illustrato nell'esempio seguente.
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 ...
Nell'esempio precedente i caratteri jolly *
non sono obbligatori e, anche omettendoli, si ottiene lo stesso risultato. Get-Help
aggiunge automaticamente i caratteri jolly in background.
help process
Il comando precedente produce gli stessi risultati ottenuti specificando il carattere jolly *
a ogni fine del processo.
Preferisco aggiungerli perché questa opzione funziona sempre nello stesso modo. In caso contrario, sono necessari in determinati scenari e non in altri. Non appena si aggiunge un carattere jolly all'interno del valore, non viene più aggiunto automaticamente in background al valore specificato.
help pr*cess
Tale comando non restituisce alcun risultato, a meno che il carattere jolly *
non venga aggiunto all'inizio, alla fine o sia all'inizio che alla fine di pr*cess
.
Se il valore specificato inizia con un trattino, viene generato un errore perché PowerShell lo interpreta come nome di parametro, ma non esiste un nome di parametro come questo per il cmdlet Get-Help
.
help -process
Se si sta provando a cercare i comandi che terminano con -process
, è sufficiente aggiungere il carattere jolly *
all'inizio del valore.
help *-process
Quando si cercano i comandi di PowerShell con Get-Help
, è meglio essere un po' più generici invece che troppo specifici riguardo ciò che si sta cercando.
La ricerca di process
in precedenza ha trovato solo i comandi che contenevano process
nel nome del comando e ha restituito solo tali risultati. Quando Get-Help
viene usato per cercare processes
, non trova corrispondenze per i nomi dei comandi, quindi esegue una ricerca in ogni argomento della Guida di PowerShell nel sistema e restituisce tutte le corrispondenze trovate. In questo modo viene restituito un numero elevato di risultati.
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...
Dopo aver Help
per cercare process
, sono stati restituiti 10 risultati e, dopo averlo usato per cercare processes
, sono stati restituiti 68 risultati. Se viene trovato un solo risultato, verrà visualizzato l'argomento stesso della Guida invece che un elenco di comandi.
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"
A questo punto, si sfaterà il mito che Help
in PowerShell possa trovare solo comandi che hanno argomenti della Guida.
help *more*
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
Si noti che nell'esempio precedente more
non ha un argomento della Guida, ma il sistema Help
in PowerShell è riuscito a trovarlo. Ha trovato solo una corrispondenza e ha restituito le informazioni sulla sintassi di base che verranno visualizzate quando un comando non ha un argomento della Guida.
PowerShell contiene numerosi argomenti della Guida concettuali (About). Il comando seguente può essere usato per restituire un elenco di tutti gli argomenti della Guida About nel sistema.
help About_*
Se si limitano i risultati a un singolo argomento About della Guida, viene visualizzato l'argomento della Guida effettivo invece di restituire un elenco.
help about_Updatable_Help
Il sistema della Guida in PowerShell deve essere aggiornato perché siano presenti gli argomenti della Guida About. Se per qualche motivo l'aggiornamento iniziale del sistema della Guida non è riuscito nel computer, i file non saranno disponibili fino a quando il cmdlet Update-Help
non sarà stato eseguito correttamente.
Get-Command
Get-Command
è pensato per facilitare l'individuazione di comandi. L'esecuzione di Get-Command
senza parametri restituisce un elenco di tutti i comandi nel sistema. L'esempio seguente illustra l'uso del cmdlet Get-Command
per determinare i comandi esistenti per la gestione dei processi:
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...
Nell'esempio precedente, in cui è stato eseguito Get-Command
, si noti che è stato usato il parametro Noun e che è stato specificato Process
come valore del parametro Noun. E se non si sapesse come usare il cmdlet Get-Command
? Si potrebbe usare Get-Help
per visualizzare l'argomento della Guida relativo a Get-Command
.
I parametri Name, Noun e Verb accettano i caratteri jolly. L'esempio seguente illustra l'uso dei caratteri jolly con il parametro 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...
Non amo particolarmente usare i caratteri jolly con il parametro Name di Get-Command
perché restituisce anche file eseguibili che non sono comandi nativi di PowerShell.
Se si vogliono usare i caratteri jolly con il parametro Name, consiglio di limitare i risultati con il parametro CommandType.
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias
Un'opzione migliore consiste nell'usare il parametro Verb o Noun oppure entrambi perché solo i comandi di PowerShell hanno sia verbi che sostantivi.
Se si è riscontrato un errore in un argomento della Guida, ora gli argomenti della Guida per PowerShell sono open source e disponibili nel repository PowerShell-Docs su GitHub. È possibile dare il proprio contributo correggendo le informazioni non corrette. È sufficiente creare una copia tramite fork del repository della documentazione di PowerShell su GitHub, aggiornare l'argomento della Guida e inviare una richiesta pull. Una volta accettata la richiesta pull, la documentazione corretta è disponibile per tutti.
Aggiornamento della Guida
La copia locale degli argomenti della Guida di PowerShell è stata aggiornata in precedenza, la prima volta che è stata richiesta la Guida per un comando. È consigliabile aggiornare periodicamente il sistema della Guida perché è possibile che siano disponibili nuovi aggiornamenti al contenuto della Guida. Il cmdlet Update-Help
viene usato per aggiornare gli argomenti della Guida.
Richiede l'accesso a Internet per impostazione predefinita e per consentire l'esecuzione di PowerShell con privilegi elevati come amministratore.
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
Alcuni moduli hanno restituito errori, il che non è insolito. Se il computer non ha accesso a Internet, è possibile usare il cmdlet Save-Help
in un altro computer con accesso a Internet per salvare prima le informazioni aggiornate della Guida in una condivisione file in rete e quindi usare il parametro SourcePath di Update-Help
per specificare questo percorso di rete per gli argomenti della Guida.
Valutare l'opportunità di configurare un'attività pianificata o di aggiungere una logica allo script del profilo in PowerShell per aggiornare periodicamente il contenuto della Guida nel computer. Gli script del profilo verranno illustrati in uno dei prossimi capitoli.
Riepilogo
In questo capitolo si è appreso come trovare i comandi sia con Get-Help
che con Get-Command
. Si è appreso come usare il sistema della Guida per capire come usare i comandi una volta trovati. Si è anche appreso come aggiornare il contenuto degli argomenti della Guida quando sono disponibili aggiornamenti.
La sfida che propongo consiste nell'imparare un comando di PowerShell al giorno.
Get-Command | Get-Random | Get-Help -Full
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 dei processi di PowerShell in esecuzione nel computer?
- Come si aggiorna il contenuto della Guida di PowerShell archiviato nel computer?
Argomenti consigliati
Per altre informazioni sugli argomenti trattati in questo capitolo, consiglio di leggere gli argomenti seguenti della Guida di PowerShell.
Nel capitolo successivo verrà illustrato il cmdlet Get-Member
, oltre a oggetti, proprietà e metodi.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per