This post is the eighth in a series describing our automation efforts for provisioning Windows 10 IoT Core on a Raspberry Pi. To recap, KiZAN has a lab of 26 Raspberry Pi 2 boards running Windows 10 IoT Core. On a regular basis, we need to re-flash, provision and configure the boards. When we perform the re-flash and provisioning process, it is manual and consumes more time than we want to spend (up to 2 days). In this post, you'll learn how to enable IoT remote server in Windows 10 IoT Core with PowerShell.
Posts in this series:
- How to Find the IP Address of a Windows 10 IoT Core Device After Initial Flash with PowerShell
- Renaming a Windows 10 IoT Core Device via PowerShell
- Installing WiFi drivers in Windows 10 IoT Core with PowerShell
- Disabling Windows Update in Windows 10 IoT Core with PowerShell
- Setting the Screen Resolution in Windows 10 IoT Core with PowerShell
- Setting the Time Zone in Windows 10 IoT Core with PowerShell
- Disabling the Soft AP on Windows 10 IoT Core Using PowerShell
- Enabling IoT Remote Server in Windows 10 IoT Core with PowerShell (this post)
In our quest to fully automate the provisioning of our Raspberry Pis, we'd like to enable the IoT remote server, which is disabled by default. When enabled this feature allows you to establish a remote desktop-like connection with an app named Windows IoT Remote Client application. This isn't exactly remote desktop, but the remote client is a display for headed applications running on the device.
Similar to the SoftAP settings we disabled in the last post, there is no publically-defined API for enabling this feature, so we dug into Chrome developer tools again to sniff the API endpoint and request body. When enabling and disabling the IoT remote server, the device portal makes HTTP POST requests to /api/iot/remote/enable and /api/iot/remote/disable.
Making a REST Call to Enable Remote Server
This REST API endpoint is secured with Basic authentication, so we re-used the Invoke-AuthenticatedWebRequest method we created in our previous post. Using our previous work, a single line of The one line of code I need to do the web request is:
This is the contents of the response from the web request. A value of 200 means the request was successful.
The next post in the series will cover enabling the software TPM.
Check out our free, hands-on, IoT development workshop series!
Posted by Mike Branstein
Developer and leader. Passionate about systems architecture, domain driven design, application lifecycle management, and technology.