Freigeben über


Save-Help

Lädt die neuesten Hilfedateien herunter und speichert sie in einem Dateisystemverzeichnis.

Syntax

Save-Help
    [-DestinationPath] <String[]>
    [[-Module] <PSModuleInfo[]>]
    [-FullyQualifiedModule <ModuleSpecification[]>]
    [[-UICulture] <CultureInfo[]>]
    [-Credential <PSCredential>]
    [-UseDefaultCredentials]
    [-Force]
    [<CommonParameters>]
Save-Help
    -LiteralPath <String[]>
    [[-Module] <PSModuleInfo[]>]
    [-FullyQualifiedModule <ModuleSpecification[]>]
    [[-UICulture] <CultureInfo[]>]
    [-Credential <PSCredential>]
    [-UseDefaultCredentials]
    [-Force]
    [<CommonParameters>]

Beschreibung

Das Cmdlet Save-Help lädt die neuesten Hilfedateien für PowerShell-Module herunter und speichert sie in einem von Ihnen angegebenen Verzeichnis. Mit dieser Funktion können Sie die Hilfedateien auf Computern aktualisieren, die keinen Internetzugriff haben, und sie vereinfacht die Aktualisierung der Hilfedateien auf mehreren Computern.

In Windows PowerShell 3.0 funktionierte Save-Help nur für Module, die auf dem lokalen Computer installiert sind. Obwohl es möglich war, ein Modul von einem Remotecomputer zu importieren oder einen Verweis auf ein PSModuleInfo-Objekt von einem Remotecomputer mithilfe von PowerShell-Remoting abzurufen, wurde die HelpInfoUri-Eigenschaft nicht beibehalten, und Save-Help funktionierte nicht für die Hilfe des Remotemoduls.

In Windows PowerShell 4.0 wird die HelpInfoUri-Eigenschaft über PowerShell-Remoting beibehalten, sodass Save-Help für Module funktioniert, die auf Remotecomputern installiert sind. Es ist auch möglich, ein PSModuleInfo-Objekt auf einem Datenträger oder Wechselmedium zu speichern, indem Sie Export-Clixml auf einem Computer ohne Internetzugriff ausführen, das Objekt auf einem Computer importieren, der über Internetzugriff verfügt, und dann Save-Help für das PSModuleInfo-Objekt ausführen. Die gespeicherte Hilfe kann mithilfe von Wechselmedien, z. B. einem USB-Laufwerk, auf den Remotecomputer übertragen werden. Die Hilfe kann auf dem Remotecomputer installiert werden, indem Sie Update-Help ausführen. Dieser Prozess kann zum Installieren der Hilfe auf Computern verwendet werden, die überhaupt keinen Zugriff auf das Netzwerk haben.

Führen Sie zum Installieren gespeicherter Hilfedateien das Cmdlet Update-Help aus. Fügen Sie den SourcePath-Parameter hinzu, um den Ordner anzugeben, in dem Sie die Hilfedateien gespeichert haben.

Ohne Parameter lädt ein Save-Help-Befehl die neueste Hilfe für alle Module in der Sitzung und für Module herunter, die auf dem Computer an einem in der PSModulePath -Umgebungsvariablen aufgeführten Speicherort installiert sind. Diese Aktion überspringt Module, die keine aktualisierbare Hilfe ohne Warnung unterstützen.

Das Cmdlet Save-Help überprüft die Version aller Hilfedateien im Zielordner. Wenn neuere Hilfedateien verfügbar sind, lädt dieses Cmdlet die neuesten Hilfedateien aus dem Internet herunter und speichert sie dann im Ordner. Das Cmdlet Save-Help funktioniert genau wie das Cmdlet Update-Help, mit dem Unterschied, dass es die heruntergeladenen Kabinettdateien (.cab) speichert, anstatt die Hilfedateien aus den Kabinettdateien zu extrahieren und sie auf dem Computer zu installieren.

Die gespeicherte Hilfe für jedes Modul besteht aus einer Hilfeinformationsdatei (HelpInfo XML) und einer Kabinettdatei (.cab) für die Hilfedateien jeder Benutzeroberflächenkultur. Sie müssen die Hilfedateien nicht aus der Kabinettdatei extrahieren. Das Cmdlet Update-Help extrahiert die Hilfedateien, überprüft die XML-Datei auf Sicherheit und installiert dann die Hilfedateien und die Hilfeinformationsdatei in einem sprachspezifischen Unterordner des Modulordners.

Um die Hilfedateien für Module im PowerShell-Installationsordner ($pshome\Modules) zu speichern, starten Sie PowerShell mithilfe der Option Als Administrator ausführen. Sie müssen ein Mitglied der Gruppe „Administratoren“ auf dem Computer sein, um die Hilfedateien für diese Module herunterzuladen.

Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.

Beispiele

Beispiel 1: Speichern der Hilfe für das DhcpServer-Modul

# Option 1: Run Invoke-Command to get the PSModuleInfo object for the remote DHCP Server module, save the PSModuleInfo object in the variable $m, and then run Save-Help.

$m = Invoke-Command -ComputerName RemoteServer -ScriptBlock { Get-Module -Name DhcpServer -ListAvailable }
Save-Help -Module $m -DestinationPath "C:\SavedHelp"


# Option 2: Open a PSSession--targeted at the remote computer that is running the DhcpServer module--to get the PSModuleInfo object for the remote module, and then run Save-Help.

$s = New-PSSession -ComputerName "RemoteServer"
$m = Get-Module -PSSession $s -Name "DhcpServer" -ListAvailable
Save-Help -Module $m -DestinationPath "C:\SavedHelp"


# Option 3: Open a CIM session--targeted at the remote computer that is running the DhcpServer module--to get the PSModuleInfo object for the remote module, and then run Save-Help.

$c = New-CimSession -ComputerName "RemoteServer"
$m = Get-Module -CimSession $c -Name "DhcpServer" -ListAvailable
Save-Help -Module $m -DestinationPath "C:\SavedHelp"

In diesem Beispiel werden drei verschiedene Möglichkeiten gezeigt, mit Save-Help die Hilfe für das DhcpServer-Modul von einem mit dem Internet verbundenen Clientcomputer zu speichern, ohne das DhcpServer-Modul oder die DHCP-Serverrolle auf dem lokalen Computer zu installieren.

Beispiel 2: Installieren der Hilfe für das DhcpServer-Modul

# First, run Export-CliXml to export the PSModuleInfo object to a shared folder or to removable media.

$m = Get-Module -Name "DhcpServer" -ListAvailable
Export-CliXml -Path "E:\UsbFlashDrive\DhcpModule.xml" -InputObject $m

# Next, transport the removable media to a computer that has Internet access, and then import the PSModuleInfo object with Import-CliXml. Run Save-Help to save the Help for the imported DhcpServer module PSModuleInfo object.

$deserialized_m = Import-CliXml "E:\UsbFlashDrive\DhcpModule.xml"
Save-Help -Module $deserialized_m -DestinationPath "E:\UsbFlashDrive\SavedHelp"

# Finally, transport the removable media back to the computer that does not have network access, and then install the help by running Update-Help.

Update-Help -Module DhcpServer -SourcePath "E:\UsbFlashDrive\SavedHelp"

In diesem Beispiel wird gezeigt, wie Sie hilfe installieren, die Sie in Beispiel 1 für das DhcpServer-Modul auf einem Computer ohne Internetzugriff gespeichert haben.

Beispiel 3: Speichern der Hilfe für alle Module

Save-Help -DestinationPath "\\Server01\FileShare01"

Mit diesem Befehl werden die neuesten Hilfedateien für alle Module in der Benutzeroberflächenkultur für Windows auf den lokalen Computer heruntergeladen. Die Hilfedateien werden im Ordner \\Server01\Fileshare01 gespeichert.

Beispiel 4: Speichern der Hilfe für ein Modul auf dem Computer

Save-Help -Module ServerManager -DestinationPath "\\Server01\FileShare01" -Credential Domain01/Admin01

Mit diesem Befehl werden die neuesten Hilfedateien für das Modul ServerManager heruntergeladen und dann im Ordner \\Server01\Fileshare01 gespeichert.

Wenn ein Modul auf dem Computer installiert ist, können Sie den Namen des Moduls als Wert des Module-Parameters eingeben, auch wenn das Modul nicht in die aktuelle Sitzung importiert wird.

Der Befehl verwendet den Credential-Parameter, um die Anmeldeinformationen eines Benutzers anzugeben, der über die Berechtigung zum Schreiben in der Dateifreigabe verfügt.

Beispiel 5: Speichern der Hilfe für ein Modul auf einem anderen Computer

Invoke-Command -ComputerName Server02 {Get-Module -Name CustomSQL -ListAvailable} | Save-Help -DestinationPath \\Server01\FileShare01 -Credential Domain01\Admin01

Diese Befehle laden die neuesten Hilfedateien für das CustomSQL-Modul herunter und speichern sie im Ordner \\Server01\Fileshare01.

Da das CustomSQL-Modul nicht auf dem Computer installiert ist, enthält die Sequenz einen Invoke-Command-Befehl, der das Modulobjekt für das CustomSQL-Modul vom Server02-Computer abruft und das Modulobjekt dann an das Cmdlet Save-Help leitet.

Wenn ein Modul nicht auf dem Computer installiert ist, benötigt Save-Help das Modulobjekt, das Informationen über den Speicherort der neuesten Hilfedateien enthält.

Beispiel 6: Speichern der Hilfe für ein Modul in mehreren Sprachen

Save-Help -Module Microsoft.PowerShell* -UICulture de-DE, en-US, fr-FR, ja-JP -DestinationPath "D:\Help"

Dieser Befehl speichert Hilfe für die PowerShell Core-Module in vier verschiedenen Benutzeroberflächenkulturen. Die Sprachpakete für diese Gebietsschemas müssen nicht auf dem Computer installiert werden.

Save-Help kann Hilfedateien für Module in verschiedenen Benutzeroberflächenkulturen nur herunterladen, wenn der Modulbesitzer die übersetzten Dateien im Internet verfügbar macht.

Beispiel 7: Hilfe mehr als einmal täglich speichern

Save-Help -Force -DestinationPath "\\Server3\AdminShare\Help"

Dieser Befehl speichert die Hilfe für alle Module, die auf dem Computer installiert sind. Der Befehl gibt den Parameter Erzwingen an, um die Regel außer Kraft zu setzen, die verhindert, dass das Cmdlet Save-Help hilfe mehr als einmal in jedem 24-Stunden-Zeitraum herunterladen kann.

Der Force-Parameter überschreibt auch die Einschränkung von 1 GB und umgeht die Versionsüberprüfung. Daher können Sie Dateien herunterladen, auch wenn die Version nicht höher als die Version im Zielordner ist.

Der Befehl verwendet das Cmdlet Save-Help , um die Hilfedateien herunterzuladen und in den angegebenen Ordner zu speichern. Der Force-Parameter ist erforderlich, wenn Sie einen Save-Help-Befehl mehrmals täglich ausführen müssen.

Parameter

-Credential

Gibt Benutzeranmeldeinformationen an. Dieses Cmdlet führt den Befehl mithilfe der Anmeldeinformationen eines Benutzers aus, der über die Berechtigung zum Zugriff auf den durch den DestinationPath-Parameter angegebenen Dateisystemspeicherort verfügt. Dieser Parameter ist nur gültig, wenn der Parameter DestinationPath oder LiteralPath im Befehl verwendet wird.

Mit diesem Parameter können Sie Save-Help-Befehle ausführen, die den Parameter DestinationPath auf Remotecomputern verwenden. Durch Bereitstellen expliziter Anmeldeinformationen können Sie den Befehl auf einem Remotecomputer ausführen und auf eine Dateifreigabe auf einem dritten Computer zugreifen, ohne dass ein Zugriff verweigert wird oder die CredSSP-Authentifizierung zum Delegieren von Anmeldeinformationen verwendet wird.

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DestinationPath

Gibt den Pfad des Ordners an, in dem die Hilfedateien gespeichert werden. Geben Sie keinen Dateinamen und keine Dateierweiterung an.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Force

Gibt an, dass dieses Cmdlet die Einmal-pro-Tag-Einschränkung nicht befolgt, die Versionsprüfung überspringt und Dateien herunterlädt, die den Grenzwert von 1 GB überschreiten.

Ohne diesen Parameter ist der Save-Help-Befehl nur einmal alle 24 Stunden für jedes Modul zulässig, Downloads sind auf 1 GB an nicht komprimiertem Inhalt pro Modul beschränkt, und Hilfedateien für ein Modul werden nur installiert, wenn sie neuer sind als die Dateien auf dem Computer.

Der Grenzwert für einmal pro Tag schützt die Server, auf denen die Hilfedateien gehostet werden, und macht es für Sie praktisch, Ihrem PowerShell-Profil einen Save-Help-Befehl hinzuzufügen.

Um Hilfe für ein Modul in mehreren Benutzeroberflächenkulturen ohne den Force-Parameter zu speichern, schließen Sie alle Benutzeroberflächenkulturen in denselben Befehl ein, z. B.: Save-Help -Module PSScheduledJobs -UICulture en-US, fr-FR, pt-BR

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FullyQualifiedModule

Gibt Module mit Namen an, die in Form von ModuleSpecification-Objekten angegeben werden. Dies wird im Abschnitt Hinweise des ModuleSpecification-Konstruktors (Hashtable) in der MSDN Library beschrieben. Der Parameter FullyQualifiedModule akzeptiert beispielsweise einen Modulnamen, der im Format @{ModuleName = "modulename" angegeben ist; ModuleVersion = "version_number"} oder @{ModuleName = "modulename"; ModuleVersion = "version_number"; Guid = "GUID"}. ModuleName und ModuleVersion sind erforderlich, aber Guid ist optional.

Sie können den Parameter FullyQualifiedModule nicht im selben Befehl wie einen Module-Parameter angeben.

Type:ModuleSpecification[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-LiteralPath

Gibt einen Pfad des Zielordners an. Im Gegensatz zum Wert des DestinationPath-Parameters wird der Wert des LiteralPath-Parameters genau so verwendet, wie er eingegeben wird. Es werden keine Zeichen als Platzhalter interpretiert. Wenn der Pfad Escapezeichen enthält, müssen Sie ihn in einfache Anführungszeichen einschließen. Einzelne Anführungszeichen weisen PowerShell an, keine Zeichen als Escapesequenzen zu interpretieren.

Type:String[]
Aliases:PSPath
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Module

Gibt Module an, für die dieses Cmdlet Hilfe herunterlädt. Geben Sie einen oder mehrere Modulnamen oder Namenspatter in eine durch Trennzeichen getrennte Liste oder in eine Datei ein, die in jeder Zeile einen Modulnamen aufweist. Platzhalterzeichen sind zulässig. Sie können Modulobjekte auch aus dem Cmdlet Get-Module an Save-Help weiterleiten.

Standardmäßig lädt Save-Help die Hilfe für alle Module herunter, die die aktualisierbare Hilfe unterstützen und die auf dem lokalen Computer in einem in der PSModulePath-Umgebungsvariablen aufgeführten Verzeichnis installiert sind.

Um Hilfe für Module zu speichern, die nicht auf dem Computer installiert sind, führen Sie den Befehl Get-Module auf einem Remotecomputer aus. Übergeben Sie die resultierenden Modulobjekte über die Pipeline an das Save-Help-Cmdlet, oder senden Sie die Modulobjekte als Wert der Module- oder InputObject-Parameter.

Wenn das angegebene Modul auf dem Computer installiert ist, können Sie den Modulnamen oder ein Modulobjekt eingeben. Wenn das Modul nicht auf dem Computer installiert ist, müssen Sie ein Modulobjekt eingeben, z. B. ein vom Get-Module-Cmdlet zurückgegebenes Objekt.

Der Module-Parameter des Cmdlets Save-Help akzeptiert nicht den vollständigen Pfad einer Moduldatei oder Modulmanifestdatei. Um Hilfe für ein Modul zu speichern, das sich nicht an einem PSModulePath-Speicherort befindet, importieren Sie das Modul in die aktuelle Sitzung, bevor Sie den Befehl Save-Help ausführen.

Der Wert "*" (all) versucht, die Hilfe für alle Module zu aktualisieren, die auf dem Computer installiert sind. Dies schließt Module ein, die keine aktualisierbare Hilfe unterstützen. Dieser Wert kann Fehler generieren, wenn der Befehl auf Module stößt, die die aktualisierbare Hilfe nicht unterstützen.

Type:PSModuleInfo[]
Aliases:Name
Position:1
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-UICulture

Gibt Benutzeroberflächenkulturwerte an, für die dieses Cmdlet aktualisierte Hilfedateien erhält. Geben Sie mindestens einen Sprachcode ein, z. B. es-ES, eine Variable, die Kulturobjekte enthält, oder einen Befehl, der Kulturobjekte abruft, z. B. einen Get-Culture- oder Get-UICulture-Befehl.

Platzhalterzeichen sind nicht zulässig. Geben Sie keinen teilweisen Sprachcode an, z. B. "de".

Standardmäßig ruft Save-Help Hilfedateien im Benutzeroberflächenkultursatz für Windows oder seiner Fallbackkultur ab. Wenn Sie den UICulture-Parameter angeben, sucht Save-Help nur nach Hilfe für die angegebene UI-Kultur, nicht für eine Fallbackkultur.

Type:CultureInfo[]
Position:2
Default value:Current UI culture
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseDefaultCredentials

Gibt an, dass dieses Cmdlet den Befehl, einschließlich des Webdownloads, mit den Anmeldeinformationen des aktuellen Benutzers ausführt. Standardmäßig wird der Befehl ohne explizite Anmeldeinformationen ausgeführt.

Dieser Parameter gilt nur, wenn der Webdownload eine NTLM-, Negotiate- oder Kerberos-basierte Authentifizierung verwendet.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSModuleInfo

Sie können ein Modulobjekt aus dem Cmdlet Get-Module an den Parameter Module von Save-Help weiterleiten.

Ausgaben

None

Dieses Cmdlet generiert keine Ausgabe.

Hinweise

  • Um Hilfe für Module im Ordner $pshome\Modules zu speichern, starten Sie PowerShell mit der Option Als Administrator ausführen. Nur Mitglieder der Gruppe Administratoren auf dem Computer können Hilfe zu Modulen im Ordner $pshome\Modules herunterladen.
  • Die gespeicherte Hilfe für jedes Modul besteht aus einer Hilfeinformationsdatei (HelpInfo XML) und einer Kabinettdatei (.cab) für die Hilfedateien jeder Benutzeroberflächenkultur. Sie müssen die Hilfedateien nicht aus der Kabinettdatei extrahieren. Das Cmdlet Update-Help extrahiert die Hilfedateien, überprüft den XML-Code und installiert dann die Hilfedateien und die Hilfeinformationsdatei in einem sprachspezifischen Unterordner des Modulordners.
  • Das Save-Help-Cmdlet kann die Hilfe für Module speichern, die nicht auf dem Computer installiert sind. Da Hilfedateien jedoch im Modulordner installiert sind, kann das Cmdlet Update-Help die aktualisierte Hilfedatei nur für Module installieren, die auf dem Computer installiert sind.
  • Wenn Save-Help keine aktualisierten Hilfedateien für ein Modul oder aktualisierte Hilfedateien in der angegebenen Sprache finden kann, wird es weiterhin im Hintergrund ausgeführt, ohne eine Fehlermeldung anzuzeigen. Um zu sehen, welche Dateien durch den Befehl gespeichert wurden, geben Sie den Verbose-Parameter an .
  • Module sind die kleinste Einheit der aktualisierbaren Hilfe. Sie können keine Hilfe für ein bestimmtes Cmdlet speichern, nur für alle Cmdlets im Modul. Um das Modul zu finden, das ein bestimmtes Cmdlet enthält, verwenden Sie die ModuleName-Eigenschaft zusammen mit dem Cmdlet Get-Command, z. B. (Get-Command \<cmdlet-name\>).ModuleName
  • Save-Help unterstützt alle Module und die PowerShell Core-Snap-Ins. Andere Snap-Ins werden nicht unterstützt.
  • Die Cmdlets Update-Help und Save-Help verwenden die folgenden Ports zum Herunterladen von Hilfedateien: Port 80 für HTTP und Port 443 für HTTPS.
  • Die Cmdlets Update-Help und Save-Help werden unter Windows Preinstallation Environment (Windows PE) nicht unterstützt.