Get-SqlErrorLog

SQL Serverエラー ログを取得します。

構文

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>]

説明

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の認証に使用されるアクセス トークン。

これは、たとえば、 または Managed Identityに接続SQL Azure DBして SQL Azure Managed Instance 使用するために使用Service Principalできます。

使用するパラメーターには、 を実行Get-AzAccessToken -ResourceUrl https://database.windows.netして返されるトークンまたはオブジェクトをPSAccessToken表す文字列を指定できます。

このパラメーターは、モジュールの v22 の新機能です。

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

-After

このコマンドレットは、指定された時刻以降に生成されたエラー ログのみを取得することを指定します。

Before パラメーターを指定した場合、このコマンドレットは、指定された前に生成されたすべてのエラー ログを取得します。

Since パラメーターまたは Timespan パラメーターを使用する場合は、このパラメーターを指定しないでください。

この形式は、.Net System.DataTime.Parse() の規則に従って定義されます。

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

-Ascending

コマンドレットによって、エラー ログのコレクションがログの日付順に昇順で並べ替えられていることを示します。 このパラメーターを指定しない場合、コマンドレットはエラー ログを降順に並べ替えます。

このコマンドレットが複数のソースのエラー ログを取得すると、並べ替えは同じソースのすべてのエラー ログに適用されます。 このコマンドレットが取得するログは、最初にソース別にグループ化され、ログの日付で並べ替えられます。

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

-Before

このコマンドレットは、指定された時刻より前に生成されたエラー ログのみを取得することを指定します。

After パラメーターを指定した場合、コマンドレットの既定値は now になります。つまり、コマンドレットは、このパラメーターに対して指定した後に生成されたすべてのエラー ログを現在の時刻まで取得します。

Since パラメーターまたは Timespan パラメーターを使用する場合は、このパラメーターの値を指定しないでください。 この形式は、.Net System.Datatime.Parse() の規則に従って定義されます。

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

-ConnectionTimeout

タイムアウトエラーが発生するまでのサーバー接続を待機する秒数を指定します。 タイムアウト値には、0 ~ 65,534 の範囲の整数値を指定する必要があります。 0 を指定した場合、接続の試行はタイムアウトしません。

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

-Credential

この操作を実行するアクセス許可を持つSQL Server ログインの資格情報を指定するために使用される PSCredential オブジェクトを指定します。

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 インスタンスが Force Encryption に対して有効になっており、hostname/shortname を使用してインスタンスに接続する場合は、このパラメーターを渡す必要があります。 このパラメーターを省略した場合、強制暗号化が有効になっているSQL Server インスタンスに接続するには、完全修飾ドメイン名 (FQDN) を -ServerInstance に渡す必要があります。

このパラメーターは、モジュールの v22 の新機能です。

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

-InputObject

このコマンドレットがログを取得するターゲット インスタンスのサーバー オブジェクトを配列として指定します。

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

-Path

このコマンドレットが操作を実行するSQL Serverのインスタンスへのパスを配列として指定します。 このパラメーターの値を指定しない場合、コマンドレットは現在の作業場所を使用します。

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 パラメーターを使用する場合は、このパラメーターを指定しないでください。

このパラメーターの有効値は、次のとおりです。

  • 午前 0 時 (午前 0 時以降に生成されたすべてのログを取得します)
  • 昨日 (過去 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

このコマンドレットが、期間外のエラー ログから除外する 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[]