/ / VBA GetObject winmgmts не працює після оновлення Windows - excel, vba, excel-vba, wmi

VBA GetObject winmgmts не працює після оновлення Windows - Excel, VBA, Excel-VBA, WMI

Я використав Excel VBA, щоб отримати вхід до робочого столу, час виходу з журналу подій. Програма працювала добре, доки Windows не оновлювався на минулому тижні.

Після налагодження я зрозумів GetObject функція не спрацювала.

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

Повідомлення про помилку: "Помилка № -2147221020 була згенерована VBAProject. Лінія помилки: 0. Помилка автоматизації: невірний синтаксис".

Я не міг знайти, чому це відбувається, і як це виправити.

Додаткова інформація:

  • Я використовую Windows 10, Excel 2016 MSO (16.0.4549.1000) 32 біт

  • Я змінив код до пізньої зв'язування, але він все одно не працює.

  • Довідковий параметр: бібліотека об'єктів Microsoft Excel 16.0, бібліотека об'єктів Microsoft Office 16.0

Відповіді:

3 для відповіді № 1

Однакова проблема тут, тільки з MS Access 2016 32 біт. Тестовано в слові теж. Здається, це вплине на всі офісні програми. Я виконую 32-бітний офіс в Windows 10 64-біт.

Я сподіваюсь, хтось може дізнатись, що саме тут трапилося. Цей код працював просто добре.

EDIT: зловмисник, здається, оновлений KB4011051, після видалення помилка зникає. Я дивлюся на це, щоб побачити, чи зможу я з'ясувати, чи є це за дизайном чи помилкою.