SqlErrorLogEvent クラス
指定した SQL Server ログ ファイル内のイベントの表示に関するプロパティを提供します。
構文
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
プロパティ
SQLErrorLogEvent クラスは、次のプロパティを定義します。
FileName |
データ型:string アクセスの種類:読み取り専用
エラー ログ ファイルの名前です。 |
InstanceName |
データ型:string アクセスの種類:読み取り専用 修飾子:Key ログ ファイルが存在する SQL Server インスタンスの名前。 |
LogDate |
データ型:datetime アクセスの種類:読み取り専用 修飾子:Key
イベントがログ ファイルに記録された日時。 |
Message |
データ型:string アクセスの種類:読み取り専用
イベント メッセージ。 |
ProcessInfo |
データ型:string アクセスの種類:読み取り専用
イベントのソース サーバー プロセス ID (SPID) に関する情報。 |
説明
MOF |
Sqlmgmproviderxpsp2up.mof |
DLL |
Sqlmgmprovider.dll |
名前空間 |
\root\Microsoft\SqlServer\ComputerManagement10 |
使用例
次の例では、指定したログ ファイルに記録されたすべてのイベントの値を取得する方法を示します。 この例を実行するには、<Instance_Name> を 'Instance1' などの SQL Server インスタンス名に置き換え、'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
コメント
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\MSSQL11.<InstanceName>\MSSQL\Log
ファイアウォール経由で接続する場合は、接続先のリモート コンピューターのファイアウォールで WMI 用に例外が設定されていることを確認する必要があります。 詳細については、「Windows Vista 以降で WMI にリモートで接続する」を参照してください。