Get-SqlErrorLog
SQL Server エラー ログを取得します。
構文
Get-SqlErrorLog
[-Timespan <TimeSpan>]
[-Before <DateTime>]
[-After <DateTime>]
[-Since <SinceType>]
[-Ascending]
[[-Path] <String[]>]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<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>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
Get-SqlErrorLog
[-Timespan <TimeSpan>]
[-Before <DateTime>]
[-After <DateTime>]
[-Since <SinceType>]
[-Ascending]
[-InputObject] <Server[]>
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-ProgressAction <ActionPreference>]
[<CommonParameters>]
説明
Get-SqlErrorLog コマンドレットは、SQL Server エラー ログを取得します。
このコマンドレットは、エラー ログを取得するための次の操作モードをサポートしています。
- SQL Server のインスタンスを渡します。
- SQL Server インスタンスの Path パラメーターを指定します。
- 有効なコンテキストでコマンドレットを呼び出します。
例
例 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
ユーザー/パスワードまたは Windows 認証の代わりに、SQL Server に対する認証に使用されるアクセス トークン。
これは、たとえば、Service Principal
または Managed Identity
を使用して SQL Azure DB
と SQL Azure Managed Instance
に接続するために使用できます。
使用するパラメーターには、トークンを表す文字列、または Get-AzAccessToken -ResourceUrl https://database.windows.net
を実行して返される PSAccessToken
オブジェクトを指定できます。
このパラメーターは、モジュールの v22 の新機能です。
型: | PSObject |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-After
このコマンドレットは、指定された時刻以降に生成されたエラー ログのみを取得することを指定します。
Before パラメーターを指定した場合、このコマンドレットは、指定された前に生成されたすべてのエラー ログを取得します。
Since パラメーターまたは Timespan パラメーターを使用する場合は、このパラメーターを指定しないでください。
形式は、.Net System.DataTime.Parse() の規則に従って定義されます。
型: | DateTime |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Ascending
コマンドレットがエラー ログのコレクションをログの日付順に並べ替える方法を示します。 このパラメーターを指定しない場合、コマンドレットはエラー ログを降順に並べ替えます。
このコマンドレットが複数のソースのエラー ログを取得すると、並べ替えは同じソースのすべてのエラー ログに適用されます。 このコマンドレットが取得するログは、最初にソース別にグループ化され、次にログ日付で並べ替えられます。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Before
このコマンドレットは、指定された時刻より前に生成されたエラー ログのみを取得することを指定します。
After パラメーターを指定した場合、コマンドレットは既定で now に設定されます。つまり、コマンドレットは、このパラメーターに対して指定した後に生成されたすべてのエラー ログを現在の時刻まで取得します。
Since パラメーターまたは Timespan パラメーターを使用する場合は、このパラメーターの値を指定しないでください。 この形式は、.Net System.Datatime.Parse() の規則に従って定義されます。
型: | DateTime |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ConnectionTimeout
タイムアウトエラーが発生するまでのサーバー接続を待機する秒数を指定します。 タイムアウト値は、0 から 65534 までの整数である必要があります。 0 を指定した場合、接続試行はタイムアウトになりません。
型: | Int32 |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Credential
この操作を実行する権限を持つ SQL Server ログインの資格情報を指定するために使用する PSCredential オブジェクトを指定します。
型: | PSCredential |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Encrypt
SQL Server に接続するときに使用する暗号化の種類。
この値は、Microsoft.Data.SqlClient ドライバーの SqlConnection オブジェクトの Encrypt
プロパティ SqlConnectionEncryptOption
にマップされます。
モジュールの v22 では、既定値は Optional
です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "必須" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | String |
指定可能な値: | Mandatory, Optional, Strict |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-HostNameInCertificate
SQL Server TLS/SSL 証明書の検証に使用するホスト名。 SQL Server インスタンスで Force Encryption が有効になっていて、ホスト名/短縮名を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっている SQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-InputObject
このコマンドレットがログを取得するターゲット インスタンスのサーバー オブジェクトを配列として指定します。
型: | Server[] |
配置: | 1 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Path
このコマンドレットが操作を実行する SQL Server のインスタンスへのパスを配列として指定します。 このパラメーターの値を指定しない場合、コマンドレットは現在の作業場所を使用します。
型: | String[] |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ProgressAction
スクリプト、コマンドレット、またはプロバイダーによって生成された進行状況の更新 (Write-Progress コマンドレットによって生成された進行状況バーなど) に対する PowerShell の応答方法を決定します。 Write-Progress コマンドレットは、コマンドの状態を示す進行状況バーを作成します。
型: | ActionPreference |
Aliases: | proga |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-ServerInstance
SQL Server のインスタンスの名前を配列として指定します。 既定のインスタンスの場合は、コンピューター名 MyComputer のみを指定します。 名前付きインスタンスの場合は、ComputerName\InstanceName という形式を使用します。
型: | String[] |
配置: | 1 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Since
Timespan パラメーターの省略形を指定します。
After または Before パラメーターを使用する場合は、このパラメーターを指定しないでください。
このパラメーターに使用できる値は次のとおりです。
- 午前 0 時 (午前 0 時より後に生成されたすべてのログを取得します)
- 昨日 (過去 24 時間以内に生成されたすべてのログを取得します)。
- LastWeek (過去 1 週間に生成されたすべてのログを取得します)
- LastMonth (先月に生成されたすべてのログを取得します)
型: | SinceType |
指定可能な値: | Midnight, Yesterday, LastWeek, LastMonth |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Timespan
このコマンドレットが期間外のエラー ログから除外する TimeSpan オブジェクトを指定します。
このパラメーターの形式は d.HH:mm:ss です。
このパラメーターは、Since、After、Before パラメーターを使用する場合は無視されます。
型: | TimeSpan |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-TrustServerCertificate
信頼を検証するために証明書チェーンのウォークをバイパスしながらチャネルを暗号化するかどうかを示します。
モジュールの v22 では、既定値は $true
です (v21 との互換性のため)。 モジュールの v23 以降では、既定値は "$false" になり、既存のスクリプトに重大な変更が生じる可能性があります。
このパラメーターは、モジュールの v22 の新機能です。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
System.String[]
Microsoft.SqlServer.Management.Smo.Server[]