Get-SqlErrorLog
取得 SQL Server 錯誤記錄檔。
Syntax
Get-SqlErrorLog
[-Timespan <TimeSpan>]
[-Before <DateTime>]
[-After <DateTime>]
[-Since <SinceType>]
[-Ascending]
[[-Path] <String[]>]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Get-SqlErrorLog
[-Timespan <TimeSpan>]
[-Before <DateTime>]
[-After <DateTime>]
[-Since <SinceType>]
[-Ascending]
[[-ServerInstance] <String[]>]
[-Credential <PSCredential>]
[-ConnectionTimeout <Int32>]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Get-SqlErrorLog
[-Timespan <TimeSpan>]
[-Before <DateTime>]
[-After <DateTime>]
[-Since <SinceType>]
[-Ascending]
[-InputObject] <Server[]>
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[<CommonParameters>]
Description
Get-SqlErrorLog Cmdlet 會取得 SQL Server 錯誤記錄。
此 Cmdlet 支援下列作業模式,以取得錯誤記錄檔:
- 傳遞 SQL Server的實例。
- 指定 SQL Server 實例的Path參數。
- 在有效的內容中叫用 Cmdlet。
範例
範例 1:取得在特定時間範圍內產生的所有記錄,該時間範圍具有搜尋單字
PS C:\> CD SQLSERVER:\SQL\MyServer\MyInstance
PS SQLSERVER:\SQL\MyServer\MyInstance> Get-SqlErrorLog -Since Yesterday | Where-Object { $_.Text -match 'Error' } | Format-Table
Date Source Text ArchiveNo ServerInstance
---- ------ ---- --------- --------------
6/16/2016 6:04:20 PM Logon Error: 17828, Severity: 20, State: 4. 0 MyServer\MyInstance
第一個命令會將目錄變更為 SQL Server 實例。
範例 2:取得在特定時間範圍內產生的所有記錄
PS C:\> CD SQLSERVER:\SQL\MyServer\MyInstance
PS SQLSERVER:\SQL\MyServer\MyInstance> Get-SqlErrorLog -Timespan '05:30:00' | Format-Table
Date Source Text
---- ------ ----
6/17/2016 12:00:00 AM spid26s This instance of SQL Server has been using a process ID of 21520 since 6/10/2016 3:56:...
6/16/2016 6:04:20 PM Logon The prelogin packet used to open the connection is structurally invalid; the connectio...
6/16/2016 6:04:20 PM Logon Error: 17828, Severity: 20, State: 4.
第一個命令會將目錄變更為 SQL Server 實例。
範例 3:取得在特定時間範圍內產生的所有記錄,並排序遞增和分組
PS C:\> CD SQLSERVER:\SQL\MyServer
PS SQLSERVER:\SQL\MyServer> ls | Get-SqlErrorLog -After '2016-05-10' -Before '2016-06-18' -Ascending | ? { $_.Text -match 'Login failed' } | Group-Object -Property ServerInstance
Count Name Group
----- ---- -----
1 MyServer {{ Date = 6/17/2016 2:00:04 AM, Source = Logon, Text = Login failed for user ...
2 MyServer\INST1 {{ Date = 6/10/2016 3:58:46 PM, Source = Logon, Text = Login failed for user
第一個命令會將目錄變更為 SQL Server 實例。
參數
-AccessToken
用來驗證 SQL Server 的存取令牌,作為使用者/密碼或 Windows 驗證的替代方案。
例如,這可用來連線至 SQL Azure DB
或使用 或使用 SQL Azure Managed Instance
Service Principal
或 Managed Identity
。
要使用的參數可以是字串,代表令牌或 PSAccessToken
執行 所傳 Get-AzAccessToken -ResourceUrl https://database.windows.net
回的物件。
這個參數是模組 v22 的新功能。
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-After
指定這個 Cmdlet 只會在指定時間之後產生錯誤記錄。
如果您指定 Before 參數,則此 Cmdlet 會取得在指定之前產生的所有錯誤記錄檔。
如果您想要使用 「自」或「時間範圍」參數,請勿指定此參數。
格式會根據 .Net System.DataTime.Parse () 的規則來定義。
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Ascending
表示 Cmdlet 會依記錄日期以遞增順序排序錯誤記錄的集合。 如果您未指定此參數,Cmdlet 會以遞減順序排序錯誤記錄。
當此 Cmdlet 取得多個來源的錯誤記錄時,排序會套用至相同來源的所有錯誤記錄。 此 Cmdlet 取得的記錄會先依來源分組,然後依記錄日期排序。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Before
指定此 Cmdlet 只會在指定時間之前產生錯誤記錄。
如果指定 After 參數,Cmdlet 預設為現在,這表示 Cmdlet 會取得您為此參數指定的內容之後所產生的所有錯誤記錄檔,直到目前時間為止。
如果您想要使用 「自」或「時間範圍」參數,請勿指定此參數的值。 格式會根據 .Net System.Datatime.Parse () 的規則來定義。
Type: | DateTime |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ConnectionTimeout
指定在逾時失敗之前等候伺服器連線的秒數。 逾時值必須是介於 0 到 65534 之間的整數。 如果指定了 0,連線嘗試就不會逾時。
Type: | Int32 |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
指定 PSCredential 物件,用來指定具有執行此作業許可權之 SQL Server 登入的認證。
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encrypt
線上至 SQL Server時要使用的加密類型。
這個值會對應至 Encrypt
Microsoft.Data.SqlClient 驅動程式之 SqlConnection 物件上的 屬性 SqlConnectionEncryptOption
。
在模組的 v22 中,預設值為 Optional
(,以便與 v21) 相容。 在模組 v23+ 中,預設值會是「強制」,這可能會為現有的腳本建立重大變更。
這個參數是模組 v22 的新功能。
Type: | String |
Accepted values: | Mandatory, Optional, Strict |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-HostNameInCertificate
用於驗證 SQL Server TLS/SSL 憑證的主機名稱。 如果您的 SQL Server 實例已啟用強制加密,而且您想要使用主機名/簡短名稱連線到實例,則必須傳遞此參數。 如果省略此參數,則必須將完整域名 (FQDN) 傳遞至 -ServerInstance,才能連線到啟用強制加密的 SQL Server 實例。
這個參數是模組 v22 的新功能。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
指定伺服器物件做為這個 Cmdlet 從中取得記錄的目標實例陣列。
Type: | Server[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Path
指定此 Cmdlet 執行作業之 SQL Server 實體的路徑做為陣列。 如果您未指定此參數的值,Cmdlet 會使用目前的工作位置。
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ServerInstance
指定 SQL Server 實例的名稱做為陣列。 針對預設實例,只指定計算機名稱:MyComputer。 針對具名實例,請使用 ComputerName\InstanceName 格式。
Type: | String[] |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Since
指定 Timespan 參數的縮寫。
如果您想要使用 After 或 Before 參數,請勿指定此參數。
此參數可接受的值為:
- 午夜 (會取得午夜) 之後產生的所有記錄
- 昨天 (會取得過去 24 小時內產生的所有記錄) 。
- LastWeek (取得過去一周所產生的所有記錄)
- LastMonth (取得上個月產生的所有記錄)
Type: | SinceType |
Accepted values: | Midnight, Yesterday, LastWeek, LastMonth |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Timespan
指定此 Cmdlet 會篩選出超出時間範圍的錯誤記錄檔的 TimeSpan 物件。
此參數的格式為 d.HH:mm:ss。
如果您使用 Since、After 或 Before 參數,則會忽略此參數。
Type: | TimeSpan |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-TrustServerCertificate
指出通道是否會在略過憑證鏈結以驗證信任時加密。
在模組的 v22 中,預設值為 $true
(,以便與 v21) 相容。 在模組 v23+ 中,預設值會是 『$false』,這可能會為現有的腳本建立重大變更。
這個參數是模組 v22 的新功能。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
輸入
System.String[]
Microsoft.SqlServer.Management.Smo.Server[]