Save-Help

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

語法

Path (預設值)

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

LiteralPath

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

Description

指令 Save-Help 長會下載最新的 PowerShell 模組說明檔,並儲存到你指定的目錄中。 此功能允許你在無法上網的電腦上更新說明檔,並讓多台電腦的說明檔更新變得更方便。 此 Cmdlet 已在 Windows PowerShell 3.0 中引進。

從 PowerShell 4.0 Windows開始,你可以使用 Save-Help 下載安裝在遠端電腦上的模組說明檔。 也可以在沒有網路連線的電腦上儲存 PSModuleInfo 物件Export-Clixml,然後匯入有網路的電腦,然後在 Save-Help 物件上執行。 一旦你有儲存的說明文件,就可以複製到遠端電腦,並執行 Update-Help安裝。 這個流程可以用來安裝在沒有任何網路存取權的電腦上。

沒有參數時,指令 Save-Help 會下載會話中所有模組以及安裝在 PSModulePath 環境變數中某位置的模組的最新說明。 此動作會跳過不支援可更新說明的模組,且不需提前警告。

指令 Save-Help 檔會檢查目標資料夾中任何說明檔案的版本。 如果有更新的說明檔,這個指令小程式會從網路下載最新的說明檔,然後儲存在資料夾中。 Save-Help指令檔的運作方式和指令Update-Help檔一樣,只是它會儲存下載的內容,而不是解壓說明檔再安裝到電腦上。

每個模組的說明包含一個說明資訊檔案(HelpInfo XML)及一個櫃子或 ZIP 壓縮檔(.cab.zip或 ),用於存放每種語言的說明檔案。 在 Windows 上,這個指令會下載櫃子檔案。 在 Linux 和 macOS 上,這個指令會下載 ZIP 檔案。

若要將模組的說明檔儲存在 PowerShell 安裝資料夾(),$PSHOME\Modules請使用「 以管理員身份執行」選項啟動 PowerShell。 您必須是電腦管理員群組的成員,才能下載這些模組的說明檔案。

要安裝已儲存的說明檔案,請 Update-Help 使用 SourcePath 參數指定包含已儲存說明檔案的資料夾。 Update-Help 從壓縮檔中解壓說明檔案,並安裝到適當的位置。

範例

範例 1:將說明書存給 DhcpServer 模組

此範例展示了三種不同的方法,可以在Save-Help不安裝 DhcpServer 模組或 DHCP 伺服器角色的情況下,從連接網際網路的用戶端電腦儲存 DhcpServer 模組的說明。

# 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

範例四:將幫助資料存給電腦模組

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

$saveHelpSplat = @{
    Module = 'ServerManager'
    DestinationPath = '\\Server01\FileShare01'
    Credential = 'Domain01/Admin01'
}
Save-Help @saveHelpSplat

當模組安裝在電腦上時,你可以將模組名稱輸入 模組參數的 值,即使該模組沒有匯入目前的會話。

此指令使用 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:為多語言模組保留說明

此指令為四種不同 UI 文化中的核心 PowerShell 模組保留協助。 這些地區的語言包不需要安裝在電腦上。

$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

指定使用者憑證。 此指令檔會利用有權限存取 DestinationPath 參數指定檔案系統位置的使用者憑證執行指令。 此參數僅在指令中使用 DestinationPath 或 LiteralPath 參數時有效。

這個參數讓你能在遠端電腦上執行 Save-Help 使用 DestinationPath 參數的指令。 透過提供明確的憑證,你可以在遠端電腦執行指令,並在第三台電腦上存取檔案分享,而不會遇到拒絕存取錯誤,也不會使用 CredSSP 認證來委派憑證。

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

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

Note

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

參數屬性

類型:PSCredential
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-DestinationPath

指定說明檔案儲存在資料夾的路徑。 不要指定檔名或副檔名。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False
別名:路徑

參數集

Path
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Force

表示此指令檔未遵守每日一次的限制,跳過版本檢查,且下載檔案超過1 GB限制。

若無此參數,每個模組在24小時內僅允許一個 Save-Help 指令,每個模組的下載容量限制為1 GB,且說明檔案僅在模組較電腦檔案更新時才會安裝。

每天一次的限制保護了承載說明檔案的伺服器,也讓你在 PowerShell 設定檔中新增 Save-Help 指令變得實用。

若要將模組的幫助資料儲存在多個沒有 Force 參數的 UI 文化中,請在同一指令中包含所有 UI 文化,例如: Save-Help -Module PSScheduledJobs -UICulture en-US, fr-FR, pt-BR

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-FullyQualifiedModule

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

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

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

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

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

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

參數屬性

類型:

ModuleSpecification[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-LiteralPath

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

參數屬性

類型:

String[]

預設值:None
支援萬用字元:False
不要顯示:False
別名:PSPath, LP

參數集

LiteralPath
Position:Named
必要:True
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Module

指定了模組,這個 cmdlet 下載有幫助。 在逗號分隔的列表中輸入一個或多個模組名稱或名稱模式,或在每行只有一個模組名稱的檔案中。 允許使用通配符字元。 你也可以把模組物件從 Get-Module cmdlet 管道傳送到 Save-Help。

預設情況下, Save-Help 所有支援可更新說明且安裝於本地電腦、 PSModulePath 環境變數中位置的模組都會下載說明。

要為未安裝在電腦上的模組保留幫助,可以在遠端電腦上執行 Get-Module 指令。 接著將產生的模組物件管道傳送到 cmdlet, Save-Help 或是以 模組 或 輸入物件 參數的值提交模組物件。

如果你指定的模組已安裝在電腦上,你可以輸入模組名稱或模組物件。 如果模組未安裝在電腦上,你必須輸入模組物件,例如指令碼返回 Get-Module 的模組物件。

指令長的 Module 參數 Save-Help 不接受模組檔案或模組清單檔案的完整路徑。 如果要為不在 PSModulePath 位置的模組保留幫助,請先將模組匯入當前會話,再執行 Save-Help 指令。

「*」(全部)的值會嘗試更新電腦上所有已安裝模組的說明。 這包括不支援可更新說明的模組。 當指令遇到不支援 Updatable Help 的模組時,這個值可能會產生錯誤。

參數屬性

類型:

PSModuleInfo[]

預設值:None
支援萬用字元:True
不要顯示:False
別名:Name

參數集

(All)
Position:1
必要:False
來自管線的值:True
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Scope

這個參數在這個 cmdlet 裡沒有作用。

參數屬性

類型:UpdateHelpScope
預設值:None
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-UICulture

指定 UI 文化值,該 cmdlet 會因此更新說明檔。 輸入一個或多個語言代碼,例如 es-ES,一個包含文化物件的變數,或一個取得文化物件的指令,例如 a Get-Culture 或 Get-UICulture 指令。 不允許使用通配符字元。

預設情況下,會 Save-Help 獲得作業系統或其備用文化設定的說明檔案。 如果你指定 了 UICulture 參數,只會 Save-Help 尋找指定語言的幫助。

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

參數屬性

類型:

CultureInfo[]

預設值:Current UI culture
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:2
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-UseDefaultCredentials

表示此指令檔以目前使用者的憑證執行指令,包括網頁下載。 預設情況下,指令執行時不會有明確的憑證。

此參數僅在網頁下載使用 NTLM、協商或基於 Kerberos 的認證時有效。

參數屬性

類型:SwitchParameter
預設值:False
支援萬用字元:False
不要顯示:False

參數集

(All)
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

PSModuleInfo

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

輸出

None

此 Cmdlet 不會傳回任何輸出。

備註

  • 若要在 $PSHOME\Modules 資料夾中儲存模組說明,請使用以管理員身份執行選項啟動 PowerShell。 只有電腦管理員群組的成員能下載模組說明,該資料夾位於 $PSHOME\Modules 資料夾。
  • 每個模組的說明包含一個說明資訊檔案(HelpInfo XML)及一個櫃子(.cab)檔案,分別存放每個 UI 文化的說明檔案。 你不需要從櫃子檔案中解壓說明檔案。 指令 Update-Help 小程式會擷取說明檔案、驗證 XML,然後將說明檔案與說明資訊檔案安裝於模組資料夾的語言專用子資料夾中。
  • Save-Help指令檔可以為未安裝在電腦上的模組保留幫助。 然而,由於說明檔案安裝在模組資料夾中, Update-Help 指令長只能安裝已安裝在電腦上的模組的更新說明檔。
  • 如果 Save-Help 找不到模組的更新說明檔,或找不到指定語言的更新說明檔,系統會靜默繼續,不會顯示錯誤訊息。 要查看該指令儲存了哪些檔案,請指定 Verbose 參數。
  • 模組是最小的可更新幫助單位。 你不能為特定 cmdlet 存幫助,只能存模組中所有 cmdlet。 要找到包含特定 cmdlet 的模組,請使用 ModuleName 屬性與 Get-Command cmdlet,例如, (Get-Command \<cmdlet-name\>).ModuleName
  • Save-Help 支援所有模組及核心的 PowerShell snap-in。它不支援其他卡扣式。
  • Update-Help和 Save-Help cmdlets 使用以下埠碼來下載說明檔:埠 80 用於 HTTP,埠 443 用於 HTTPS。
  • Windows 預安裝環境 (Windows PE) 不支援 Update-Help 和 Save-Help Cmdlet。