Capítulo 2: El sistema de ayuda
En un experimento diseñado para evaluar la competencia en PowerShell, dos grupos distintos de profesionales de TI (principiantes y expertos) se dieron por primera vez un examen escrito sin acceso a un equipo. Sorprendentemente, las puntuaciones de prueba indicaron aptitudes comparables en ambos grupos. A continuación, se administraba una prueba posterior, que reflejaba la primera, pero con una diferencia clave: los participantes tenían acceso a un equipo sin conexión equipado con PowerShell. Los resultados mostraron una brecha significativa de aptitudes entre los dos grupos esta vez.
¿Qué factores han contribuido a los resultados observados entre las dos evaluaciones?
Los expertos no siempre conocen las respuestas, pero saben cómo averiguarlas.
Los resultados observados en los resultados de las dos pruebas fueron porque los expertos no memorizan miles de comandos de PowerShell. En su lugar, se destacan en el uso del sistema de Ayuda en PowerShell, lo que les permite detectar y aprender a usar comandos cuando sea necesario.
Convertirse en experto con el sistema de ayuda es la clave para el éxito con PowerShell.
Escuché a Jeffrey Snover, el creador de PowerShell, compartir una historia similar en varias ocasiones.
Detectabilidad
Los comandos compilados en PowerShell se conocen como cmdlets, que se pronuncian como "command-let", no "CMD-let". La convención de nomenclatura de los cmdlets sigue un singular formato Verb-Noun para que se puedan detectar fácilmente. Por ejemplo, Get-Process
es el cmdlet para determinar qué procesos se ejecutan y Get-Service
es el cmdlet para recuperar una lista de servicios. Las funciones, también conocidas como cmdlets de script y alias, son otros tipos de comandos de PowerShell que se describen más adelante en este libro. El término "Comando de PowerShell" describe cualquier comando de PowerShell, independientemente de si es un cmdlet, una función o un alias.
También puede ejecutar comandos nativos del sistema operativo desde PowerShell, como programas tradicionales de línea de comandos como ping.exe
y ipconfig.exe
.
Los tres cmdlets principales de PowerShell
Get-Help
Get-Command
Get-Member
(se aborda en el capítulo 3)
A menudo se me pregunta: "¿Cómo puede averiguar cuáles son los comandos en PowerShell?". Tanto como Get-Help
Get-Command
son recursos valiosos para detectar y comprender comandos en PowerShell.
Get-Help
Lo primero que debe saber sobre el sistema de ayuda en PowerShell es cómo usar el Get-Help
cmdlet .
Get-Help
es un comando multipropósito que le ayuda a aprender a usar comandos una vez que los encuentre.
También puede usar Get-Help
para buscar comandos, pero de una manera diferente y más indirecta cuando se compara con Get-Command
.
Al usar Get-Help
para buscar comandos, inicialmente realiza una búsqueda de caracteres comodín para los nombres de comandos en función de la entrada. Si eso no encuentra ninguna coincidencia, realiza una búsqueda completa de texto completo en todos los artículos de ayuda de PowerShell en el sistema. Si esto también no encuentra ningún resultado, devuelve un error.
Aquí se muestra cómo usar Get-Help
para ver el contenido de ayuda del Get-Help
cmdlet.
Get-Help -Name Get-Help
A partir de la versión 3.0 de PowerShell, el contenido de ayuda no se incluye previamente con el sistema operativo. Cuando se ejecuta Get-Help
por primera vez, un mensaje pregunta si desea descargar los archivos de ayuda de PowerShell en el equipo.
Para responder a Sí, presione Y ejecuta el Update-Help
cmdlet y descarga el contenido de la ayuda.
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"):
Si no recibe este mensaje, ejecute Update-Help
desde una sesión de PowerShell con privilegios elevados que se ejecuta como administrador.
Una vez completada la actualización, se muestra el artículo de ayuda.
Dedique un momento a ejecutar el ejemplo en el equipo, revise la salida y observe cómo el sistema de ayuda organiza la información.
- NOMBRE
- SINOPSIS
- SINTAXIS
- DESCRIPCIÓN
- VÍNCULOS RELACIONADOS
- COMENTARIOS
Al revisar la salida, tenga en cuenta que los artículos de ayuda a menudo contienen una gran cantidad de información y lo que ve de forma predeterminada no es todo el artículo de ayuda.
Parámetros
Al ejecutar un comando en PowerShell, es posible que tenga que proporcionar información adicional o entrada al comando. Los parámetros permiten especificar opciones y argumentos que cambian el comportamiento de un comando. En la sección SINTAXIS de cada artículo de ayuda se describen los parámetros disponibles para el comando.
Get-Help
tiene varios parámetros que puede especificar para devolver todo el artículo de ayuda o un subconjunto para un comando. Para ver todos los parámetros disponibles para Get-Help
, vea la sección SINTAXIS de su artículo de ayuda, como se muestra en el ejemplo siguiente.
...
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>]
...
Conjuntos de parámetros
Al revisar la sección SINTAXIS de Get-Help
, observe que la información parece repetirse seis veces. Cada uno de esos bloques es un conjunto de parámetros individual, que indica que el Get-Help
cmdlet incluye seis conjuntos distintos de parámetros. Una mirada más detallada revela que cada conjunto de parámetros contiene al menos un parámetro único, lo que lo convierte en diferente de los demás.
Los conjuntos de parámetros se excluyen mutuamente. Una vez que especifique un parámetro único que solo exista en un conjunto de parámetros, PowerShell limita el uso de los parámetros incluidos en ese conjunto de parámetros.
Por ejemplo, no puede usar los parámetros Full y Detailed de juntos porque pertenecen a diferentes conjuntos de Get-Help
parámetros.
Cada uno de los parámetros siguientes pertenece a un conjunto de parámetros diferente para el Get-Help
cmdlet .
- Completo
- Detallado
- Ejemplos
- En línea
- Parámetro
- showWindow
Sintaxis del comando
Si no está familiarizado con PowerShell, comprender la información críptica ,que se caracteriza por corchetes y angulares, en la sección SINTAXIS puede parecer abrumador. Sin embargo, el aprendizaje de estos elementos de sintaxis es esencial para convertirse en experto con PowerShell. Cuanto más frecuente sea el sistema de ayuda de PowerShell, más fácil será recordar todos los matices.
Vea la sintaxis del Get-EventLog
cmdlet.
Get-Help Get-EventLog
En la salida siguiente se muestra la parte pertinente del artículo de ayuda.
...
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>]
...
La información de sintaxis incluye pares de corchetes ([]
). Dependiendo de su uso, estos corchetes sirven para dos propósitos diferentes.
- Los elementos entre corchetes son opcionales.
- Un conjunto vacío de corchetes después de un tipo de datos, como
<string[]>
, indica que el parámetro puede aceptar varios valores pasados como una matriz o un objeto de colección.
Parámetros posicionales
Algunos cmdlets están diseñados para aceptar parámetros posicionales. Los parámetros posicionales permiten proporcionar un valor sin especificar el nombre del parámetro. Al usar un parámetro de forma posicional, debe especificar su valor en la posición correcta en la línea de comandos. Puede encontrar la información posicional de un parámetro en la sección PARAMETERS del artículo de ayuda de un comando. Al especificar explícitamente nombres de parámetro, puede usar los parámetros en cualquier orden.
Para el Get-EventLog
cmdlet, el primer parámetro del primer conjunto de parámetros es LogName.
LogName se incluye entre corchetes, lo que indica que es un parámetro posicional.
Get-EventLog [-LogName] <System.String>
Dado que LogName es un parámetro posicional, puede especificarlo por nombre o posición. Según los corchetes angulares que siguen al nombre del parámetro, el valor de LogName debe ser una sola cadena. La ausencia de corchetes que incluyan el nombre del parámetro y el tipo de datos indican que LogName es un parámetro necesario dentro de este conjunto de parámetros concreto.
El segundo parámetro de ese conjunto de parámetros es InstanceId. Tanto el nombre del parámetro como el tipo de datos están completamente entre corchetes, lo que significa que InstanceId es un parámetro opcional.
[[-InstanceId] <System.Int64[]>]
Además, InstanceId tiene su propio par de corchetes, lo que indica que es un parámetro posicional similar al parámetro LogName . Después del tipo de datos, un conjunto vacío de corchetes implica que InstanceId puede aceptar varios valores.
Parámetros de modificador
Un parámetro que no requiere un valor se denomina parámetro de modificador. Puede identificar fácilmente los parámetros del modificador porque no hay ningún tipo de datos que siga el nombre del parámetro. Cuando se especifica un parámetro switch, su valor es true
. Cuando no se especifica un parámetro switch, su valor es false
.
El segundo conjunto de parámetros incluye un parámetro List , que es un parámetro switch. Al especificar el parámetro List , devuelve una lista de registros de eventos en el equipo local.
[-List]
Un enfoque simplificado para la sintaxis
Hay un método más fácil de usar para obtener la misma información que la sintaxis de comandos crípticos para algunos comandos, excepto en inglés sin formato. PowerShell devuelve el artículo de ayuda completo al usar Get-Help
con el parámetro Full , lo que facilita la comprensión del uso de un comando.
Get-Help -Name Get-Help -Full
Dedique un momento a ejecutar el ejemplo en el equipo, revise la salida y observe cómo el sistema de ayuda organiza la información.
- NOMBRE
- SINOPSIS
- SINTAXIS
- DESCRIPCIÓN
- PARAMETERS
- ENTRADAS
- SALIDAS
- NOTAS
- EJEMPLOS
- VÍNCULOS RELACIONADOS
Al especificar el parámetro Full con el Get-Help
cmdlet , la salida incluye varias secciones adicionales. Entre estas secciones, PARAMETERS a menudo proporciona una explicación detallada de cada parámetro. Sin embargo, la extensión de esta información varía en función del comando específico que esté investigando.
...
-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
...
Cuando ejecutó el comando anterior para mostrar la ayuda del Get-Help
comando, probablemente notó que la salida se desplazaba demasiado rápido para leerlo.
Si usa la consola de PowerShell, Terminal Windows o VS Code y necesita ver un artículo de ayuda, la help
función puede ser útil. Canaliza la salida de Get-Help
a more.com
, mostrando una página de contenido de ayuda a la vez. Recomiendo usar la help
función en lugar del Get-Help
cmdlet porque proporciona una mejor experiencia de usuario y es menor que escribir.
Nota:
El ISE no admite el uso more.com
de , por lo que la ejecución help
funciona de la misma manera que Get-Help
.
Ejecute cada uno de los siguientes comandos en PowerShell en el equipo.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
¿Ha observado alguna variación en la salida cuando ejecutó los comandos anteriores?
En el ejemplo anterior, la primera línea usa el Get-Help
cmdlet , el segundo usa la help
función y la tercera línea omite el parámetro Name mientras se usa la help
función . Dado que Name es un parámetro posicional, el tercer ejemplo aprovecha su posición en lugar de indicar explícitamente el nombre del parámetro.
La diferencia es que los dos últimos comandos muestran su salida de una página a la vez. Al usar la help
función , presione la barra espaciadora para mostrar la página siguiente del contenido o Q para salir. Si necesita finalizar cualquier comando que se ejecute de forma interactiva en PowerShell, presione Ctrl+C.
Para encontrar rápidamente información sobre un parámetro específico, use el parámetro Parameter . Este enfoque devuelve contenido que contiene solo la información específica del parámetro, en lugar del artículo de ayuda completo. Esta es la manera más fácil de encontrar información sobre un parámetro específico.
En el ejemplo siguiente se usa la help
función con el parámetro Parameter para devolver información del artículo de ayuda para el parámetro Name de Get-Help
.
help Get-Help -Parameter Name
La información de ayuda muestra que el parámetro Name es posicional y debe especificarse en la primera posición (posición cero) cuando se usa posicionalmente.
-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
El parámetro Name espera un valor de cadena identificado por el <String>
tipo de datos junto al nombre del parámetro.
Hay otros parámetros con los que puede especificar Get-Help
para devolver un subconjunto de un artículo de ayuda. Para ver cómo funcionan, ejecute los siguientes comandos en el equipo.
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
Normalmente, uso help <command name>
con el parámetro Full u Online. Si solo tiene interés en los ejemplos, use el parámetro Examples . Si solo tiene interés en un parámetro específico, use el parámetro Parameter .
Cuando se usa el parámetro ShowWindow , se muestra el contenido de ayuda en una ventana de búsqueda independiente. Puede mover esa ventana a otro monitor si tiene varios monitores. Sin embargo, el parámetro ShowWindow tiene un error conocido que podría impedir que muestre todo el artículo de ayuda. El parámetro ShowWindow también requiere un sistema operativo con una interfaz gráfica de usuario (GUI). Devuelve un error al intentar usarlo en Windows Server Core.
Si tiene acceso a Internet, puede usar el parámetro Online en su lugar. El parámetro Online abre el artículo de ayuda en el explorador web predeterminado. El contenido en línea es el contenido más actualizado. El explorador le permite buscar el contenido de ayuda y ver otros artículos de ayuda relacionados.
Nota:
El parámetro Online no es compatible con los artículos Acerca de .
help Get-Command -Online
Búsqueda de comandos con Get-Help
Para buscar comandos con Get-Help
, especifique un término de búsqueda rodeado de caracteres comodín asterisco (*
) para el valor del parámetro Name . En el ejemplo siguiente se usa el parámetro Name posicionalmente.
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...
En este escenario, no es necesario agregar los *
caracteres comodín. Si Get-Help
no encuentra un comando que coincida con el valor proporcionado, realiza una búsqueda de texto completo para ese valor. En el ejemplo siguiente se generan los mismos resultados que al especificar el *
carácter comodín en cada extremo de process
.
help process
Al especificar un carácter comodín dentro del valor, Get-Help
solo busca comandos que coincidan con el patrón proporcionado. No realiza una búsqueda de texto completo. El comando siguiente no devuelve ningún resultado.
help pr*cess
PowerShell genera un error si especifica un valor que comienza con un guión sin incluirlo entre comillas porque lo interpreta como un nombre de parámetro. No existe este nombre de parámetro para el Get-Help
cmdlet .
help -process
Si está intentando buscar comandos que terminan con -process
, debe agregar un *
al principio del valor.
help *-process
Al buscar comandos de PowerShell con Get-Help
, es mejor ser impreciso en lugar de ser demasiado específico.
Cuando se process
ha buscado anteriormente, los resultados solo devuelven comandos que se incluyen process
en su nombre. Pero si busca processes
, no encuentra ninguna coincidencia para los nombres de comando. Como se indicó anteriormente, cuando la ayuda no encuentra ninguna coincidencia, realiza una búsqueda completa de texto completo de cada artículo de ayuda en el sistema y devuelve esos resultados. Este tipo de búsqueda a menudo genera más resultados de lo esperado, incluida la información no relevante para usted.
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
Al buscar process
, devolvió 12 resultados. Sin embargo, al buscar processes
, produjo 78 resultados. Si la búsqueda solo encuentra una coincidencia, Get-Help
muestra el contenido de ayuda en lugar de enumerar los resultados de la búsqueda.
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"
También puede encontrar comandos que carecen de artículos de ayuda con Get-Help
, aunque esta funcionalidad no se conoce normalmente. La more
función es uno de los comandos que no tienen un artículo de ayuda. Para confirmar que puede encontrar comandos con Get-Help
que no incluyan artículos de ayuda, use la help
función para buscar more
.
help *more*
La búsqueda solo encontró una coincidencia, por lo que devolvió la información de sintaxis básica que ve cuando un comando no tiene un artículo de ayuda.
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
El sistema de ayuda de PowerShell también contiene artículos conceptuales acerca de la ayuda. Debe actualizar el contenido de ayuda en el sistema para obtener los artículos Acerca de. Para obtener más información, consulte la sección Ayuda de actualización de este capítulo.
Use el siguiente comando para devolver una lista de todos los artículos de ayuda acerca de su sistema.
help About_*
Al limitar los resultados a un artículo acerca de la ayuda, Get-Help
muestra el contenido de ese artículo.
help about_Updatable_Help
Actualización de la Ayuda
Anteriormente en este capítulo, actualizó los artículos de ayuda de PowerShell en el equipo la primera vez que ejecutó el Get-Help
cmdlet. Debe ejecutar periódicamente el cmdlet en el Update-Help
equipo para obtener las actualizaciones del contenido de ayuda.
Importante
En Windows PowerShell 5.1, debe ejecutarse Update-Help
como administrador en una sesión de PowerShell con privilegios elevados.
En el ejemplo siguiente, Update-Help
descarga el contenido de ayuda de PowerShell para todos los módulos instalados en el equipo. Debe usar el parámetro Force para asegurarse de descargar la versión más reciente del contenido de ayuda.
Update-Help -Force
Como se muestra en los resultados siguientes, un módulo devolvió un error. Los errores no son raros y normalmente se producen cuando el autor del módulo no configura la ayuda actualizable correctamente.
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
requiere acceso a Internet para descargar el contenido de ayuda. Si el equipo no tiene acceso a Internet, use el Save-Help
cmdlet en un equipo con acceso a Internet para descargar y guardar el contenido de ayuda actualizado. A continuación, use el parámetro SourcePath de Update-Help
para especificar la ubicación del contenido de ayuda actualizado guardado.
Get-Command
Get-Command
es otro comando multipropósito que le ayuda a encontrar comandos. Cuando se ejecuta Get-Command
sin parámetros, devuelve una lista de todos los comandos de PowerShell del sistema.
También puede usar Get-Command
para obtener la sintaxis de comandos similar a Get-Help
.
¿Cómo se determina la sintaxis de Get-Command
? Puede usar Get-Help
para mostrar el artículo de ayuda de Get-Command
, como se muestra en la sección Get-Help de este capítulo. También puede usar Get-Command
con el parámetro Syntax para ver la sintaxis de cualquier comando. Este acceso directo le ayuda a determinar rápidamente cómo usar un comando sin navegar por su contenido de ayuda.
Get-Command -Name Get-Command -Syntax
El uso Get-Command
con el parámetro Syntax proporciona una vista más concisa de la sintaxis que muestra los parámetros y sus tipos de valor, sin enumerar los valores permitidos específicos, como Get-Help
se muestra.
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>]
Si necesita información más detallada sobre cómo usar un comando, use Get-Help
.
help Get-Command -Full
La sección SINTAXIS de Get-Help
proporciona una visualización más fácil de usar expandiendo los valores enumerados para los parámetros. Muestra los valores reales que puede usar, lo que facilita la comprensión de las opciones disponibles.
...
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 sección PARAMETERS de la ayuda para Get-Command
revelar que los parámetros Name, Noun y Verb aceptan caracteres comodín.
...
-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
...
En el ejemplo siguiente se usa el *
carácter comodín con el valor del parámetro Name de Get-Command
.
Get-Command -Name *service*
Cuando se usan caracteres comodín con el parámetro Name de Get-Command
, devuelve comandos de PowerShell y comandos nativos, como se muestra en los resultados siguientes.
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...
Puede limitar los resultados de a los comandos de Get-Command
PowerShell mediante el parámetro CommandType .
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias, Script
Otra opción puede ser usar el parámetro Verb o Noun o ambos, ya que solo los comandos de PowerShell tienen verbos y sustantivos.
En el ejemplo siguiente se usan Get-Command
para buscar comandos en el equipo que funcionan con procesos.
Use el parámetro Sustantivo y especifique Process
como su valor.
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
Resumen
En este capítulo, ha aprendido a buscar comandos con Get-Help
y Get-Command
. También ha aprendido a usar el sistema de ayuda para comprender cómo usar comandos una vez que los encuentre. Además, ha aprendido a actualizar el sistema de ayuda en el equipo cuando hay nuevo contenido de ayuda disponible.
Revisar
- ¿El parámetro DisplayName de
Get-Service
es posicional? - ¿Cuántos conjuntos de parámetros tiene el cmdlet
Get-Process
? - ¿Qué comandos de PowerShell existen para trabajar con registros de eventos?
- ¿Cuál es el comando de PowerShell para devolver una lista de procesos de PowerShell que se ejecutan en el equipo?
- ¿Cómo actualiza el contenido de ayuda de PowerShell almacenado en el equipo?
Referencias
Para más información sobre los conceptos descritos en este capítulo, lea los siguientes artículos de ayuda de PowerShell.
Pasos siguientes
En el capítulo siguiente, obtendrá información sobre objetos, propiedades, métodos y el Get-Member
cmdlet .