On the Windows host, locate OMI configuration (often %PROGRAMFILES%\Microsoft OMI\conf\omiserver.conf). Set:
loglevel = DEBUG
logmask = 255
Restart the OMI service. Check logs at %PROGRAMFILES%\Microsoft OMI\var\log\omi.log for provider mapping errors.
If you can’t fix the OMI provider issue, retrieve the same OS information via a different CIM class known to work — or fall back to a shell command through OMI’s execute functionality: win32-operatingsystem result not found via omi
omicli invoke root/cimv2 Win32_Process Create CommandLine="cmd /c systeminfo
Not elegant, but effective in a pinch.
The class exists in WMI, but a corrupted WMI repository can block OMI’s access. On the Windows host, locate OMI configuration (often
Get-WmiObject -Class Win32_OperatingSystem
or
Get-CimInstance -ClassName Win32_OperatingSystem
If this fails, the problem is local to Windows — not OMI. Fix WMI repository corruption or permissions first. Restart the OMI service
omicli query root/cimv2 "SELECT * FROM Win32_OperatingSystem"
You run a simple OMI query from Linux, macOS, or another Windows host:
omicli query "SELECT * FROM Win32_OperatingSystem"
Or via Python with pyomi:
session.query("SELECT * FROM Win32_OperatingSystem")
Expected result: OS details (name, version, serial number, etc.).
Actual result: Nothing — an empty list, a null response, or a "class not found" error.
Update all automation scripts, Ansible modules, or custom tools to use: