SqlErrorLogFile-klasse

Van toepassing op:SQL Server

Biedt eigenschappen om informatie over een SQL Server-logbestand te bekijken.

Syntax

class SQLErrorLogFile
{
    uint32ArchiveNumber;
    stringInstanceName;
    datetimeLastModified;
    uint32LogFileSize;
    stringName;
};

Eigenschappen

De SQLErrorLogFile-klasse definieert de volgende eigenschappen.

Property Description
ArchiveNumber Gegevenstype: uint32

Toegangstype: Alleen-lezen

Het archiefnummer voor het logbestand.
Instantienaam Gegevenstype: tekenreeks

Toegangstype: Alleen-lezen

Kwalificaties: Sleutel

De naam van de instantie van SQL Server waar het logbestand zich bevindt.
LaatstGewijzigd Gegevenstype: datum/tijd-

Toegangstype: Alleen-lezen

De datum waarop het logbestand voor het laatst is gewijzigd.
LogFileSize Gegevenstype: uint32

Toegangstype: Alleen-lezen

De logbestandsgrootte, in bytes.
Naam Gegevenstype: tekenreeks

Toegangstype: Alleen-lezen

Kwalificaties: Sleutel

De naam van het logbestand.

Remarks

Type Naam
MOF - sqlmgmprovider.mof(SQL Server 2022 (16.x) en latere versies)
- sqlmgmproviderxpsp2up.mof(SQL Server 2019 (15.x) en eerdere versies)
DLL sqlmgmprovider.dll
Namespace \root\Microsoft\SqlServer\ComputerManagement10

Example

Het volgende voorbeeld haalt informatie op over alle SQL Server-logbestanden op een gespecificeerde instantie van SQL Server. Om het voorbeeld uit te voeren, vervang <Instance_Name> door de naam van de instantie, bijvoorbeeld '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

Comments

Wanneer InstanceName niet wordt gegeven in de WQL-instructie, geeft de query informatie terug voor de standaardinstantie. Bijvoorbeeld, de volgende WQL-instructie geeft informatie terug over alle logbestanden van de standaardinstantie (MSSQLSERVER).

"SELECT * FROM SqlErrorLogFile"

Security

Om via WMI verbinding te maken met een SQL Server-logbestand, moet je de volgende rechten hebben op zowel de lokale als de externe computer:

  • Lees toegang tot de Root\Microsoft\SqlServer\ComputerManagement10 WMI-naamruimte. Standaard heeft iedereen leesrechten via de permissie 'Account inschakelen'.

    Note

    Voor informatie over hoe je WMI-rechten kunt verifiëren, zie het sectie Beveiliging van het onderwerp Bekijk offline logbestanden.

  • Lees toestemming naar de map die de foutlogboeken bevat. Standaard bevinden de foutlogboeken zich in het volgende pad (waarbij <Drive> de schijf vertegenwoordigt waar je SQL Server hebt geïnstalleerd en <InstanceName> de naam is van de instantie van SQL Server):

    <Schijf>: Programmabestanden\Microsoft SQL Server\MSSQL11.<InstanceName>\MSSQL\Log

Als je via een firewall verbinding maakt, zorg er dan voor dat er een uitzondering is ingesteld in de firewall voor WMI op externe doelcomputers. Voor meer informatie, zie Verbinding maken met WMI op afstand vanaf Windows Vista.