/ / VBA GetObject winmgmts nie działa po aktualizacji Windows - excel, vba, excel-vba, wmi

VBA GetObject winmgmts nie działa po aktualizacji Windows - excel, vba, excel-vba, wmi

Korzystam z programu Excel VBA, aby uzyskać logowanie do komputera, czas wylogowania z dziennika zdarzeń. Program działał dobrze, dopóki system Windows nie został zaktualizowany w zeszłym tygodniu.

Po debugowaniu zorientowałem się GetObject funkcja nie działa.

Sub get_log_time()
On Error GoTo ErrorHandler

"strComputer = ComputerName
strComputer = "."

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\" & strComputer & "rootcimv2")
Set colLoggedEvents = objWMIService.ExecQuery("Select * from Win32_NTLogEvent Where Logfile = "System" and  (EventCode = "7001" or  EventCode = "7002")")

ErrorHandler:
If Err.Number <> 0 Then
Msg = "Error # " & Str(Err.Number) & " was generated by " _
& Err.Source & Chr(13) & "Error Line: " & Erl & Chr(13) & Err.Description
MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext
End If
Resume Next
End Sub

Komunikat o błędzie: "Błąd # -2147221020 został wygenerowany przez VBAProject Linia błędu: 0. Błąd automatyzacji Niepoprawna składnia".

Nie mogłem znaleźć przyczyny, dlaczego tak się dzieje i jak to naprawić.

Dodatkowe informacje:

  • Używam systemu Windows 10, Excel 2016 MSO (16.0.4549.1000) 32 Bit

  • Zmieniłem kod na późniejsze wiązanie, ale nadal nie działa.

  • Ustawienie odniesienia: biblioteka obiektów Microsoft Excel 16.0, biblioteka obiektów Microsoft Office 16.0

Odpowiedzi:

3 dla odpowiedzi № 1

Ten sam problem tutaj, tylko z MS Access 2016 32 Bit. Testowane również w słowie. Wydaje się wpływać na wszystkie aplikacje biurowe. Uruchamiam Office 32 Bit na Windows 10 64 Bit.

Mam nadzieję, że ktoś może dowiedzieć się, co dokładnie się tutaj wydarzyło. Ten kod działał dobrze.

EDYCJA: Winowajcą wydaje się być aktualizacja KB4011051, po odinstalowaniu błąd znika. Sprawdzam, czy mogę sprawdzić, czy jest to zgodne z projektem, czy z błędem.