Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Zapewnia właściwości do przeglądania zdarzeń w określonym pliku logu SQL Server.
Syntax
class SQLErrorLogEvent
{
stringFileName;
stringInstanceName;
datetimeLogDate;
stringMessage;
stringProcessInfo;
};
Properties
Klasa SQLErrorLogEvent definiuje następujące właściwości.
| Property | Description |
|---|---|
| NazwaPliku | Typ danych: ciągu Typ dostępu: Tylko do odczytu Nazwa pliku logu błędów. |
| NazwaInstancji | Typ danych: ciągu Typ dostępu: Tylko do odczytu Kwalifikatory: Klucz Nazwa instancji SQL Server, w której znajduje się plik logu. |
| Data logowania | Typ danych: data/godzina Typ dostępu: Tylko do odczytu Kwalifikatory: Klucz Data i godzina zdarzenia zostały zapisane w pliku logowym. |
| Message | Typ danych: ciągu Typ dostępu: Tylko do odczytu Komunikat o zdarzeniu. |
| ProcessInfo | Typ danych: ciągu Typ dostępu: Tylko do odczytu Informacje o ID sesji źródłowej (SPID) dla zdarzenia. |
Remarks
| Typ | Name |
|---|---|
| MOF |
-
sqlmgmprovider.mof(SQL Server 2022 (16.x) i późniejsze wersje)- sqlmgmproviderxpsp2up.mof(SQL Server 2019 (15.x) i wcześniejsze wersje) |
| DLL | sqlmgmprovider.dll |
| Namespace | \root\Microsoft\SqlServer\ComputerManagement10 |
Example
Poniższy przykład pokazuje, jak pobrać wartości dla wszystkich zarejestrowanych zdarzeń w określonym pliku logu. Aby uruchomić przykład, zastąp <Instance_Name> nazwą instancji SQL Server, na przykład 'Instance1', a 'File_Name' nazwą pliku log błędów, np. '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
Gdy w instrukcji WQL nie podano NameInstanceName lub FileName, zapytanie zwraca informacje o domyślnej instancji oraz aktualnym pliku logu SQL Server. Na przykład następująca instrukcja WQL zwraca wszystkie zdarzenia logu z aktualnego pliku logu (ERRORLOG) na domyślnej instancji (MSSQLSERVER).
"SELECT * FROM SqlErrorLogEvent"
Zabezpieczenia
Aby połączyć się z plikiem logu SQL Server przez WMI, musisz posiadać następujące uprawnienia zarówno na komputerze lokalnym, jak i zdalnym:
Dostęp do odczytu przestrzeni nazw Root\Microsoft\SqlServer\ComputerManagement10 WMI. Domyślnie wszyscy mają dostęp do odczytu dzięki uprawnieniu "Enable Account".
Uprawnienia do odczytu do folderu, w którym znajdują się logi błędów. Domyślnie logi błędów znajdują się w następującej ścieżce (gdzie <Drive> oznacza dysku, na którym zainstalowałeś SQL Server, a <InstanceName> to nazwa instancji SQL Server):
<Drive>:\Program Files\Microsoft SQL Server\MSSQL13.<InstanceName>\MSSQL\Log
Jeśli łączysz się przez zaporę, upewnij się, że w zaporze jest ustawiony wyjątek dla WMI na zdalnych komputerach docelowych. Więcej informacji można znaleźć w artykule Łączenie z WMI zdalnie z pomocą Windows Vista.