How to fix incorrect or missing OS detection

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 - Ann avatar image
Ann

Re: How to fix incorrect or missing OS detection   23 May 2026, 19:11

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:
  • 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.
For NAS devices, neither of the above will help much - the NAS doesn't run Windows, doesn't expose WMI, and its NTLMSSP block (if Samba even includes one) will report a Samba/Linux build, not a Windows version. The cleanest result is to use a Friendly Name or annotation for these devices, or rely on the Device Type column (which already correctly identifies them as QNAP / Synology NAS) and ignore the OS field for non-Windows hardware.

Reply to this topic

Sometimes you can find a solution faster if you try the forum search, have a look at the knowledge base, or check the software user manual to see if your question has already been answered.

Our forum rules are simple:

  • Be polite.
  • Do not spam.
  • Write in English. If possible, check your spelling and grammar.

Author:

Email:

Subject

A brief and informative title for your message, approximately 4–8 words:

     

Spam prevention: please enter the following code in the input field below.

 **    **  **     **  **      **  **     **  **    ** 
  **  **    **   **   **  **  **  **     **  **   **  
   ****      ** **    **  **  **  **     **  **  **   
    **        ***     **  **  **  *********  *****    
    **       ** **    **  **  **  **     **  **  **   
    **      **   **   **  **  **  **     **  **   **  
    **     **     **   ***  ***   **     **  **    ** 

Message: