SqlErrorLogFile クラス
SQL Server ログ ファイルの情報の表示に関するプロパティを提供します。
構文
class SQLErrorLogFile
{
uint32ArchiveNumber;
stringInstanceName;
datetimeLastModified;
uint32LogFileSize;
stringName;
};
プロパティ
SQLErrorLogFile クラスは、次のプロパティを定義します。
ArchiveNumber |
データ型: uint32 アクセスの種類: 読み取り専用
ログ ファイルのアーカイブ番号。 |
InstanceName |
データ型: string アクセスの種類: 読み取り専用 修飾子: キー
ログ ファイルが存在する SQL Server インスタンスの名前。 |
LastModified |
データ型: datetime アクセスの種類: 読み取り専用
ログ ファイルの最終変更日。 |
LogFileSize |
データ型: uint32 アクセスの種類: 読み取り専用
ログ ファイルのサイズ (バイト単位)。 |
Name |
データ型: string アクセスの種類: 読み取り専用 修飾子: キー
ログ ファイルの名前。 |
説明
MOF |
Sqlmgmprovider xpsp2up.mof |
DLL |
Sqlmgmprovider.dll |
名前空間 |
\root\Microsoft\SqlServer\ComputerManagement10 |
使用例
次の例では、指定した SQL Server インスタンス上にあるすべての SQL Server ログ ファイルに関する情報を取得します。この例を実行するには、<Instance_Name> をインスタンスの名前 ('Instance1' など) に置き換えます。
on error resume next
set strComputer = "."
set objWMIService = GetObject("winmgmts:\\.\root\Microsoft\SqlServer\ComputerManagement10")
set LogFiles = objWmiService.ExecQuery("SELECT * FROM SqlErrorLogFile WHERE InstanceName = '<Instance_Name>'")
For Each logFile in LogFiles
WScript.Echo "Instance Name: " & logFile.InstanceName & vbNewLine _
& "Log File Name: " & logFile.Name & vbNewLine _
& "Archive Number: " & logFile.ArchiveNumber & vbNewLine _
& "Log File Size: " & logFile.LogFileSize & " bytes" & vbNewLine _
& "Last Modified: " & logFile.LastModified & vbNewLine _
Next
コメント
WQL ステートメントで InstanceName が指定されていない場合、クエリは既定のインスタンスの情報を返します。 たとえば、次の WQL ステートメントは、既定のインスタンス (MSSQLSERVER) からすべてのログ ファイルに関する情報を返します。
"SELECT * FROM SqlErrorLogFile"
セキュリティ
WMI を通じて SQL Server ログ ファイルに接続するには、ローカル コンピューターとリモート コンピューターの両方で次の権限が必要です。
Root\Microsoft\SqlServer\ComputerManagement10 WMI 名前空間への読み取りアクセス。 既定では、すべてのユーザーがアカウントの有効化権限による読み取りアクセスを持ちます。
注 WMI 権限の確認方法については、「オフライン ログ ファイルの表示」の「セキュリティ」を参照してください。
エラー ログを格納したフォルダーへの読み取り権限。 既定では、エラー ログは次のパスにあります (<Drive> は SQL Server のインストール先ドライブ、<InstanceName> は SQL Server のインスタンス名です)。
<Drive>:\Program Files\Microsoft SQL Server\MSSQL11.<InstanceName>\MSSQL\Log
ファイアウォール経由で接続する場合は、接続先のリモート コンピューターのファイアウォールで WMI 用に例外が設定されていることを確認する必要があります。 詳細については、「Windows Vista 以降で WMI にリモートで接続する」を参照してください。