Save-Help

下載並儲存最新的說明檔至檔案系統目錄。

Syntax

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

Cmdlet 會 Save-Help 下載 PowerShell 模組的最新說明檔,並將其儲存至您指定的目錄。 此功能可讓您更新無法存取因特網之電腦上的說明檔,並讓您更輕鬆地更新多部計算機上的說明檔。

在 Windows PowerShell 3.0 中, Save-Help 僅適用於安裝在本機電腦上的模組。 雖然可以從遠端電腦匯入模組,或使用 PowerShell 遠端處理從遠端電腦取得 PSModuleInfo 物件的參考,但 HelpInfoUri 屬性並未保留,而且Save-Help不適用於遠端模組說明。

在 Windows PowerShell 4.0 中, HelpInfoUri 屬性會透過 PowerShell 遠端功能保留,以便 Save-Help 針對安裝在遠端電腦上的模塊運作。 您也可以在沒有因特網存取的計算機上執行Export-Clixml,將 PSModuleInfo 物件儲存到磁碟或卸載式媒體、匯入具有因特網存取權之計算機上的對象,然後在 PSModuleInfo 物件上執行Save-Help。 儲存的說明可以使用抽取式儲存媒體,例如 USB 磁碟驅動器,將已儲存的說明傳輸至遠端電腦。 執行 ,即可在遠端電腦上安裝 Update-Help說明。 此程式可用來在沒有任何網路存取權的計算機上安裝說明。

若要安裝儲存的說明檔,請執行 Update-Help Cmdlet。 新增其 SourcePath 參數,以指定儲存說明檔的資料夾。

如果沒有參數,Save-Help命令會下載會話中所有模組的最新說明,以及安裝於 PSModulePath 環境變數所列位置之電腦上的模組。 此動作會略過不支援可更新說明且沒有警告的模組。

Cmdlet Save-Help 會檢查目的地資料夾中任何說明檔的版本。 如果有較新的說明檔可用,此 Cmdlet 會從因特網下載最新的說明檔,然後將它們儲存在資料夾中。 Cmdlet Save-Help 的運作方式就像 Update-Help Cmdlet,不同之處在於它會儲存下載的封包 (.cab) 檔案,而不是從封包檔案擷取說明檔,並將其安裝在計算機上。

每個模組的已儲存說明包含一個說明資訊 (HelpInfo XML) 檔案,以及每個 UI 文化特性的說明檔一個封包 (.cab) 檔案。 您不需要從封包檔案擷取說明檔。 Cmdlet 會 Update-Help 擷取說明檔、驗證 XML 的安全性,然後在模組資料夾的語言特定子資料夾中安裝說明檔和說明資訊檔。

若要將模組的說明檔儲存在 PowerShell 安裝資料夾中 ($pshome\Modules),請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 您必須是計算機上 管理員 istrators 群組的成員,才能下載這些模組的說明檔。

此 Cmdlet 已在 Windows PowerShell 3.0 中引進。

範例

範例 1:儲存 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"

此範例示範三種不同的方式Save-Help,可用來從因特網連線的用戶端計算機儲存 DhcpServer 模組的說明,而不需在本機計算機上安裝 DhcpServer 模組或 DHCP 伺服器角色。

範例 2:安裝 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"

此範例示範如何在沒有因特網存取的計算機上,安裝 您在 DhcpServer 模組的範例 1 中儲存的說明。

範例 3:儲存所有模組的說明

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

此命令會針對本機電腦上的 Windows UI 文化特性集中的所有模組下載最新的說明檔。 它會將說明檔儲存在 \\Server01\Fileshare01 資料夾中。

範例 4:儲存計算機上模組的說明

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

此命令會下載 ServerManager 模組的最新說明檔,然後將它們儲存在 \\Server01\Fileshare01 資料夾中。

當計算機上安裝模組時,即使模組未匯入目前的會話,您也可以將模組名稱輸入為Module 參數的值

此命令會 使用 Credential 參數來提供有權寫入檔案共用的用戶認證。

範例 5:在不同的計算機上儲存模組的說明

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

這些命令會下載 CustomSQL 模組的最新說明檔,並將其儲存在 \\Server01\Fileshare01 資料夾中。

因為計算機上未安裝 CustomSQL 模組,序列包含Invoke-Command命令,該命令會從 Server02 計算機取得 CustomSQL 模組的模組物件,然後將模組物件管線傳送至 Save-Help Cmdlet。

當計算機未安裝模組時, Save-Help 需要模組物件,其中包含最新說明檔位置的相關信息。

範例 6:以多種語言儲存模組的說明

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

此命令會將核心 PowerShell 模組的說明儲存在四種不同的 UI 文化特性中。 這些地區設定的語言套件不需要安裝在計算機上。

Save-Help 只有在模組擁有者在因特網上提供翻譯的檔案時,才能下載不同UI文化特性中模組的說明檔。

範例 7:每天儲存一次以上的說明

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

此命令會儲存電腦上所安裝之所有模組的說明。 命令會 指定 Force 參數來覆寫規則,以防止 Save-Help Cmdlet 在每個 24 小時期間多次下載說明。

Force 參數也會覆寫 1 GB 的限制,並規避版本檢查。 因此,即使版本不晚於目的地資料夾中的版本,您仍可下載檔。

命令會 Save-Help 使用 Cmdlet 來下載說明檔,並將說明檔儲存至指定的資料夾。 當您必須每天執行Save-Help一次以上的命令時,需要 Force 參數。

參數

-Credential

指定用戶認證。 此 Cmdlet 會使用有權存取 DestinationPath 參數所指定文件系統位置的使用者認證來執行命令。 只有在命令中使用 DestinationPath 或 LiteralPath 參數時,此參數才有效。

此參數可讓您在遠端電腦上執行Save-Help使用 DestinationPath 參數的命令。 藉由提供明確的認證,您可以在遠端計算機上執行 命令,並在第三部計算機上存取檔案共用,而不會發生拒絕存取錯誤或使用 CredSSP 驗證來委派認證。

輸入用戶名稱,例如User01或Domain01\User01,或輸入 Cmdlet 所產生的 Get-Credential PSCredential 物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。

認證會儲存在 PSCredential 物件中,密碼會儲存為 SecureString

注意

如需 SecureString 數據保護的詳細資訊,請參閱 SecureString 有多安全?

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

-DestinationPath

指定儲存說明檔的資料夾路徑。 請勿指定檔名或擴展名。

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

-Force

表示此 Cmdlet 不會遵循每天一次的限制、略過版本檢查,以及下載超過 1 GB 限制的檔案。

如果沒有此參數,每個模組每 24 小時只允許一個 Save-Help 命令,每個模組的下載量限製為 1 GB 的未壓縮內容,而模組的說明檔只有在比計算機上的檔案還新時才會安裝。

每天限制一次可保護裝載說明檔的伺服器,並讓您實際將命令新增 Save-Help 至 PowerShell 配置檔。

若要在沒有 Force 參數的情況下,在多個 UI 文化特性中儲存模組的說明,請在相同的命令中包含所有 UI 文化特性,例如: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

此值可以是模組名稱、完整模組規格或模組檔案的路徑。

當值為路徑時,路徑可以是完整或相對路徑。 相對於包含 using 語句的腳本,會解析相對路徑。

當值是名稱或模組規格時,PowerShell 會 搜尋 PSModulePath 中的指定模組。

模組規格是具有下列索引鍵的哈希表。

  • ModuleName - 必要 指定模組名稱。
  • GUID - 選擇性 指定模組的 GUID。
  • 也必須指定下列三個索引鍵中的至少一個。
    • ModuleVersion - 指定模組的最低可接受的版本。
    • MaximumVersion - 指定模組的最大可接受的版本。
    • RequiredVersion - 指定模組的確切必要版本。 這無法與其他版本金鑰搭配使用。

您無法在與 Module 參數相同的命令中指定 FullyQualifiedModule 參數。 這兩個參數互斥。

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

-LiteralPath

指定目的地資料夾的路徑。 與 DestinationPath 參數的值不同,LiteralPath 參數的值會與類型完全相同。 不會將任何字元解譯為通配符。 如果路徑包含逸出字元,請以單引弧括住它。 單引號會告知PowerShell不要將任何字元解譯為逸出序列。

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

-Module

指定此 Cmdlet 下載說明的模組。 在逗號分隔清單中,或在每一行有一個模組名稱的檔案中,輸入一或多個模組名稱或名稱分頁。 允許通配符。 您也可以使用管線將 Get-Module 模組物件從 Cmdlet 傳送至 Save-Help

根據預設,Save-Help會下載支援可更新說明的所有模組說明,並安裝在 PSModulePath 環境變數所列位置的本機計算機上。

若要儲存電腦上未安裝之模組的說明,請在遠端電腦上執行 Get-Module 命令。 然後使用管線將產生的模組對象傳送至 Save-Help Cmdlet,或將模組物件提交為 ModuleInputObject 參數的值

如果您指定的模組已安裝在電腦上,您可以輸入模組名稱或模組物件。 如果模組未安裝在計算機上,您必須輸入模組物件,例如 Cmdlet 所傳回的 Get-Module 模組物件。

Cmdlet 的 Save-Help Module 參數不接受模組檔案或模組指令清單檔的完整路徑。 若要儲存不在 PSModulePath 位置的模組說明,請在執行Save-Help命令之前,將模組匯入目前的會話。

值 “*” (all) 會嘗試更新計算機上所安裝之所有模組的說明。 這包括不支援可更新說明的模組。 當命令遇到不支援可更新說明的模組時,這個值可能會產生錯誤。

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

-Scope

此參數不會在這個 Cmdlet 中執行任何動作。

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

-UICulture

指定此 Cmdlet 取得更新說明檔的 UI 文化特性值。 輸入一或多個語言代碼,例如 es-ES、包含文化特性物件的變數,或取得文化特性物件的命令,例如 Get-CultureGet-UICulture 命令。 不允許通配符。

根據預設, Save-Help 取得作業系統或其後援文化特性所設定UI文化特性中的說明檔。 如果您指定 UICulture 參數, Save-Help 則只會尋找指定語言的說明。

從 PowerShell 7.4 開始,您可以使用部分語言代碼,例如 en 下載任何區域的英文說明。

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

-UseDefaultCredentials

指出此 Cmdlet 會執行命令,包括 Web 下載,以及目前用戶的認證。 根據預設,命令會執行,而不需明確認證。

只有當 Web 下載使用 NTLM、交涉或 Kerberos 型驗證時,此參數才有效。

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

輸入

PSModuleInfo

您可以使用管線將模組物件傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

  • 若要在 [$pshome\Modules] 資料夾中儲存模組的說明,請使用 [以系統管理員身分執行] 選項啟動 PowerShell。 只有電腦上的 管理員 istrators 群組成員可以下載 $pshome\Modules 資料夾中模組的說明。
  • 每個模組的已儲存說明包含一個說明資訊 (HelpInfo XML) 檔案,以及每個 UI 文化特性的說明檔一個封包 (.cab) 檔案。 您不需要從封包檔案擷取說明檔。 Cmdlet 會 Update-Help 擷取說明檔、驗證 XML,然後在模組資料夾的語言特定子資料夾中安裝說明檔和說明資訊檔。
  • Cmdlet Save-Help 可以儲存電腦上未安裝之模組的說明。 不過,由於說明檔會安裝在模組資料夾中, Update-Help 因此 Cmdlet 只能針對電腦上安裝的模組安裝更新的說明檔。
  • 如果 Save-Help 找不到模組的更新說明檔,或找不到指定語言的更新說明檔,它會以無訊息方式繼續,而不會顯示錯誤訊息。 若要查看命令儲存的檔案,請指定 Verbose 參數。
  • 模組是可更新說明的最小單位。 您無法儲存特定 Cmdlet 的說明,僅適用於模組中的所有 Cmdlet。 若要尋找包含特定 Cmdlet 的模組,請使用 ModuleName 屬性與 Get-Command Cmdlet,例如 (Get-Command \<cmdlet-name\>).ModuleName
  • Save-Help 支援所有模組和核心 PowerShell 嵌入式管理單元。它不支援任何其他嵌入式管理單元。
  • Update-HelpSave-Help Cmdlet 會使用下列埠來下載說明檔:HTTP 的埠 80,以及 HTTPS 的埠 443。
  • Update-Help Windows 預安裝環境 (Windows PE) 不支援 和 Save-Help Cmdlet。