Note
Windows Containers are supported for commercial deployments on Windows Server, Windows IoT Server, Windows IoT Enterprise and Windows IoT Core. As of Windows October Update 2018 (Build 17763), Windows Containers can only be used with Windows Enterprise and Professional for dev/test purposes.
- This graph shows the market share of desktop operating systems worldwide based on over 10 billion monthly page views.
- You'll soon discover that it is familiar to Windows users, but a more personalized experience that takes everything you already love about prior versions like Windows 7 and 8 to the next level. Windows 10 delivers an even better Start Menu, expanding the possibilities and bringing over your favorite apps and pins so they're easily accessible.
Windows has always used build numbers. They represent significant updates to Windows. Traditionally, most people have referred to Windows based on the major, named version they’re using—Windows Vista, 7, 8, and so on. Within those versions, we also had service packs to refer to: Windows 7 Service Pack 1, for example. Laptops, tablets, and desktop computers all run operating systems that you've probably heard of. Some examples include versions of Microsoft Windows (like Windows 10, Windows 8, Windows 7, Windows Vista, and Windows XP), Apple's macOS (formerly OS X), Chrome OS, BlackBerry Tablet OS, and flavors of Linux, an open-source operating system.
What is Windows 10 IoT?
Windows 10 IoT is a member of the Windows 10 family that brings enterprise-class power, security, and manageability to the Internet of Things. It leverages Windows' embedded experience, ecosystem and cloud connectivity, allowing organizations to create their Internet of Things with secure devices that can be quickly provisioned, easily managed, and seamlessly connected to an overall cloud strategy.
Windows 10 IoT Editions
Windows 10 IoT comes in two editions. Windows 10 IoT Core is the smallest member of the Windows 10 operating system family. While only running a single app, it still has the manageability and security expected from Windows 10. By contrast, Windows 10 IoT Enterprise is a full version of Windows 10 with specialized features to create dedicated devices locked down to a specific set of applications and peripherals.
Differences between Windows 10 IoT Core and Windows 10 IoT Enterprise
While Windows 10 IoT Core and Windows 10 IoT Enterprise are similar in name, there are differences in what they offer as well as what they support. Below is a feature list that highlights edition differences.
Feature / Edition | Windows 10 IoT Core | Windows 10 IoT Enterprise |
---|---|---|
User experience | One UWP app in the foreground at a time (see IoT Shell documentation for app backstack handling) with supporting background apps and services. | Traditional Windows Shell with Advanced Lockdown Features |
Headless supported | Yes | Yes |
App architecture supported | UWP UI only | Full Windows UI support (e.g. UWP, WinForms, etc) |
Cortana | Cortana SDK | Yes |
Domain join | AAD only | AAD and Traditional Domain |
Management | MDM | MDM |
Device Security Technologies | TPM, Secure Boot, BitLocker, Device Guard, and Device Health Attestation | TPM, Secure Boot, BitLocker, Device Guard and Device Health Attestation |
CPU Architecture support | x86, x64, and ARM | x86 and x64 |
Licensing | Online Licensing Agreement and Embedded OEM Agreements, Royalty-free | Direct and Indirect Embedded OEM Agreements |
Usage scenarios | Digital Signage, Smart Building, IoT Gateway, HMI, Smart Home, Wearables | Industry Tablets, Retail Point of Service, Kiosk, Digital Signage, ATM, Medical Devices, Manufacturing Devices, Thin Client |
For minimum requirement details, please visit the Windows Hardware site.
If you're interested in learning more about Point of Service, please visit the UWP docs on this topic.
Differences between Windows 10 Desktop and Windows 10 IoT Core
Different features available on Desktop and IoT Core
- Inbox Cortana is no longer available on Windows 10 IoT Core since version 1809 (17763). If you are looking to bring a voice-enabled device to market quickly, you can integrate Cortana support into the device using the preview of the Cortana Devices SDK.
- The FileOpenPicker API is not supported in Windows 10 IoT Core. To access local drives or removable storage, you can implement this in your own application.
- The Windows 10 IoT Core device will boot to the default app instead of a desktop-like PC. The purpose of this application is not only to provide you with a friendly shell to interact with upon first boot, but to also allow you to use the open-sourced code for this application so that you can use these features to plug and play your own custom application(s).
Differences in driver-supported areas
- Windows 10 Desktop has more supported drivers than Windows 10 IoT Core. To make the same device(s) work on Windows 10 IoT Core as on Desktop, you may need to build a driver from source for a Windows 10 IoT Core device or find another workaround, especially for ARM architecture.
- There is no out-of-the-box driver for libusb for Windows 10 IoT Core (ARM) - you will need to build from source to target the ARM architecture.
Differences in available registry set
- On desktop, there is an option to 'Automatically hide scroll bars in Windows' that can be set to off. It is controlled by the following registry entry:
- There is no such registry on Windows 10 IoT Core devices by default. You will need to add a 'Dynamic Scrollbars' register if you want.
- To enable hide scroll bars automatically in a UWP application, you can add the 'DynamicScrollbars' register and set the value to '1' like this:
- The registry key must be set from the Default Account. If the ScrollViewer's XAML setting is 'Visible', the registry setting of 0 will force the scroll bar to appear regardless of whether there is sufficient content to have the scroll appear in the UI. A registry setting of 1 will keep the scroll bar hidden until there is sufficient content.
- Lastly, if the ScrollViewer XAML's setting is 'Auto' then the registry setting of 0 will only show the full scroll bar when there is enough content to display the scroll bar. When the registry setting is 1, the scroll bar will appear then when there is enough content or hidden if there is no content.
Different commands supported
- The PowerShell Remove-AppxPackage command works on Desktop but not on Windows 10 IoT Core.
- Not all folders on your device are accessible by Universal Windows Apps. On Windows 10 IoT Core, you can use the FolderPermissions tool to make a folder accessible to a UWP app. For example, run FolderPermissions c:test -e to give UWP apps access to c:test folder. However, this is not available on Desktop.
Commands shown in this post may change as time goes on since Windows 10 IoT Core keeps updating.
IoT Edge Support for Windows 10 IoT
To learn more about IoT Edge support for Windows 10 IoT, please read more about 'Operating Systems' in the Azure IoT Edge article here.
Helpful resources
For troubleshooting purpose, or before deploy any software, it is good to know what is Windows operating system version that is currently running. We can easily find the OS details from My Computer properties, but if you want to get details from your customer machine to troubleshoot any issue, PowerShell is the best option to get all the required machine details.
In PowerShell, we can find operating system details in different ways, but to be safe we can use the WMI based cmdlet Get-WmiObject, this command is compatible from Windows PowerShell 2.0. Using this command we can query the WMI class Win32_OperatingSystem to get os version number:
Windows Desktop Os Versions 10.10
The above command only returns the os version number. Run the following command to get the display name of your Windows version.
We can use select command to get the output of all the required OS related properties.
We can use the Get-WmiObject cmdlet in short form gwmi.
Get OS version of a remote computer
Latest Windows Desktop Os
We can easily get the OS version details of a remote computer by adding the parameter -ComputerName to Get-WmiObject.
Get OS details for a list of remote computers using PowerShell
You can use the following powershell script to find OS version details for multiple remote computers. First create a text file named as computers.txt which includes one computer name in each line. You will get the output of machine name, OS name and version number in the csv file OS_Details.csv.