This past Tuesday evening I had the pleasure of presenting to the Atlanta PowerShell Users Group. For almost a year now, Microsoft has begun to dabble in the IoT space with both the release of Windows 10 for embedded devices and the Azure IoT Hub, now Azure IoT Suite. I really hadn’t had a chance to test drive either technology up until very recently. With a spare RaspberryPi 3 on hand and a new curiosity for what Microsoft is attempting, I dove head first into using Windows 10 IoT Core. I also found a developer/starter kit online for Azure IoT Suite and decided to give that a shot as well. What I found was surprising.
While Microsoft has done a decent job of developing an interesting platform for IoT, I found one piece that was missing from their ecosystem…. PowerShell! It’s a bit of a quandary as to why this was such an oversight. Here we are in an age where good developers are becoming a rare resource. That, coupled with the fact that IoT and embedded systems are such a enigma to traditional IT folks, makes the decision to exclude PowerShell very odd. Why wouldn’t Microsoft want to couple something as ubiquitous as PowerShell cmdlets into these new platforms? The crazier notion is why they decided to create APIs for Python (along with C#, C++, Node.js, et. al.) and forget about their very own scripting language. To say I was at a loss is a bit of an understatement.
To find the answers I did some digging and discovered that there were others in the community that were, if not asking the questions themselves, helping to create their own solutions to this problem. There are a few examples where individuals have used the C# APIs provided by Microsoft to create shared libraries (DLLs) as the basis for their own PowerShell cmdlets. A huge thanks goes out to guys like Dennis Rye (@Dennis_Rye) and to Mosè Bottacini (@Photoatomiclab) for going the extra mile for the PowerShell community! For more on the presentation, check out the slides below. Included in the slides are links to both Dennis’s and Mosè’s contributions.