Save-Help
Pobiera i zapisuje najnowsze pliki pomocy w katalogu systemu plików.
Składnia
Save-Help
[-DestinationPath] <String[]>
[[-Module] <PSModuleInfo[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-UICulture] <CultureInfo[]>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-Scope <UpdateHelpScope>]
[<CommonParameters>]
Save-Help
-LiteralPath <String[]>
[[-Module] <PSModuleInfo[]>]
[-FullyQualifiedModule <ModuleSpecification[]>]
[[-UICulture] <CultureInfo[]>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-Force]
[-Scope <UpdateHelpScope>]
[<CommonParameters>]
Opis
Polecenie Save-Help
cmdlet pobiera najnowsze pliki pomocy dla modułów programu PowerShell i zapisuje je w określonym katalogu. Ta funkcja umożliwia aktualizowanie plików pomocy na komputerach, które nie mają dostępu do Internetu, i ułatwia aktualizowanie plików pomocy na wielu komputerach.
W Windows PowerShell 3.0 Save-Help
pracował tylko dla modułów zainstalowanych na komputerze lokalnym. Chociaż można było zaimportować moduł z komputera zdalnego lub uzyskać odwołanie do obiektu PSModuleInfo z komputera zdalnego przy użyciu komunikacji zdalnej, właściwość HelpInfoUri nie została zachowana i Save-Help
nie będzie działać w przypadku pomocy modułu zdalnego.
W Windows PowerShell 4.0 właściwość HelpInfoUri jest zachowywana za pośrednictwem komunikacji zdalnej programu PowerShell, co umożliwia Save-Help
działanie modułów zainstalowanych na komputerach zdalnych. Istnieje również możliwość zapisania obiektu PSModuleInfo na dysku lub nośniku wymiennym przez uruchomienie Export-Clixml
na komputerze, który nie ma dostępu do Internetu, zaimportować obiekt na komputerze, który ma dostęp do Internetu, a następnie uruchomić Save-Help
go w obiekcie PSModuleInfo . Zapisaną pomoc można przetransportować do komputera zdalnego przy użyciu wymiennych nośników pamięci masowej, takich jak dysk USB. Pomoc można zainstalować na komputerze zdalnym, uruchamiając polecenie Update-Help
. Ten proces może służyć do instalowania pomocy na komputerach, które nie mają dostępu do sieci.
Aby zainstalować zapisane pliki pomocy, uruchom Update-Help
polecenie cmdlet . Dodaj parametr SourcePath , aby określić folder, w którym zapisano pliki Pomocy.
Bez parametrów Save-Help
polecenie pobiera najnowszą pomoc dla wszystkich modułów w sesji i modułów zainstalowanych na komputerze w lokalizacji wymienionej w zmiennej środowiskowej PSModulePath . Ta akcja pomija moduły, które nie obsługują aktualizowalnej pomocy bez ostrzeżenia.
Polecenie Save-Help
cmdlet sprawdza wersję wszystkich plików pomocy w folderze docelowym. Jeśli są dostępne nowsze pliki pomocy, to polecenie cmdlet pobiera najnowsze pliki pomocy z Internetu, a następnie zapisuje je w folderze. Polecenie Save-Help
cmdlet działa podobnie jak Update-Help
polecenie cmdlet, z wyjątkiem tego, że zapisuje pobrane pliki cabinet (.cab), zamiast wyodrębniać pliki pomocy z plików cabinet i instalować je na komputerze.
Zapisana pomoc dla każdego modułu składa się z jednego pliku pomocy (HelpInfo XML) i jednego pliku cabinet (.cab) dla plików pomocy dla każdej kultury interfejsu użytkownika. Nie trzeba wyodrębniać plików pomocy z pliku cabinet. Polecenie Update-Help
cmdlet wyodrębnia pliki pomocy, weryfikuje kod XML pod kątem bezpieczeństwa, a następnie instaluje pliki pomocy i plik informacji pomocy w podfolderze specyficznym dla języka folderu modułu.
Aby zapisać pliki pomocy dla modułów w folderze instalacyjnym programu PowerShell ($pshome\Modules
), uruchom program PowerShell przy użyciu opcji Uruchom jako administrator. Aby pobrać pliki pomocy dla tych modułów, musisz być członkiem grupy Administratorzy na komputerze.
To polecenie cmdlet zostało wprowadzone w Windows PowerShell 3.0.
Przykłady
Przykład 1. Zapisywanie pomocy dla modułu DhcpServer
# 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"
W tym przykładzie przedstawiono trzy różne sposoby zapisywania Save-Help
pomocy dla modułu DhcpServer z komputera klienckiego połączonego z Internetem bez instalowania modułu DhcpServer lub roli serwera DHCP na komputerze lokalnym.
Przykład 2. Instalowanie pomocy dotyczącej modułu DhcpServer
# 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"
W tym przykładzie pokazano, jak zainstalować pomoc zapisaną w przykładzie 1 dla modułu DhcpServer na komputerze, który nie ma dostępu do Internetu.
Przykład 3. Zapisywanie pomocy dla wszystkich modułów
Save-Help -DestinationPath "\\Server01\FileShare01"
To polecenie pobiera najnowsze pliki pomocy dla wszystkich modułów w kulturze interfejsu użytkownika ustawionej dla systemu Windows na komputerze lokalnym. Zapisuje pliki pomocy w folderze \\Server01\Fileshare01
.
Przykład 4. Zapisywanie pomocy dotyczącej modułu na komputerze
Save-Help -Module ServerManager -DestinationPath "\\Server01\FileShare01" -Credential Domain01/Admin01
To polecenie pobiera najnowsze pliki pomocy dla modułu ServerManager , a następnie zapisuje je w folderze \\Server01\Fileshare01
.
Po zainstalowaniu modułu na komputerze można wpisać nazwę modułu jako wartość parametru Moduł , nawet jeśli moduł nie zostanie zaimportowany do bieżącej sesji.
Polecenie używa parametru Credential , aby podać poświadczenia użytkownika, który ma uprawnienia do zapisu w udziale plików.
Przykład 5. Zapisywanie pomocy dla modułu na innym komputerze
Invoke-Command -ComputerName Server02 {Get-Module -Name CustomSQL -ListAvailable} | Save-Help -DestinationPath \\Server01\FileShare01 -Credential Domain01\Admin01
Te polecenia pobierają najnowsze pliki pomocy dla modułu CustomSQL i zapisują je w folderze \\Server01\Fileshare01
.
Ponieważ moduł CustomSQL nie jest zainstalowany na komputerze, sekwencja zawiera Invoke-Command
polecenie, które pobiera obiekt modułu dla modułu CustomSQL z komputera Server02, a następnie potokuje obiekt modułu Save-Help
do polecenia cmdlet.
Gdy moduł nie jest zainstalowany na komputerze, Save-Help
wymaga obiektu modułu, który zawiera informacje o lokalizacji najnowszych plików pomocy.
Przykład 6. Zapisywanie pomocy dla modułu w wielu językach
Save-Help -Module Microsoft.PowerShell* -UICulture de-DE, en-US, fr-FR, ja-JP -DestinationPath "D:\Help"
To polecenie zapisuje pomoc dla podstawowych modułów programu PowerShell w czterech różnych kulturach interfejsu użytkownika. Pakiety językowe dla tych ustawień regionalnych nie muszą być zainstalowane na komputerze.
Save-Help
program może pobrać pliki pomocy dla modułów w różnych kulturach interfejsu użytkownika tylko wtedy, gdy właściciel modułu udostępnia przetłumaczone pliki w Internecie.
Przykład 7. Zapisywanie pomocy więcej niż raz dziennie
Save-Help -Force -DestinationPath "\\Server3\AdminShare\Help"
To polecenie zapisuje pomoc dla wszystkich modułów zainstalowanych na komputerze. Polecenie określa parametr Force , aby zastąpić regułę, która uniemożliwia Save-Help
pobieranie pomocy przez polecenie cmdlet więcej niż raz w każdym okresie 24-godzinnym.
Parametr Force zastępuje również ograniczenie 1 GB i pomija sprawdzanie wersji. W związku z tym można pobrać pliki, nawet jeśli wersja nie jest nowsza niż wersja w folderze docelowym.
Polecenie używa Save-Help
polecenia cmdlet do pobrania i zapisania plików pomocy w określonym folderze.
Parametr Force jest wymagany, gdy musisz uruchomić Save-Help
polecenie więcej niż jeden raz każdego dnia.
Parametry
-Credential
Określa poświadczenia użytkownika. To polecenie cmdlet uruchamia polecenie przy użyciu poświadczeń użytkownika, który ma uprawnienia dostępu do lokalizacji systemu plików określonej przez parametr DestinationPath . Ten parametr jest prawidłowy tylko wtedy, gdy parametr DestinationPath lub LiteralPath jest używany w poleceniu .
Ten parametr umożliwia uruchamianie Save-Help
poleceń, które używają parametru DestinationPath na komputerach zdalnych. Podając jawne poświadczenia, można uruchomić polecenie na komputerze zdalnym i uzyskać dostęp do udziału plików na trzecim komputerze bez napotkania błędu odmowy dostępu lub uwierzytelniania CredSSP w celu delegowania poświadczeń.
Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential wygenerowany przez Get-Credential
polecenie cmdlet. Jeśli wpiszesz nazwę użytkownika, zostanie wyświetlony monit o wprowadzenie hasła.
Poświadczenia są przechowywane w obiekcie PSCredential , a hasło jest przechowywane jako secureString.
Uwaga
Aby uzyskać więcej informacji na temat ochrony danych secureString , zobacz Jak bezpieczny jest protokół SecureString?.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DestinationPath
Określa ścieżkę folderu, w którym są zapisywane pliki pomocy. Nie należy określać nazwy pliku ani rozszerzenia nazwy pliku.
Type: | String[] |
Aliases: | Path |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Wskazuje, że to polecenie cmdlet nie jest zgodne z ograniczeniem raz dziennie, pomija sprawdzanie wersji i pobiera pliki, które przekraczają limit 1 GB.
Bez tego parametru tylko jedno Save-Help
polecenie dla każdego modułu jest dozwolone w każdym okresie 24-godzinnym, pobieranie jest ograniczone do 1 GB nieskompresowanej zawartości na moduł, a pliki pomocy dla modułu są instalowane tylko wtedy, gdy są nowsze niż pliki na komputerze.
Limit raz dziennie chroni serwery hostujące pliki pomocy i ułatwia dodawanie Save-Help
polecenia do profilu programu PowerShell.
Aby zapisać pomoc dotyczącą modułu w wielu kulturach interfejsu użytkownika bez parametru Force , dołącz wszystkie kultury interfejsu użytkownika w tym samym poleceniu, takie jak: 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
Wartość może być nazwą modułu, pełną specyfikacją modułu lub ścieżką do pliku modułu.
Gdy wartość jest ścieżką, ścieżka może być w pełni kwalifikowana lub względna. Ścieżka względna jest rozpoznawana względem skryptu zawierającego instrukcję using.
Gdy wartość jest nazwą lub specyfikacją modułu, program PowerShell przeszukuje parametr PSModulePath dla określonego modułu.
Specyfikacja modułu jest tabelą skrótu zawierającą następujące klucze.
ModuleName
- Wymagane Określa nazwę modułu.GUID
- Opcjonalne Określa identyfikator GUID modułu.- Jest to również wymagane , aby określić co najmniej jeden z trzech poniższych kluczy.
ModuleVersion
— Określa minimalną akceptowalną wersję modułu.MaximumVersion
- Określa maksymalną akceptowalną wersję modułu.RequiredVersion
— Określa dokładną, wymaganą wersję modułu. Nie można jej używać z innymi kluczami wersji.
Nie można określić parametru FullyQualifiedModule w tym samym poleceniu co parametr Module . dwa parametry wykluczają się wzajemnie.
Type: | ModuleSpecification[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Określa ścieżkę folderu docelowego. W przeciwieństwie do wartości parametru DestinationPath wartość parametru LiteralPath jest używana dokładnie tak, jak jest typowana. Znaki wieloznaczne nie są interpretowane jako znaki wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Module
Określa moduły, dla których to polecenie cmdlet pobiera pomoc. Wprowadź co najmniej jedną nazwę modułu lub ciągi nazw na liście rozdzielanej przecinkami lub w pliku, który ma jedną nazwę modułu w każdym wierszu. Dozwolone są symbole wieloznaczne. Możesz również potokować obiekty modułów Get-Module
z polecenia cmdlet do Save-Help
.
Domyślnie Save-Help
pobiera pomoc dla wszystkich modułów obsługujących pomoc updatable i są instalowane na komputerze lokalnym w lokalizacji wymienionej w zmiennej środowiskowej PSModulePath .
Aby zapisać pomoc dotyczącą modułów, które nie są zainstalowane na komputerze, uruchom Get-Module
polecenie na komputerze zdalnym. Następnie przekaż wynikowe obiekty modułu do Save-Help
polecenia cmdlet lub prześlij obiekty modułu jako wartość parametrów Module lub InputObject .
Jeśli określony moduł jest zainstalowany na komputerze, możesz wprowadzić nazwę modułu lub obiekt modułu. Jeśli moduł nie jest zainstalowany na komputerze, musisz wprowadzić obiekt modułu Get-Module
, taki jak jeden zwrócony przez polecenie cmdlet.
Parametr Save-Help
Module polecenia cmdlet nie akceptuje pełnej ścieżki pliku modułu lub pliku manifestu modułu. Aby zapisać pomoc dotyczącą modułu, który nie znajduje się w lokalizacji PSModulePath , zaimportuj moduł do bieżącej sesji przed uruchomieniem Save-Help
polecenia .
Wartość "*" (wszystkie) próbuje zaktualizować pomoc dla wszystkich modułów zainstalowanych na komputerze. Obejmuje to moduły, które nie obsługują pomocy możliwej do zaktualizowania. Ta wartość może generować błędy, gdy polecenie napotka moduły, które nie obsługują pomocy updatable.
Type: | PSModuleInfo[] |
Aliases: | Name |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Scope
Ten parametr nie wykonuje nic w tym poleceniu cmdlet.
Type: | UpdateHelpScope |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-UICulture
Określa wartości kultury interfejsu użytkownika, dla których to polecenie cmdlet pobiera zaktualizowane pliki pomocy. Wprowadź co najmniej jeden kod języka, taki jak es-ES
, zmienna zawierająca obiekty kultury lub polecenie, które pobiera obiekty kultury, takie jak Get-Culture
lub Get-UICulture
polecenia.
Symbole wieloznaczne nie są dozwolone. Nie należy określać częściowego kodu języka, takiego jak "de".
Domyślnie Save-Help
pobiera pliki pomocy w kulturze interfejsu użytkownika ustawionej dla systemu Windows lub jego kultury rezerwowej.
Jeśli określisz parametr UICulture , Save-Help
szuka pomocy tylko dla określonej kultury interfejsu użytkownika, a nie w żadnej kulturze rezerwowej.
Type: | CultureInfo[] |
Position: | 2 |
Default value: | Current UI culture |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseDefaultCredentials
Wskazuje, że to polecenie cmdlet uruchamia polecenie, w tym pobieranie internetowe, z poświadczeniami bieżącego użytkownika. Domyślnie polecenie jest uruchamiane bez jawnych poświadczeń.
Ten parametr jest skuteczny tylko wtedy, gdy pobieranie internetowe używa protokołu NTLM, negocjowania lub uwierzytelniania opartego na protokole Kerberos.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
Możesz przekazać do tego polecenia cmdlet obiekt modułu.
Dane wyjściowe
None
To polecenie cmdlet nie zwraca żadnych danych wyjściowych.
Uwagi
- Aby zapisać pomoc dotyczącą modułów w folderze $pshome\Modules, uruchom program PowerShell przy użyciu opcji Uruchom jako administrator. Tylko członkowie grupy Administratorzy na komputerze mogą pobrać pomoc dotyczącą modułów w folderze $pshome\Modules.
- Zapisana pomoc dla każdego modułu składa się z jednego pliku pomocy (HelpInfo XML) i jednego pliku cabinet (.cab) dla plików pomocy dla każdej kultury interfejsu użytkownika. Nie trzeba wyodrębniać plików pomocy z pliku cabinet. Polecenie
Update-Help
cmdlet wyodrębnia pliki pomocy, weryfikuje kod XML, a następnie instaluje pliki pomocy i plik informacji pomocy w podfolderze specyficznym dla języka folderu modułu. - Polecenie
Save-Help
cmdlet może zapisać pomoc dotyczącą modułów, które nie są zainstalowane na komputerze. Jednak ponieważ pliki pomocy są instalowane w folderze modułu,Update-Help
polecenie cmdlet może zainstalować zaktualizowany plik pomocy tylko dla modułów zainstalowanych na komputerze. - Jeśli
Save-Help
nie można odnaleźć zaktualizowanych plików pomocy dla modułu lub nie można odnaleźć zaktualizowanych plików pomocy w określonym języku, będzie ona kontynuowana w trybie dyskretnym bez wyświetlania komunikatu o błędzie. Aby sprawdzić, które pliki zostały zapisane za pomocą polecenia, określ parametr Verbose . - Moduły są najmniejszą jednostką aktualizowalnej pomocy. Nie można zapisać pomocy dla określonego polecenia cmdlet tylko dla wszystkich poleceń cmdlet w module. Aby znaleźć moduł zawierający określone polecenie cmdlet, użyj właściwości ModuleName wraz z
Get-Command
poleceniem cmdlet, na przykład(Get-Command \<cmdlet-name\>).ModuleName
Save-Help
obsługuje wszystkie moduły i podstawowe przystawki programu PowerShell. Nie obsługuje żadnych innych przystawek.- Polecenia
Update-Help
cmdlet iSave-Help
używają następujących portów do pobierania plików pomocy: Port 80 dla protokołu HTTP i portu 443 dla protokołu HTTPS. - Polecenia
Update-Help
cmdlet iSave-Help
nie są obsługiwane w środowisku preinstalacji systemu Windows (Windows PE).