共用方式為


Test-SqlAvailabilityGroup

評估可用性群組的健康情況。

語法

ByPath (預設值)

Test-SqlAvailabilityGroup
    [[-Path] <String[]>]
    [-ShowPolicyDetails]
    [-AllowUserPolicies]
    [-NoRefresh]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

ByObject

Test-SqlAvailabilityGroup
    [-InputObject] <AvailabilityGroup[]>
    [-ShowPolicyDetails]
    [-AllowUserPolicies]
    [-NoRefresh]
    [-AccessToken <PSObject>]
    [-TrustServerCertificate]
    [-HostNameInCertificate <String>]
    [-Encrypt <String>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Test-SqlAvailabilityGroup Cmdlet 會評估可用性群組的健康情況。 此 Cmdlet 會評估 SQL Server 原則式管理原則。 若要執行此 Cmdlet,您必須具有 CONNECTVIEW SERVER STATEVIEW ANY DEFINITION 用戶權力。

Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.

範例

範例 1:評估可用性群組的健康情況

PS C:\> Test-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\Server\InstanceName\AvailabilityGroups\MainAG"

此命令會評估名為 MainAG的可用性群組健康情況。 命令會傳回摘要。

範例 2:評估所有可用性群組的健康情況

PS C:\> Get-ChildItem "SQLSERVER:\Sql\Server\InstanceName\AvailabilityGroups" | Test-SqlAvailabilityGroup

此命令會取得 SQLSERVER: 提供者中指定位置中具有可用性複本的所有可用性群組。 命令會使用管線運算符將它們傳遞至目前的 Cmdlet。 該 Cmdlet 會評估每個可用性群組的健康情況。

範例 3:顯示可用性群組之每個原則的結果

PS C:\> Test-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\Server\InstanceName\AvailabilityGroups\MainAG" -ShowPolicyDetails

此命令會評估名為 MainAG的可用性群組健康情況。 此命令會指定 ShowPolicyDetails 參數。 因此,它會顯示所執行之每個原則式管理原則的評估結果。

範例 4:顯示可用性群組使用者定義原則的結果

PS C:\> Test-SqlAvailabilityGroup -Path "SQLSERVER:\Sql\Server\InstanceName\AvailabilityGroups\MainAG" -AllowUserPolicies

此命令會評估名為 MainAG的可用性群組健康情況。 此命令包含此評估中的使用者定義原則。

範例 5:取得具有錯誤狀態的群組

PS C:\> Get-ChildItem "SQLSERVER:\Sql\Server\InstanceName\AvailabilityGroups" | Test-SqlAvailabilityGroup | Where-Object { $_.HealthState -eq "Error" }

此命令會取得 SQLSERVER: 提供者中指定位置中具有可用性複本的所有可用性群組。 命令會使用管線運算符將它們傳遞至目前的 Cmdlet。 該 Cmdlet 會評估每個可用性群組的健康情況。 此命令會將這些結果傳遞至 Where-Object Cmdlet,此 Cmdlet 會根據 HealthState 屬性傳回結果。

參數

-AccessToken

用來向 SQL Server 驗證的存取令牌,作為使用者/密碼或 Windows 驗證的替代方案。

例如,這可以用來連接到 SQL Azure DB 或使用 SQL Azure Managed InstanceService PrincipalManaged Identity (請參閱此頁面底部的參考)

在常見案例中,此參數會以類似的內容 (Get-AzAccessToken -ResourceUrl https://database.windows.net).Token 取得(需要 Az.Accounts 模組)

參數的類型可以是 string (純文本令牌) 或 SecureString (加密的令牌,如較新版本的 Get-AzAccessToken Cmdlet 所傳回。

參數屬性

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

參數集

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

-AllowUserPolicies

指出此 Cmdlet 會測試 AlwaysOn 可用性群組的原則類別中找到的用戶原則。

參數屬性

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

參數集

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

-Confirm

在執行 Cmdlet 之前,提示您進行確認。

參數屬性

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

參數集

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

-Encrypt

線上到 SQL Server 時要使用的加密類型。

此值會對應至 Encrypt Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 屬性 SqlConnectionEncryptOption

在模組的 v22 中,預設值為 Optional (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 「強制」,這可能會為現有的腳本建立重大變更。

此參數是模組 v22 的新功能。

參數屬性

類型:String
預設值:None
接受的值:Mandatory, Optional, Strict
支援萬用字元:False
不要顯示:False

參數集

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

-HostNameInCertificate

用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果您的 SQL Server 實例已啟用強制加密,而且您想要使用主機名/shortname 連線到實例,則必須傳遞此參數。 如果省略此參數,則必須將完整功能變數名稱 (FQDN) 傳遞至 -ServerInstance 才能連線到啟用強制加密的 SQL Server 實例。

此參數是模組 v22 的新功能。

參數屬性

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

參數集

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

-InputObject

將可用性群組的陣列指定為 AvailabilityGroup 物件。 此 Cmdlet 會評估此參數所指定之可用性群組的健康情況。

參數屬性

類型:

AvailabilityGroup[]

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

參數集

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

-NoRefresh

表示不會重新整理 PathInputObject 參數所指定的物件。

參數屬性

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

參數集

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

-Path

指定此 Cmdlet 評估的可用性群組路徑。 如果您未指定此參數,此 Cmdlet 會使用目前的工作位置。

參數屬性

類型:

String[]

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

參數集

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

-ShowPolicyDetails

指出此 Cmdlet 會顯示其所執行之每個原則評估的結果。 Cmdlet 會針對每個原則評估傳回一個物件。 每個原則物件都包含評估的結果。 這項資訊包括是否傳遞原則、原則名稱和原則類別目錄。

參數屬性

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

參數集

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

-TrustServerCertificate

指出通道是否會在略過憑證鏈結以驗證信任時加密。

在模組的 v22 中,預設值為 $true (為了與 v21 相容)。 在模組的 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。

此參數是模組 v22 的新功能。

參數屬性

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

參數集

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

-WhatIf

顯示 Cmdlet 執行時會發生什麼事。 指令未執行。

參數屬性

類型: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

輸入

Microsoft.SqlServer.Management.Smo.AvailabilityGroup