2010-02-19 10 views
5

He creado algunos cmdlets de PowerShell personalizados en C# y me gustaría brindar cierta información que se mostrará con el cmdlet get-help; p.ej. "get-help my-cmdlet".Soporte técnico de Get-Help para el cmdlet de PowerShell personalizado

He creado un complemento básico derivado de PSSnapIn y anulé las propiedades de Descripción, Nombre y Proveedor. También creé mi archivo de ayuda "Cmdlets.dll-Help.xml". Cmdlets.dll es el nombre correcto del ensamblado según las instrucciones here.

creé la siguiente secuencia de comandos para probar rápidamente esta ayuda a cabo:

$ErrorActionPreference = "Stop" 
$scriptFolder = Split-Path $script:MyInvocation.MyCommand.Path 

$dll = ($scriptFolder + "\Release\x64\Cmdlets.dll") 
Write-Host "Testing Cmdlets in $dll" -fore Green 

[System.Reflection.Assembly] $assembly = [System.Reflection.Assembly]::LoadFrom($dll) 
Import-Module -assembly $assembly 

get-help get-latestfiles 

Esto parece sólo apareció un poco de ayuda por defecto de los parámetros del cmdlet, pero no puede conseguir cualquiera de mis ejemplos que he escrito en el XML archivo. ¿Alguien tiene alguna idea sobre por qué es esto?

Respuesta

2

Parece que hubo dos problemas por los que mi ayuda no funcionaba. En primer lugar, era necesario copiar el XML en el directorio de salida de la DLL de Cmdlet para que se recogiera Powershell.

El segundo motivo parece haber sido un error en mi archivo de ayuda. No estoy seguro de qué era esto, pero Powershell simplemente parecía fallar silenciosamente a pesar de que la preferencia de acción de error estaba configurada para detenerse. Terminé levantando XML directamente de C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ es-US \ Microsoft.PowerShell.Commands.Management.dll-Help.xml y modificándolo para adaptarlo a mis necesidades.

1

Get-Help solo muestra un subconjunto de la ayuda para un cmdlet de manera predeterminada. Especificar Full para ver parámetro ayuda y sus ejemplos:

Get-Help Get-LatestFiles -Full 

Si ese no es el problema (suena como no lo es) a continuación, echar un vistazo a este PowerShell script that generates skeleton MAML files. Ejecútelo y use su salida para ver si se muestra la ayuda adecuada.

+0

Desafortunadamente parecería que me falta algo más. Especificar el interruptor completo solo muestra la misma ayuda predeterminada que proporciona Powershell 2. – Jason

Cuestiones relacionadas