Actualizar automáticamente los archivos de ayuda de PowerShell
Cada vez que visito el escritorio de un nuevo compañero de trabajo (para ayudarlos con algo relacionado con PowerShell), Get-Help no les devolverá mucho y me preguntan por qué. La razón es que nunca ejecutaron Update-Help y, de forma predeterminada, los archivos de ayuda no están instalados en Windows. Los archivos de ayuda también se actualizan, por lo que aunque lo hayas ejecutado una vez, es importante repetir el proceso con frecuencia para mantener todo actualizado. Este es el procedimiento no solo para actualizar la ayuda, sino también para establecer un cronograma configurable para actualizar sus archivos de ayuda. Es de destacar que el comando Register-ScheduledJob utilizado en este ejemplo se introdujo en PowerShell versión 3. El Programador de tareas también podría usarse para ejecutar la programación.
Paso #1: Al ejecutar PowerShell como administrador, lo siguiente es todo lo que necesita hacer para obtener o actualizar todos sus archivos de ayuda.
Update-HelpPaso 2: El ejemplo anterior tiene un requisito previo de que la estación de trabajo pueda acceder a Internet para obtener acceso a los archivos de ayuda. Puede evitar este requisito especificando un recurso compartido de red local. Para actualizar la ayuda desde un recurso compartido de red, primero debe guardar los archivos de ayuda en esa ubicación.
Save-Help -DestinationPath \\server\share\helppathPaso #3: Ahora que hemos guardado los archivos de ayuda en nuestra red compartida, podemos actualizar otras estaciones de trabajo o usuarios que quizás no tengan acceso a Internet desde esa ubicación.
Update-Help -SourcePath \\server\share\helppathPaso #4A: Ahora estamos listos para automatizar la actualización de los archivos de ayuda de PowerShell. Desde una estación de trabajo/cuenta de usuario con acceso a Internet, los siguientes comandos configurarán el trabajo. El usuario asignado en el trabajo programado debe ser administrador de la estación de trabajo, tener acceso a Internet y una contraseña que no cambie. Si todas sus estaciones de trabajo tienen acceso a Internet independientemente de su nombre de usuario, se podría utilizar una cuenta de estación de trabajo local en lugar de una cuenta de dominio.
$cred = New-Object System.Management.Automation.PsCredential("domain\useraccountwithadminpermissions", (ConvertTo-SecureString "useraccountpassword" -AsPlainText -Force))
Register-ScheduledJob -Name UpdatePowerShellHelpJob -Credential $cred -ScriptBlock {Update-Help} -Trigger (New-JobTrigger -Daily -At "1 AM")
Paso 4B: Como siempre, también puede solicitar credenciales si no desea implementar nombres de usuario y contraseñas en texto plano.
$cred = Get-Credential
Register-ScheduledJob -Name UpdatePowerShellHelpJob -Credential $cred -ScriptBlock {Update-Help} -Trigger (New-JobTrigger -Daily -At "1 AM")Paso #4C: Si desea configurar el horario para que sea semanal en lugar de diario, puede utilizar lo siguiente. DaysOfWeek especifica los días de la semana en que se ejecutará.
$cred = Get-Credential
Register-ScheduledJob -Name UpdatePowerShellHelpJob -Credential $cred -ScriptBlock {Update-Help} -Trigger (New-JobTrigger -Weekly -DaysOfWeek 1 -At "1 AM")Paso #5: Si necesita el uso de un recurso compartido local para actualizar la ayuda cuando el acceso a Internet no está disponible, puede configurar el trabajo programado con la ruta de origen de la red especificada.
$cred = New-Object System.Management.Automation.PsCredential("domain\useraccountwithadminpermissions", (ConvertTo-SecureString "useraccountpassword" -AsPlainText -Force))
Register-ScheduledJob -Name UpdatePowerShellHelpJob -Credential $cred -ScriptBlock {Update-Help -SourcePath \\server\share\helppath} -Trigger (New-JobTrigger -Daily -At "1 AM")¡Y eso cubre todo lo que necesita para automatizar la actualización de la Ayuda de PowerShell! Por favor deja un comentario con cualquier pregunta.