Hi,
We are seeing incorrect or missing OS detection for certain hosts. For example, a QNAP NAS is being identified as Windows 7/Server 2008, and a Synology NAS and a Server 2019 machine don't not show an OS at all.
Can this be fixed?
SoftPerfect Support Forum
All Forums
► Network Scanner
► Current topic
How to fix incorrect or missing OS detection
|
vasi
How to fix incorrect or missing OS detection 23 May 2026, 18:53 |
|
|
Re: How to fix incorrect or missing OS detection 23 May 2026, 19:11 |
Admin Registered: 12 years ago Posts: 1 124 |
Both anomalies that you described are explained by the same thing: which API the "OS" field is sourced from.
Under Options > Workstation, the OS column is populated from the Windows LanMan API NetWkstaGetInfo. That API returns only a major.minor version pair (e.g. 6.1, 10.0) - no build number, no edition. We then map that pair to a human-readable name. There are two consequences, exactly what you described:
1. The QNAP NAS showing "Windows 7/Server 2008 R2"
QNAP (and Synology) use Samba to speak SMB, and Samba by default answers NetWkstaGetInfo with version 6.1, which is exactly what Windows 7 / Server 2008 R2 also reports. The Network Scanner is faithfully repeating what the NAS told it. This is configurable on the NAS itself (Samba's "server max protocol" / version-announce settings), but out of the box every Samba-based appliance will look like a Windows 7 box to this API.
2. The Server 2019 with a blank OS
Two things stack up here:
To improve the results, enable these in the Network Scanner:
Under Options > Workstation, the OS column is populated from the Windows LanMan API NetWkstaGetInfo. That API returns only a major.minor version pair (e.g. 6.1, 10.0) - no build number, no edition. We then map that pair to a human-readable name. There are two consequences, exactly what you described:
1. The QNAP NAS showing "Windows 7/Server 2008 R2"
QNAP (and Synology) use Samba to speak SMB, and Samba by default answers NetWkstaGetInfo with version 6.1, which is exactly what Windows 7 / Server 2008 R2 also reports. The Network Scanner is faithfully repeating what the NAS told it. This is configurable on the NAS itself (Samba's "server max protocol" / version-announce settings), but out of the box every Samba-based appliance will look like a Windows 7 box to this API.
2. The Server 2019 with a blank OS
Two things stack up here:
- NetWkstaGetInfo is carried inside SMB. Server 2019 and 2022 ship with SMB1 disabled by default, and many environments also disable anonymous LanMan access, so this call returns access denied and the OS field stays empty.
- Even when it does succeed, Server 2019 and 2022 both report (10, 0) - the same pair as Windows 10 and Server 2016 - so without the build number it's not possible to tell them apart via this API.
To improve the results, enable these in the Network Scanner:
- Options > Additional > Grab service banners - make sure SMB is ticked.
This uses a completely separate code path that does an SMB2 handshake and parses the NTLMSSP version block returned by the server. It gives you the NT major.minor.build number, which we then map to a precise product name - Windows 11 24H2, Server 2019, Server 2022, etc. Crucially, it does not require SMB1, so it works against modern, hardened Server 2019/2022 hosts where the Workstation OS lookup fails. - Options > Remote > WMI - add a query against Win32_OperatingSystem and pull the Caption property.
WMI is the authoritative source on a Windows machine - Caption returns the full marketing string (e.g. "Microsoft Windows Server 2019 Standard"). This requires valid credentials and that WMI/RPC is reachable, but where it works it's the most accurate identifier available, and it bypasses every quirk of the legacy LanMan API.