Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Biedt eigenschappen voor het bekijken van gebeurtenissen in een gespecificeerd SQL Server-logbestand.
Syntax
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
Eigenschappen
De SQLErrorLogEvent-klasse definieert de volgende eigenschappen.
| Property | Description |
|---|---|
| Bestandsnaam | Gegevenstype: tekenreeks Toegangstype: Alleen-lezen De naam van het foutlogbestand. |
| Instantienaam | Gegevenstype: tekenreeks Toegangstype: Alleen-lezen Kwalificaties: Sleutel De naam van de instantie van SQL Server waar het logbestand zich bevindt. |
| LogDate | Gegevenstype: datum/tijd- Toegangstype: Alleen-lezen Kwalificaties: Sleutel De datum en tijd waarop het evenement in het logbestand is vastgelegd. |
| Message | Gegevenstype: tekenreeks Toegangstype: Alleen-lezen Het gebeurtenisbericht. |
| ProcessInfo | Gegevenstype: tekenreeks Toegangstype: Alleen-lezen Informatie over de bronsessie-ID (SPID) voor het evenement. |
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 laat zien hoe je waarden kunt ophalen voor alle geregistreerde gebeurtenissen in een gespecificeerd logbestand. Om het voorbeeld uit te voeren, vervang <Instance_Name> door de naam van de instantie van SQL Server, zoals 'Instance1', en vervang 'File_Name' door de naam van het foutlogbestand, zoals '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
Wanneer InstanceName of FileName niet worden vermeld in de WQL-instructie, geeft de query informatie terug voor de standaardinstantie en het huidige SQL Server-logbestand. Bijvoorbeeld, de volgende WQL-instructie retourneert alle loggebeurtenissen uit het huidige logbestand (ERRORLOG) op de standaardinstantie (MSSQLSERVER).
"SELECT * FROM SqlErrorLogEvent"
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'.
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):
<Drive>:\Programmabestanden\Microsoft SQL Server\MSSQL13.<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.