Microsoft erneuert Hilfesystem für PowerShell


    Tags:

    PowerShell HelpEin Vorzug von Power­Shell gegenüber älteren Kommando­zeilen oder Script-Umgebungen ist das dyna­mische Hilfe­system. Es holt sich die aktu­ellen Hilfe­dateien von Microsofts Website. Dort gab es jedoch schon lange keine Updates mehr. Dies soll sich nun mit einem neuen Publishing-Verfahren ändern.

    Hilfe zu bestimmten Cmdlets oder Sprach­elementen erhält man in PowerShell bekanntlich mit

    Get-Help -Name <Cmdlet>

    Dieser Befehl liest dann die zuständige XML-Datei aus dem passenden Sprach­verzeichnis des Modulpfads aus. Seit der Version 3.0 verzichtet Microsoft jedoch auf die Lokalisierung der Hilfetexte, so dass alle Informationen aus dem Ordner en-US kommen.

    Aber auch dort wurden die Hilfetexte seit Jahren, genau genommen seit dem Erscheinen von PowerShell 5.1, nicht mehr auf einen neuen Stand gebracht. Für eine ganze Reihe von Modulen fehlen sie gänzlich.

    Künftig regelmäßige Updates der Hilfetexte

    Die nun angekündigte neue Pipeline zum Publizieren der PowerShell-Hilfe soll künftig für frische Inhalte im Hilfesystem sorgen, und zwar in den Versionen 5.x und 7.x. Wer jedoch glaubt, ein simpler Aufruf von

    Update-Help

    würde dafür reichen, hat sich zu früh gefreut. Das Cmdlet steigt in diesem Fall mit dieser Fehlermeldung aus:

    Fehler beim Aktualisieren von Hilfe für die Module "ConfigDefender, PSReadline, WindowsUpdateProvider" mit den Benutzer­oberflächen­kulturen {de-DE}: Die XML-Datei "HelpInfo" für die Benutzeroberflächenkultur de-DE kann nicht abgerufen werden.

    Das unvollständige Hilfesystem verursacht den Abbruch des Updates.

    Wenn man darauf tippt, dass daran die deutsch­sprachige Umgebung schuld ist, dann liegt man falsch, weil das Problem auch auf dem englisch­sprachigen Windows auftritt.

    Der Grund liegt vielmehr darin, dass die Eigenschaft HelpInfoUri bei den betreffenden Modulen fehlen oder auf ungültige Dateien verweisen. Am einfachsten umgeht man das Problem, indem man das Cmdlet anweist, auftretende Fehler zu ignorieren und mit dem Update fortzufahren:

    Update-Help -ErrorAction SilentlyContinue

    Version der Hilfe auslesen

    Nach dem erfolgreichen Abschluss dieser Aktion liegt es nahe, das Hilfesystem auf neue Inhalte zu überprüfen. Diese kann man anhand der Versions­nummer herausfinden. Um hier Änderungen zu entdecken, sollte man das folgende Script vor und nach dem Update laufen lassen.

    Version der installierten Hilfe anzeigen per Script

    Der Code prüft für alle installierten Module, die über eine URL für die Hilfedatei verfügen, ob im Modul­verzeichnis eine HelpInfo-Datei existiert. Diese liegt im XML-Format vor. Ist sie vorhanden, dann gibt das Script die Versions­nummer der Hilfe aus.

    Andernfalls zeigt es an, dass es für das betreffende Modul keine Hilfetexte gibt. Auch nach der Ankündigung des neuen Produktions­prozesses hat sich hier nicht viel getan, mehrere Module haben immer noch nichts vorzuweisen.

    Keine Kommentare