Save-Help
下載並儲存最新的說明檔至檔案系統目錄。
語法
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>]
Description
Save-Help
Cmdlet 會下載 PowerShell 模組的最新說明檔,並將其儲存至您指定的目錄。 此功能可讓您更新無法存取因特網之電腦上的說明檔,並讓您更輕鬆地更新多部計算機上的說明檔。 此 Cmdlet 已在 Windows PowerShell 3.0 中引進。
從 Windows PowerShell 4.0 開始,您可以使用 Save-Help
下載遠端電腦上所安裝模組的說明檔。 您也可以在沒有因特網存取的計算機上使用 Export-Clixml
儲存 PSModuleInfo 物件、在具有因特網存取的計算機上匯入物件,然後在 PSModuleInfo 對象上執行 Save-Help
。 儲存說明之後,您可以執行 Update-Help
,將它複製到遠端電腦並加以安裝。
此程式可用來在沒有任何網路存取權的計算機上安裝說明。
如果沒有參數,Save-Help
命令會下載會話中所有模組的最新說明,以及安裝在計算機上之 PSModulePath 環境變數中所列位置的模組。 此動作會略過不支援可更新說明且沒有警告的模組。
Save-Help
Cmdlet 會檢查目的地資料夾中任何說明檔的版本。 如果有較新的說明檔可用,此 Cmdlet 會從因特網下載最新的說明檔,然後將它們儲存在資料夾中。
Save-Help
Cmdlet 的運作方式就像 Update-Help
Cmdlet,不同之處在於它會儲存下載的內容,而不是解壓縮說明檔,並將其安裝在計算機上。
每個模組的已儲存說明包含一個說明資訊(HelpInfo XML)檔案和封包或 ZIP 封存盤(.cab
或 .zip
),以取得每個語言的說明檔。 在 Windows 上,命令會下載封包檔案。 在 Linux 和 macOS 上,命令會下載 ZIP 檔案。
若要在 PowerShell 安裝資料夾中儲存模組的說明檔($PSHOME\Modules
),請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 您必須是計算機上的 Administrators 群組成員,才能下載這些模組的說明檔。
若要安裝儲存的說明檔,請使用 SourcePath 參數執行 Update-Help
,以指定包含已儲存說明檔案的資料夾。
Update-Help
從封存擷取說明檔,並將其安裝在適當的位置。
範例
範例 1:儲存 DhcpServer 模組的說明
此範例示範三種不同的方式,使用 Save-Help
從連線到因特網的用戶端電腦儲存 DhcpServer 模組的說明,而不需在本機計算機上安裝 DhcpServer 模組或 DHCP 伺服器角色。
# Option 1:
# 1. Run Invoke-Command to get the PSModuleInfo object for the DhcpServer module,
# 2. Save-Help on the PSModuleInfo object to save the help files to a folder on
# the local computer.
$mod = Invoke-Command -ComputerName RemoteServer -ScriptBlock {
Get-Module -Name DhcpServer -ListAvailable
}
Save-Help -Module $mod -DestinationPath C:\SavedHelp
# Option 2:
# 1. Open a PSSession to the remote computer that's running the DhcpServer module
# 2. Get the PSModuleInfo object from the remote computer
# 3. Save-Help on the PSModuleInfo object
$session = New-PSSession -ComputerName "RemoteServer"
$mod = Get-Module -PSSession $session -Name "DhcpServer" -ListAvailable
Save-Help -Module $mod -DestinationPath C:\SavedHelp
# Option 3:
# 1. Open a CimSession to the remote computer that's running the DhcpServer module
# 2. Get the PSModuleInfo object from the remote computer
# 3. Save-Help on the PSModuleInfo object
$cimsession = New-CimSession -ComputerName "RemoteServer"
$mod = Get-Module -CimSession $cimsession -Name "DhcpServer" -ListAvailable
Save-Help -Module $mod -DestinationPath "C:\SavedHelp"
範例 2:安裝 DhcpServer 模組的說明
此範例示範如何為未連線網路的計算機安裝說明。 在此範例中,第一部計算機未連線到可存取的網路。 檔案必須使用卸除式媒體複製到該檔案。 第二部計算機連線到因特網,並可下載說明檔。
# On the first computer, get the PSModuleInfo object for the module and save it to
# removable media.
Get-Module -Name "DhcpServer" -ListAvailable |
Export-CliXml -Path E:\UsbFlashDrive\DhcpModule.xml
# Move the removable media to a computer that has internet access, and then import the
# PSModuleInfo object. Run Save-Help on the imported PSModuleInfo object and save the help
# files to the removable media.
$moduleInfo = Import-CliXml E:\UsbFlashDrive\DhcpModule.xml
Save-Help -Module $moduleInfo -DestinationPath E:\UsbFlashDrive\SavedHelp
# Finally, move the removable media back to the first computer and install the help.
Update-Help -Module DhcpServer -SourcePath E:\UsbFlashDrive\SavedHelp
範例 3:儲存所有模組的說明
此命令會下載本機計算機上所有模組的最新說明檔。 它會將說明檔儲存在 \\Server01\Fileshare01
資料夾中。
Save-Help -DestinationPath \\Server01\FileShare01
範例 4:儲存計算機上模組的說明
此命令會下載 ServerManager 模組的最新說明檔,然後將它們儲存在 \\Server01\Fileshare01
資料夾中。
$saveHelpSplat = @{
Module = 'ServerManager'
DestinationPath = '\\Server01\FileShare01'
Credential = 'Domain01/Admin01'
}
Save-Help @saveHelpSplat
當計算機上安裝模組時,即使模組未匯入目前的會話,您也可以將模組名稱輸入為 Module 參數的值。
此命令會使用 Credential 參數來提供有權寫入檔案共享的用戶認證。
範例 5:在不同的計算機上儲存模組的說明
這些命令會下載 CustomSQL 模組的最新說明檔,並將其儲存在 \\Server01\Fileshare01
資料夾中。
Invoke-Command -ComputerName Server02 { Get-Module -Name CustomSQL -ListAvailable } |
Save-Help -DestinationPath \\Server01\FileShare01 -Credential Domain01\Admin01
因為 CustomSQL 模組未安裝在計算機上,因此順序會包含 Invoke-Command
命令,從 Server02 計算機取得 CustomSQL 模組的模組對象,然後將模組物件管線傳送至 Save-Help
Cmdlet。
當計算機未安裝模組時,Save-Help
需要模組物件,其中包含最新說明檔位置的相關信息。
範例 6:以多種語言儲存模組的說明
此命令會將核心 PowerShell 模組的說明儲存在四種不同的 UI 文化特性中。 這些地區設定的語言套件不需要安裝在計算機上。
$saveHelpSplat = @{
Module = 'Microsoft.PowerShell*'
UICulture = 'de-DE', 'en-US', 'fr-FR', 'ja-JP'
DestinationPath = "D:\Help"
}
Save-Help @saveHelpSplat
Save-Help
只有在模組擁有者在因特網上提供翻譯檔案時,才能下載不同UI文化特性模組的說明檔。
範例 7:每天儲存一次以上的說明
此命令會儲存電腦上所安裝之所有模組的說明。 命令會指定 Force 參數,以覆寫規則,以防止 Save-Help
Cmdlet 在每個 24 小時的期間多次下載說明。
Save-Help -Force -DestinationPath \\Server3\AdminShare\Help
Force 參數也會覆寫 1 GB 的限制,並規避版本檢查。 因此,即使版本不晚於目的地資料夾中的版本,您仍可下載檔。
此命令會使用 Save-Help
Cmdlet 來下載說明檔,並將說明檔儲存至指定的資料夾。
當您必須每天執行多個 命令時,需要 Save-Help
參數。
參數
-Credential
指定用戶認證。 此 Cmdlet 會使用有權存取 DestinationPath 參數所指定文件系統位置的使用者認證來執行命令。 只有當命令中使用 DestinationPath 或 LiteralPath 參數時,此參數才有效。
此參數可讓您在遠端電腦上執行使用 Save-Help
參數的 命令。 藉由提供明確的認證,您可以在遠端計算機上執行 命令,並在第三部計算機上存取檔案共用,而不會發生拒絕存取錯誤或使用 CredSSP 驗證來委派認證。
輸入使用者名稱,例如 User01 或 Domain01\User01,或輸入 Cmdlet 所產生的 Get-Credential
物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。
認證會儲存在 PSCredential 物件中,密碼會儲存為 secureString 。
注意
如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?。
類型: | PSCredential |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-DestinationPath
指定儲存說明檔的資料夾路徑。 請勿指定檔名或擴展名。
類型: | String[] |
別名: | Path |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
表示此 Cmdlet 不會遵循每天一次的限制、略過版本檢查,以及下載超過 1 GB 限制的檔案。
如果沒有此參數,每個模組每 24 小時只能有一個 Save-Help
命令,每個模組的下載限制為 1 GB 的未壓縮內容,而且模組的說明檔只有在比計算機上的檔案還新時才會安裝。
每天限制一次可保護裝載說明檔的伺服器,並讓您實際將 Save-Help
命令新增至 PowerShell 配置檔。
若要在多個 UI 文化特性中儲存模組的說明,而不需使用 Force 參數,請在相同的命令中包含所有 UI 文化特性,例如: Save-Help -Module PSScheduledJobs -UICulture en-US, fr-FR, pt-BR
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-FullyQualifiedModule
此值可以是模組名稱、完整模組規格或模組檔案的路徑。
當值為路徑時,路徑可以是完整或相對路徑。 相對於包含 using 語句的腳本,會解析相對路徑。
當值是名稱或模組規格時,PowerShell 會搜尋指定模組 PSModulePath。
模組規格是具有下列索引鍵的哈希表。
-
ModuleName
- 必要 指定模組名稱。 -
GUID
- 選擇性 指定模組的 GUID。 - 它也 必要 至少指定下列三個索引鍵的其中一個。
-
ModuleVersion
- 指定模組的最低可接受的版本。 -
MaximumVersion
- 指定模組的最大可接受的版本。 -
RequiredVersion
- 指定模組的確切必要版本。 這無法與其他版本金鑰搭配使用。
-
您無法在與 Module 參數相同的命令中指定 FullyQualifiedModule 參數。 這兩個參數互斥。
類型: | ModuleSpecification[] |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-LiteralPath
指定目的地資料夾的路徑。 與 DestinationPath 參數的值不同,LiteralPath 參數的值會與類型完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。
類型: | String[] |
別名: | PSPath, LP |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-Module
指定此 Cmdlet 下載說明的模組。 在逗號分隔清單中,或在每一行有一個模組名稱的檔案中,輸入一或多個模組名稱或名稱分頁。 允許通配符。 您也可以使用管線將模組物件從 Get-Module
Cmdlet 傳送至 Save-Help
。
根據預設,Save-Help
下載支援可更新說明的所有模組的說明,並安裝在本機計算機上,其位置列在 PSModulePath 環境變數中。
若要儲存電腦上未安裝之模組的說明,請在遠端電腦上執行 Get-Module
命令。 然後使用管線將產生的模組對象傳送至 Save-Help
Cmdlet,或將模組物件送出為 Module 或 InputObject 參數的值。
如果您指定的模組已安裝在電腦上,您可以輸入模組名稱或模組物件。 如果模組未安裝在計算機上,您必須輸入模組物件,例如 Get-Module
Cmdlet 所傳回的模組物件。
Cmdlet 的 Save-Help
參數不接受模組檔案或模組指令清單檔的完整路徑。 若要儲存不在 PSModulePath 位置的模組說明,請在執行 Save-Help
命令之前,將模組匯入目前的會話。
值 “*” (all) 會嘗試更新計算機上所安裝之所有模組的說明。 這包括不支援可更新說明的模組。 當命令遇到不支援可更新說明的模組時,這個值可能會產生錯誤。
類型: | PSModuleInfo[] |
別名: | Name |
Position: | 1 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | True |
-Scope
此參數不會在這個 Cmdlet 中執行任何動作。
類型: | UpdateHelpScope |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | False |
-UICulture
指定此 Cmdlet 取得更新說明檔的 UI 文化特性值。 輸入一或多個語言代碼,例如 es-ES
、包含文化特性物件的變數,或取得文化特性物件的命令,例如 Get-Culture
或 Get-UICulture
命令。 不允許使用通配符字元。
根據預設,Save-Help
取得作系統或其後援文化特性設定UI文化特性中的說明檔。 如果您指定 UICulture 參數,Save-Help
只會尋找指定語言的說明。
從 PowerShell 7.4 開始,您可以使用部分語言代碼,例如 en
下載任何區域的英文說明。
類型: | CultureInfo[] |
Position: | 2 |
預設值: | Current UI culture |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-UseDefaultCredentials
指出此 Cmdlet 會執行命令,包括 Web 下載,以及目前用戶的認證。 根據預設,命令會執行,而不需明確認證。
只有當 Web 下載使用 NTLM、交涉或 Kerberos 型驗證時,此參數才有效。
類型: | SwitchParameter |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將模組物件傳送至此 Cmdlet。
輸出
None
此 Cmdlet 不會傳回任何輸出。
備註
- 若要在 [$PSHOME\Modules] 資料夾中儲存模組的說明,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 只有計算機上的 Administrators 群組成員可以下載 [$PSHOME\Modules] 資料夾中模組的說明。
- 每個模組的已儲存說明包含一個說明資訊 (HelpInfo XML) 檔案,以及每個 UI 文化特性的說明檔一個封包 (.cab) 檔案。 您不需要從封包檔案擷取說明檔案。
Update-Help
Cmdlet 會擷取說明檔、驗證 XML,然後在模組資料夾的語言特定子資料夾中安裝說明檔和說明信息檔。 -
Save-Help
Cmdlet 可以儲存電腦上未安裝之模組的說明。 不過,由於說明檔已安裝在模組資料夾中,Update-Help
Cmdlet 只能針對電腦上安裝的模組安裝更新的說明檔。 - 如果
Save-Help
找不到模組的更新說明檔,或找不到指定語言的更新說明檔,它會以無訊息方式繼續,而不會顯示錯誤訊息。 若要查看命令儲存的檔案,請指定 Verbose 參數。 - 模組是可更新說明的最小單位。 您無法儲存特定 Cmdlet 的說明,僅適用於模組中的所有 Cmdlet。 若要尋找包含特定 Cmdlet 的模組,請使用 ModuleName 屬性與
Get-Command
Cmdlet,例如(Get-Command \<cmdlet-name\>).ModuleName
-
Save-Help
支援所有模組和核心 PowerShell 嵌入式管理單元。它不支援任何其他嵌入式管理單元。 -
Update-Help
和Save-Help
Cmdlet 會使用下列埠來下載說明檔:HTTP 的埠 80 和 HTTPS 的埠 443。 - Windows 預安裝環境 (Windows PE) 不支援
Update-Help
和Save-Help
Cmdlet。