次の方法で共有


SqlErrorLogEvent クラス

適用対象: SQL Server

指定した SQL Server ログ ファイル内のイベントを表示するためのプロパティを提供します。

構文

class SQLErrorLogEvent
{
    stringFileName;
    stringInstanceName;
    datetimeLogDate;
    stringMessage;
    stringProcessInfo;
};

プロパティ

SQLErrorLogEvent クラスは、次のプロパティを定義します。

プロパティ 説明
FileName データ型: string

アクセスの種類: 読み取り専用

エラー ログ ファイルの名前です。
InstanceName データ型: string

アクセスの種類: 読み取り専用

修飾子: キー

ログ ファイルが存在する SQL Server のインスタンスの名前。
LogDate データ型: datetime

アクセスの種類: 読み取り専用

修飾子: キー

イベントがログ ファイルに記録された日時。
メッセージ データ型: string

アクセスの種類: 読み取り専用

イベントのメッセージ。
ProcessInfo データ型: string

アクセスの種類: 読み取り専用

イベントのソース サーバー プロセス ID (SPID) に関する情報。

解説

Type Name
MOF - sqlmgmprovider.mof (SQL Server 2022 (16.x) 以降のバージョン)
- sqlmgmproviderxpsp2up.mof (SQL Server 2019 (15.x) 以前のバージョン)
DLL sqlmgmprovider.dll
名前空間 \root\Microsoft\SqlServer\ComputerManagement10

次の例では、指定したログ ファイルに記録されたすべてのイベントの値を取得する方法を示します。 この例を実行するには、 <Instance_Name> を SQL Server のインスタンスの名前 ("Instance1" など) に置き換え、'File_Name' をエラー ログ ファイルの名前 ("ERRORLOG.1" など) に置き換えます。

on error resume next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\MICROSOFT\SqlServer\ComputerManagement10")
set logEvents = objWmiService.ExecQuery("SELECT * FROM SqlErrorLogEvent WHERE InstanceName = '<Instance_Name>' AND FileName = 'File_Name'")
  
For Each logEvent in logEvents
WScript.Echo "Instance Name: " & logEvent.InstanceName & vbNewLine _
    & "Log Date: " & logEvent.LogDate & vbNewLine _
    & "Log File Name: " & logEvent.FileName & vbNewLine _
    & "Process Info: " & logEvent.ProcessInfo & vbNewLine _
    & "Message: " & logEvent.Message & vbNewLine _
  
Next

Comments

WQL ステートメントで InstanceName または FileName が指定されていない場合、クエリは既定のインスタンスと現在の SQL Server ログ ファイルの情報を返します。 たとえば、次の WQL ステートメントは、既定のインスタンス (MSSQLSERVER) 上の現在のログ ファイル (ERRORLOG) からすべてのログ イベントを返します。

"SELECT * FROM SqlErrorLogEvent"

セキュリティ

WMI 経由で SQL Server ログ ファイルに接続するには、ローカル コンピューターとリモート コンピューターの両方で次のアクセス許可が必要です。

  • Root\Microsoft\SqlServer\ComputerManagement10 WMI 名前空間への読み取りアクセス。 既定では、すべてのユーザーがアカウントの有効化権限による読み取りアクセスを持ちます。

  • エラー ログを格納したフォルダーへの読み取り権限。 既定では、エラー ログは次のパス ( <Drive> は SQL Server をインストールしたドライブを表し、 <InstanceName> は SQL Server のインスタンスの名前です)。

    <Drive>:\Program Files\Microsoft SQL Server\MSSQL13 .<InstanceName>\MSSQL\Log

ファイアウォール経由で接続している場合は、リモート ターゲット コンピューター上の WMI のファイアウォールで例外が設定されていることを確認します。 詳細については、「 Windows Vista からリモートで WMI に接続するを参照してください。

関連項目