Capítulo 2: Sistema de ayuda
Se proporcionó una prueba escrita sin acceso a un equipo a dos grupos de profesionales de TI para determinar su nivel de conocimientos de PowerShell. Los principiantes de PowerShell se ubicaron en un grupo y los expertos, en otro. Según los resultados de la prueba, no pareció haber mucha diferencia en el nivel de conocimientos entre ambos grupos. A ambos grupos se les proporcionó una segunda prueba similar a la primera. En esta ocasión, se les dio acceso a un equipo con PowerShell que no tenía acceso a Internet. Los resultados de la segunda prueba mostraron una gran diferencia en el nivel de conocimientos entre ambos grupos. Los expertos no siempre conocen las respuestas, pero saben cómo averiguarlas.
¿Cuál fue la diferencia en los resultados de la primera y la segunda prueba entre estos dos grupos?
Las diferencias observadas en estas dos pruebas se debieron a que los expertos no memorizan cómo usar miles de comandos en PowerShell. En cambio, aprenden a usar muy bien el sistema de ayuda de PowerShell. Esto les permite encontrar los comandos necesarios cuando los necesitan y cómo usarlos una vez que los han encontrado.
He escuchado a Jeffrey Snover, el inventor de PowerShell, referirse a casos similares en numerosas ocasiones.
Dominar el sistema de ayuda es la clave para utilizar PowerShell correctamente.
Detectabilidad
Los comandos compilados en PowerShell se denominan cmdlets. Se pronuncia "command-let" (y no "CMD-let"). Los nombres de los cmdlets tienen la forma de comandos "verbo-sustantivo" singulares para poder descubrirlos con facilidad. Por ejemplo, el cmdlet para determinar qué procesos se están ejecutando es Get-Process
y el cmdlet para recuperar una lista de servicios y sus estados es Get-Service
. Hay otros tipos de comandos en PowerShell, tales como alias y funciones, que se tratarán más adelante en este libro. El término comando de PowerShell es un término genérico que se suele usar para hacer referencia a cualquier tipo de comando de PowerShell, independientemente de si se trata de un cmdlet, una función o un alias.
Los tres cmdlets principales de PowerShell
Get-Command
Get-Help
Get-Member
(se aborda en el capítulo 3)
Una pregunta que se me plantea con frecuencia es cómo se averigua qué son los comandos en PowerShell. Tanto Get-Command
como Get-Help
se pueden usar para determinar los comandos.
Get-Help
Get-Help
es un comando multipropósito. Get-Help
le ayuda a aprender a usar comandos una vez que los haya encontrado. Get-Help
también se puede usar para facilitar la búsqueda de comandos, pero de una forma diferente y más indirecta en comparación con Get-Command
.
Cuando Get-Help
se usa para buscar comandos, primero busca coincidencias con caracteres comodín de los nombres de comando en función de la entrada proporcionada. Si no encuentra ninguna coincidencia, busca en los temas de ayuda y, si tampoco se encuentra ninguna coincidencia, se devuelve un error. Al contrario de lo que la mayoría de usuarios creen, Get-Help
se puede usar para buscar comandos que no tienen temas de ayuda.
Lo primero que necesita saber sobre el sistema de ayuda de PowerShell es cómo usar el cmdlet Get-Help
. El siguiente comando se usa para mostrar el tema de ayuda de 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 partir de la versión 3 de PowerShell, la ayuda de PowerShell no se distribuye con el sistema operativo. La primera vez que se ejecuta Get-Help
para buscar un comando, se muestra el mensaje anterior. Si usa la función help
o el alias man
en lugar del cmdlet Get-Help
, no recibirá este mensaje.
Al responder afirmativamente presionando Y, se ejecuta el cmdlet Update-Help
, que requiere acceso a Internet de forma predeterminada. Y
se puede especificar en mayúsculas o en minúsculas.
Una vez que se ha descargado la ayuda y se ha completado la actualización, se devuelve el tema de ayuda para el comando especificado:
Get-Help -Name Get-Help
Dedique un momento a ejecutar ese ejemplo en el equipo, revise el resultado y tome nota del modo en que se agrupa la información:
- NOMBRE
- SINOPSIS
- SINTAXIS
- DESCRIPCIÓN
- VÍNCULOS RELACIONADOS
- COMENTARIOS
Como puede ver, los temas de ayuda pueden contener una cantidad enorme de información, y esto no es ni siquiera el tema de ayuda completo.
Si bien no es específico de PowerShell, los parámetros son una forma de proporcionar la entrada a un comando. Get-Help
tiene muchos parámetros que se pueden especificar para devolver el tema de ayuda completo o un subconjunto de él.
La sección sintaxis del tema de ayuda que se muestra en el conjunto anterior de resultados muestra todos los parámetros de Get-Help
. A primera vista, parece que los mismos parámetros aparecen seis veces diferentes. Cada uno de esos bloques diferentes de la sección de sintaxis es un conjunto de parámetros. Esto significa que el cmdlet Get-Help
tiene seis conjuntos de parámetros diferentes. Si echa un vistazo con más detenimiento, observará que al menos un parámetro es diferente en cada uno de los conjuntos de parámetros.
Los conjuntos de parámetros se excluyen mutuamente. Una vez que se usa un parámetro único que solo existe en uno de los conjuntos de parámetros, solo se pueden usar los parámetros incluidos en ese conjunto de parámetros. Por ejemplo, los parámetros Full y Detailed no se podrían especificar al mismo tiempo porque se encuentran en conjuntos de parámetros diferentes.
Cada uno de los parámetros siguientes se encuentra en un conjunto de parámetros diferente:
- Completo
- Detallado
- Ejemplos
- En línea
- Parámetro
- showWindow
Toda la sintaxis críptica, como, por ejemplo, los corchetes angulares y cuadrados de la sección de sintaxis, significa algo, pero se abordará en el Apéndice A de este libro. Si bien es importante, conocer cuál es la sintaxis críptica a menudo es difícil de recordar para un usuario que no está familiarizado con PowerShell y que puede que no lo utilice a diario.
Para obtener más información para comprender mejor la sintaxis críptica, consulte el Apéndice A.
En el caso de los principiantes, hay una manera más fácil de averiguar la misma información, salvo en lenguaje sin formato.
Cuando se especifica el parámetro Full de Get-Help
, se devuelve todo el tema de ayuda.
Get-Help -Name Get-Help -Full
Dedique un momento a ejecutar ese ejemplo en el equipo, revise el resultado y tome nota del modo en que se agrupa la información:
- NOMBRE
- SINOPSIS
- SINTAXIS
- DESCRIPCIÓN
- PARAMETERS
- ENTRADAS
- SALIDAS
- NOTAS
- EJEMPLOS
- VÍNCULOS RELACIONADOS
Tenga en cuenta que el uso del parámetro Full devolvió varias secciones adicionales, una de las cuales es la sección PARÁMETROS, que proporciona más información que la sección SINTAXIS críptica.
El parámetro Full es un parámetro de modificador. Un parámetro que no requiere un valor se denomina parámetro de modificador. Cuando se especifica un parámetro de modificador, su valor es true y, cuando no se especifica, su valor es false.
Si ha estado trabajando en este capítulo en la consola de PowerShell, habrá observado que el comando anterior para mostrar el tema de ayuda completo de Get-Help
desapareció de la pantalla sin darle la oportunidad de leerlo. Hay una mejor forma.
Help
es una función que canaliza Get-Help
en una función denominada more
, que es un contenedor del archivo ejecutable more.com
en Windows. En la consola de PowerShell, help
proporciona las páginas de ayuda de una en una. En el ISE, funciona de la misma manera que Get-Help
. Mi recomendación es usar la función help
en lugar del cmdlet Get-Help
, ya que proporciona una mejor experiencia y no requiere escribir tanto.
Sin embargo, escribir menos no siempre es bueno. Si va a guardar los comandos como un script o va a compartirlos con otro usuario, asegúrese de usar los nombres de parámetro y cmdlet completos. Los nombres completos se autodocumentan, lo que facilita su comprensión. Piense en la siguiente persona que va a tener que leer y entender los comandos. Podría ser usted. Sus compañeros de trabajo y usted mismo se lo agradecerán.
Intente ejecutar los siguientes comandos en la consola de PowerShell en el equipo del entorno de laboratorio de Windows 10.
Get-Help -Name Get-Help -Full
help -Name Get-Help -Full
help Get-Help -Full
¿Ha observado alguna diferencia en la salida de los comandos enumerados anteriormente al ejecutarlos en el equipo del entorno de laboratorio de Windows 10?
No hay ninguna diferencia excepto el hecho que las dos últimas opciones devuelven los resultados en una página cada vez.
La barra espaciadora se usa para mostrar la siguiente página de contenido al usar la función Help
y Ctrl+C cancela los comandos que se están ejecutando en la consola de PowerShell.
En el primer ejemplo, se usa el cmdlet Get-Help
; en el segundo, se usa la función Help
; y, en el tercero, se omite el parámetro Name al usar la función Help
. Name es un parámetro posicional y se utiliza de forma posicional en ese ejemplo. Esto significa que el valor se puede especificar sin especificar el nombre del parámetro, siempre que el valor se especifique en la posición correcta. ¿Cómo sé en qué posición se debe especificar el valor? Leyendo la ayuda como se muestra en el ejemplo siguiente.
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
Tenga en cuenta que, en el ejemplo anterior, el parámetro Parameter se usó con la función Help para devolver únicamente información del tema de ayuda asociado con el parámetro Name. Esto es mucho más conciso que intentar examinar manualmente lo que a veces parece un tema de ayuda de cien páginas.
En función de esos resultados, puede ver que el parámetro Name es posicional y debe especificarse en la posición cero (la primera posición) cuando se usa de forma posicional. El orden en que se especifican los parámetros no importa si se especifica el nombre del parámetro.
Otro dato importante es que el parámetro Name espera que el tipo de datos de su valor sea una sola cadena, que se indica mediante <String>
. Si aceptase varias cadenas, el tipo de datos se enumeraría como <String[]>
.
En ocasiones, puede que no desee mostrar el tema de ayuda completo de un comando. Hay algunos otros parámetros además de Full que se pueden especificar con Get-Help
o Help
. Intente ejecutar los siguientes comandos en el equipo del entorno de laboratorio de 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
Normalmente, uso help <command name>
con el parámetro Full u Online. Si solo me interesan los ejemplos, usaré el parámetro Examples y, si solo me interesa un parámetro específico, usaré el parámetro Parameter. El parámetro ShowWindow abre el tema de ayuda en una ventana independiente utilizable en búsquedas que se puede colocar en un monitor diferente si tiene varios monitores. He evitado el parámetro ShowWindow porque existe un error conocido en el que no muestra el tema de ayuda completo.
Si desea obtener ayuda en una ventana independiente, mi recomendación es usar el parámetro Online o usar el parámetro Full y canalizar los resultados a Out-GridView
, tal como se muestra en el ejemplo siguiente.
help Get-Command -Full | Out-GridView
Tanto el cmdlet Out-GridView
como el parámetro ShowWindow del cmdlet Get-Help
requieren un sistema operativo con una GUI (interfaz gráfica de usuario). Generarán un mensaje de error si intenta usarlos en una instancia de Windows Server que se instaló con la opción de instalación Server Core (no-GUI).
Para usar Get-Help
para buscar comandos, use el carácter comodín de asterisco (*
) con el parámetro Name. Especifique un término para el que esté buscando comandos como valor para el parámetro Name, tal como se muestra en el ejemplo siguiente.
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 ...
En el ejemplo anterior, los caracteres comodín *
no son necesarios y, si se omiten, se produce el mismo resultado. Get-Help
agrega automáticamente los caracteres comodín en segundo plano.
help process
El comando anterior produce los mismos resultados que si se especifica el carácter comodín *
en cada extremo del proceso.
Prefiero agregarlos, ya que es la opción que siempre funciona de forma coherente. De lo contrario, solo se requieren en determinados escenarios. En cuanto se agrega un carácter comodín en el centro del valor, ya no se agregan automáticamente en segundo plano al valor especificado.
help pr*cess
Ese comando no devuelve ningún resultado a menos que se agregue el carácter comodín *
al principio, al final o al principio y al final de pr*cess
.
Si el valor que especificó comienza con un guión, se genera un error porque PowerShell lo interpreta como un nombre de parámetro y no existe ese nombre de parámetro para el cmdlet Get-Help
.
help -process
Si lo que está intentando buscar son comandos que finalizan con -process
, solo tiene que agregar el carácter comodín *
al principio del valor.
help *-process
Al buscar comandos de PowerShell con Get-Help
, querrá ser un poco más abstracto en lugar de ser demasiado específico con lo que está buscando.
La búsqueda de process
antes solo encontró comandos que contenían process
en el nombre del comando y devolvió solo esos resultados. Cuando se usa Get-Help
para buscar processes
, no encuentra ninguna coincidencia con los nombres de comando, por lo que realiza una búsqueda de todos los temas de ayuda de PowerShell en el sistema y devuelve todas las coincidencias que encuentra. Esto hace que devuelva un número enorme de resultados.
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...
El uso de Help
para buscar process
devolvió 10 resultados y su uso para buscar processes
devolvió 68 resultados. Si solo se encuentra un resultado, se mostrará el tema de ayuda en lugar de una lista de comandos.
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"
Ahora vamos a derribar el mito que Help
de PowerShell solo puede encontrar comandos que tienen temas de ayuda.
help *more*
NAME
more
SYNTAX
more [[-paths] <string[]>]
ALIASES
None
REMARKS
None
Observe en el ejemplo anterior que more
no tiene un tema de ayuda, pero el sistema Help
de PowerShell fue capaz de encontrarlo. Solo encontró una coincidencia y devolvió la información de sintaxis básica que verá cuando un comando no tenga un tema de ayuda.
PowerShell contiene numerosos temas de ayuda conceptuales (acerca de). El siguiente comando se puede usar para devolver una lista de todos los temas de ayuda Acerca de del sistema.
help About_*
Limitar los resultados a un único tema de ayuda Acerca de muestra el tema de ayuda en lugar de devolver una lista.
help about_Updatable_Help
El sistema de ayuda de PowerShell debe actualizarse para que los temas de ayuda Acerca de estén presentes. Si, por alguna razón, se produjo un error en la actualización inicial del sistema de ayuda en el equipo, los archivos no estarán disponibles hasta que el cmdlet Update-Help
se haya ejecutado correctamente.
Get-Command
Get-Command
está diseñado para ayudarle a localizar comandos. Al ejecutar Get-Command
sin ningún parámetro, se devuelve una lista de todos los comandos del sistema. En el ejemplo siguiente se muestra cómo usar el cmdlet Get-Command
para determinar qué comandos existen para trabajar con procesos:
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...
Observe que, en el ejemplo anterior, en el que se ejecutó Get-Command
, se usa el parámetro Noun y se especifica Process
como el valor del parámetro Noun. ¿Qué ocurre si no sabe cómo usar el cmdlet Get-Command
? Puede usar Get-Help
para mostrar el tema de ayuda de Get-Command
.
Los parámetros Name, Noun y Verb aceptan caracteres comodín. En el ejemplo siguiente se muestran los caracteres comodín que se usan con el parámetro 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...
No me gusta mucho usar caracteres comodín con el parámetro Name de Get-Command
, ya que también devuelve archivos ejecutables que no son comandos nativos de PowerShell.
Si va a utilizar caracteres comodín con el parámetro Name, recomiendo limitar los resultados con el parámetro CommandType.
Get-Command -Name *service* -CommandType Cmdlet, Function, Alias
Una opción mejor es usar el parámetro Verb o Noun o ambos, ya que solo los comandos de PowerShell tienen tanto verbos como sustantivos.
¿Ha encontrado algún problema con un tema de ayuda? La buena noticia es que los temas de ayuda de PowerShell son de código abierto y están disponibles en el repositorio PowerShell-Docs de GitHub. Puede compensarlo no solo corrigiendo la información incorrecta para usted, sino también para todos los demás usuarios. Solo tiene que bifurcar el repositorio de documentación de PowerShell de GitHub, actualizar el tema de ayuda y enviar una solicitud de incorporación de cambios. Una vez aceptada la solicitud de incorporación de cambios, la documentación corregida estará disponible para todo el mundo.
Actualización de la Ayuda
La actualización anterior de la copia local de los temas de ayuda de PowerShell se produjo la primera vez que se solicitó ayuda en relación con un comando. Se recomienda actualizar periódicamente el sistema de ayuda, ya que de vez en cuando puede haber actualizaciones en el contenido de la ayuda. El cmdlet Update-Help
se usa para actualizar los temas de ayuda.
Requiere acceso a Internet de forma predeterminada y que se ejecute PowerShell con privilegios elevados como administrador.
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
Un par de módulos devolvieron errores, lo que no es raro. Si el equipo no tiene acceso a Internet, puede usar el cmdlet Save-Help
en otro equipo que tenga acceso a Internet para guardar primero la información de ayuda actualizada en un recurso compartido de archivos de la red y, a continuación, usar el parámetro SourcePath de Update-Help
para especificar esta ubicación de red para los temas de ayuda.
Considere la posibilidad de configurar una tarea programada o de agregar lógica a su script de perfil de PowerShell para actualizar periódicamente el contenido de la ayuda en el equipo. Los scripts de perfil se abordarán en un capítulo disponible próximamente.
Resumen
En este capítulo ha aprendido a buscar comandos con Get-Help
y Get-Command
. Ha aprendido a usar el sistema de ayuda para averiguar cómo usar los comandos una vez que los encuentra. También ha aprendido a actualizar el contenido de los temas de ayuda cuando hay actualizaciones disponibles.
Le reto a que aprenda un comando de PowerShell cada día.
Get-Command | Get-Random | Get-Help -Full
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?
- ¿Qué comando de PowerShell se debe usar para devolver una lista de los procesos de PowerShell que se ejecutan en el equipo?
- ¿Cómo actualiza el contenido de la ayuda de PowerShell que está almacenado en el equipo?
Lecturas recomendadas
Si desea obtener más información acerca de los temas que se abordan en este capítulo, recomiendo leer los siguientes temas de ayuda de PowerShell.
En el siguiente capítulo, obtendrá información sobre el cmdlet Get-Member
, así como los objetos, las propiedades y los métodos.
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de