Native Binary Scanning Tool (NanoServerApiScan.exe) for Nano Server
This blog post is now obsolete. Please go to the new one here: https://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
- Anonymous
November 27, 2015
Does Nano have a compiler prerequisite for runtime dependencies (eg. observation of 'Proc not found" were under MSVCP110.dll)? - Anonymous
January 06, 2016
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. - Anonymous
January 21, 2016
As organizations move toward modern DevOps practices, the role of the operating system needs to evolve - Anonymous
April 29, 2016
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