Native Binary Scanning Tool (NanoServerApiScan.exe) for Nano Server


This blog post is now obsolete. Please go to the new one here: http://blogs.technet.com/b/nanoserver/archive/2016/04/27/nanoserverapiscan-exe-updated-for-tp5.aspx

 

If you developed a 64-bit application, tool, or agent for Windows Server in C/C++, you can use NanoServerApiScan.exe to check if your app will also run on Nano Server. Remember that Nano Server is 64-bit only and won’t run 32-bit binaries.

NanoServerApiScan.exe scans a directory containing your binaries and reports an error if it finds an API that is not available in Nano Server. It even provides replacement API suggestions in many cases. NanoServerApiScan.exe requires .NET Framework version 4.0 or higher.

Syntax

NanoServerApiScan.exe /BinaryPath:<directory containing your binaries> /WindowsKitsPath:<Windows SDK directory> /ReverseForwardersPath:<directory containing Reverse Forwarders binaries>

/BinaryPath (Mandatory): The directory containing your binaries. NanoServerApiScan.exe will parse all sub-directories as well.

/WindowsKitsPath (Optional): If you install a newer version of the Windows 10 SDK and would prefer to use the OneCore.lib file that came with this newer SDK, instead of the version bundled with NanoServerApiScan.exe, use this parameter to specify the Windows 10 SDK directory.

/ReverseForwardersPath (Optional): The directory containing the extracted Reverse Forwarders binaries. If you will use your tool with the Nano Server Reverse Forwarders package, you can extract the binaries from this package (by unzipping the cab file) to a local folder and specify the path to this folder as the argument to this parameter.

Example

NanoServerApiScan.exe /BinaryPath:e:\Temp\Test

Sample output from NanoServerApiScan.exe:

=== e:\Temp\Test\LrmApi.dll ===

ERRORS:

 

  KERNEL32.dll

    GetStartupInfoA (Proc not found)

      Please use API GetStartupInfoW as substitution.

    SetHandleCount (Proc not found)

 

For a list of supported APIs in Nano Server, please go to: https://msdn.microsoft.com/en-us/library/mt588480(v=vs.85).aspx

 

ref@

 

Comments (4)
  1. Bryan Owen says:

    Does Nano have a compiler prerequisite for runtime dependencies (eg. observation of ‘Proc not found" were under MSVCP110.dll)?

  2. Jiangtian Li says:

    VC runtime is not part of Nano and is not a prerequisite of Nano. However, if your application depends on it, it needs to be installed first. The tool reports the API dependence of your application to run in Nano.

  3. anonymouscommenter says:

    As organizations move toward modern DevOps practices, the role of the operating system needs to evolve

  4. Devid Lewis says:

    This post doesn’t work anymore. Don’t waste your time on this. Have a look at the new link provided by MSFT. It’s an amazing. it worked for me as i was trying to apply on http://snapchattrophiess.com it worked and i haven’t faced any problem

Comments are closed.

Skip to main content