If you’ve been reading my blog recently, you’ve seen a lot of posts about MDM and Provisioning Options for Windows 10. Previously we’ve covered:
And in this post we will dig further into the options available to us to deploy a Provisioning Package with the goal of allowing for silent MDM Enrollment and Silent application of a provisioning package!
We’re all adventurers. That’s why we wake up in the morning and do what we do in our fields, for that feeling of mastery and uncovering something new. Some of us chart new maps, cross the great outdoors, or climb mountains.
And some of us explore code.
In this post, I’ll outline my own such PowerShell adventure, and show you the tools I used to come out the other side with a working solution. We’ll meet in basecamp to prepare ourselves with the needed gear, plan our scaling strategy and climb the crags of an unknown PowerShell module. We’ll belay into treacherous canyons, using our torch to reveal the DLLs that make Windows work, then chart new ground using DotPeek and eventually arrive on the summit, victorious and armed with new tools.
This kind of request comes up all the time on StackOverflow and /r/PowerShell.
“How can I extract content from a webpage using PowerShell”.
And it’s an interesting problem to solve. However, nothing motivates like greed, and I recently revisited this topic in order to help me track down the newest must-have item, the Switch.
In fact, this post COULD have been called ‘Finding a Nintendo Switch with PowerShell’!
I have been REALLY wanting a Nintendo Switch, and since I’ll be flying up to NYC next month for Tome’s NYC TechStravaganza (come see me if you’ll be in Manhattan that day!), it’s the perfect justification for She-Who-Holds-The-Wallet for me to get one!
But EVERYWHERE is sold out. Still! 😦
However, the stores have been receiving inventory every now and then, and I know that when GameStop has it in stock, I want to buy it from them! With that in mind, I knew I just needed a way to monitor the page and alert me when some text on it changes.
Web scraping, here we go! Continue reading
This post is part of the series on AutoCompletion options for PowerShell! Click the banner for more posts in the series!
Previously in this series, we reviewed a few ways to add AutoComplete onto your functions, covering Param AutoCompletion and Dynamic Parameters. In this post, we’ll spend a LOT of time typing in the present to help our future selves save fractions of a second, because there’s no way we’ll become less lazy, right? At the end of the day, we will have achieved the holy grail of Attaboys, and have Output Autocomplete working in our function.
You know how in PowerShell you can type a cmdlet, then pipe into
Select-Object or another cmdlet and start tabbing through property names? This is the type of Autocompletion we are going to add to our function in this post!
Not only does this save you from making mistakes, but it is amazingly convenient and really gives our functions a polished and professional look and feel. PowerShell’s ability to do this highlights one of its distinguishing features as well!
Dynamic Type System
Warning: this next part is probably kind of boring
If you’re like me, you read things and then just gloss over all of the words and symbols you don’t know, assuming they’re unimportant. If I just described you, then I hate to be the one to tell you this, but that is kind of a tremendous character flaw. I’ll get around to why this is bad and how it relates to PowerShell, but first, take us on a detour into my past. Continue reading
Recently, I had a customer looking at setting up potentially tens of thousands of Point of Sale Kiosks running Windows 10 on an LTSB branch. We wanted users to have to input their password, but noticed that if a Windows 10 machine is in the docking station, the Touch Keyboard will never display!
Paradoxically, if the user has a Windows Hello Pin specified, that version of the touch keyboard will appear. But for a regular password? Nope, no On-Screen Keyboard. And using the dated compatibility keyboard (OSK.exe) was not an option.
To illustrate how weird this confluence of conditions was, I’ve provided a video
While we wait for Microsoft to create a patch to fix this, I’ve created my own workaround, using WMI Events and PowerShell!
In a perfect world, we’d wait for a hotfix. If it affected many people, Microsoft would roll out a patch for it.
Life isn’t perfect and we don’t have time to wait! Sometimes all you really need is to open up Process Monitor and then write your own hack.