Almost Modern Driver Management with ConfigMgr and Powershell


First off, bear with me here during the intro. I know introductions usually are boring, but I do have a few words to share with you first.

The following is by no means any substitution for any other Modern Driver Management solution out there. This is purely me exploring, learning and sharing that experience with anyone who’s interested. When I find something useful, I usually try to do my own thing for various reasons, but mainly to learn and also for being less dependent on others work and future maintenance plans.

Now, this post is primarily about a Powershell script and how that Powershell script is designed to run on a given device and export the device drivers into your ConfigMgr source file library or locally. In the process, the script is able to create a regular package in ConfigMgr containing those drivers. The post is also about how to use the regular packages for applying drivers, but the script is what took the most of my time 🙂

The idea here is, that you fire up a given device with a given version of Windows (preferably Windows 10) and install ALL the drivers (preferably the latest drivers) and verify that everything works in that combination of  Windows, drivers and hardware model.

Note: Most vendors provide a tool which checks online for latest drivers and gives you option to install those. This is pretty handy when building new drivers for a given computer model.

Now knowing that everything works, this is the drivers you want to apply to future deployments of this computer model, so you run the script and everything is automatically exported and a package in ConfigMgr is created.

In lack of a better name, this is what I call ‘Almost Modern Driver Management‘. 😀

PS. If you’re looking for a truly nifty and ‘modern’ approach, I suggest you head over to and take a peek at their solutions for both BIOS and drivers.

Read more…

Migrate your OneDrive for Business to Per Machine installation (With or without source files using SCCM and Powershell)


Installing the OneDrive for Business client on a per machine basis is an often requested feature and for good reasons. OneDrive in it’s current state in the production ring, is installing into the users profile in %localappdata%, and for equally good reasons that is often not desired by enterprises.

Now, Microsoft has finally given us an option, allowing us to install OneDrive for the device into %programfiles(x86)%. The option is currently in preview and all the juicy details are found here:

PS. Credit where due: I was inspired by Per Larsen’s post on doing the same with Microsoft Intune and like many times before, this brought me to doing something on my own for the sharing and learning experience. Enjoy. 🙂

Read more…

Connect to Exchange Online with Powershell, Modern Authentication and Conditional Access


This is not one of the usual topics I blog about, but nonetheless it’s quite relevant. If you leverage Conditional Access to protect your corporate resources, good chances are that you are blocking legacy authentication (or at least that is something you should consider doing).

If you also fancy connecting to Exchange Online using Powershell for automation reasons, another good chance is that this is done with basic/legacy authentication. This is obviously a conflict with my first statement, so I figured it would make a good blog post to describe how to connect to Exchange Online automated with Modern Authentication while being protected by Conditional Access.

Read more…

Connect to Microsoft Graph for Intune with Powershell ISE Add-ons


If you are working with Microsoft Intune on a daily basis, chances are that you are familiar with the awesome Powershell Intune Graph script samples over at GitHub:

I have previously blogged specifically about putting 2 of the scripts to use here:

If you are less familiar with Powershell, the script samples might seem a bit intimidating and difficult for some to put to use. The new Microsoft.Graph.Intune PowerShell Module to the rescue!

Now, this post is not about using the actual module, but how you with a single click can connect to the Graph API and gain access to all the available cmdlets in a very easy and sufficient way.

Read more…

Install Google Chrome Extensions using Microsoft Intune in 3 different ways (Powershell, ADMX ingestion and MSI)


I have previously covered the approach on how to install Google Chrome extensions using System Center Configuration Manager. Find my post here:

Then it came to my attention that Microsoft released another and new extension for Chrome last week. It’s called Microsoft Web Activities. This made me go through the approach again, and figured I wanted to cover the methods on how to install Google Chrome Extensions using Microsoft Intune.

Read more…

Windows as a Service: Remind users of pending Windows upgrades using Windows toast notifications, part 3


UPDATE: The script used here has been severely updated: The scenario described here is still relevant though, so I recommend that you still read through this 🙂

This will be a small but exciting contribution to my ‘Windows as a Service’ series!

The usual story here is, that everyone wants to add more user-friendliness to the whole experience around Windows Servicing.

End-users generally doesn’t care about new versions of Windows and they also, generally speaking, find interruptions in their work annoying, especially if those interruptions come unexpected.

So we come up with clever solutions to solve those problems and this will be an addition to that; remind the user with a big nice Windows toast notification when a Windows upgrade is pending. This is for the obvious reminder, but also to lure the end-user into a voluntary participation.

Find some of my previous WaaS posts here:

Part 1:
Part 2:

Read more…

Deploy RSAT (Remote Server Administration Tools) for Windows 10 v1809 using SCCM (System Center Configuration Manager) and Powershell


Attention: This script has been updated and superseded:

Continuing on the Windows 10 1809 journey from wednesday! As something completely new, RSAT (Remote Server Administration Tools) is now included as a set of “Features on Demand” in Windows 10 itself and is no longer something you download and install separately.

You can obviously install the tools manually in Windows (this is done from the settings menu and from there select to Manage Optional Features), but as always, we don’t like to do stuff manually. Therefore I created a complete Powershell script which can be used in SCCM (System Center Configuration Manager) in an unattended and automated deployment.

Read more…

Automatically create collections for Third-Party Software Updates in SCCM (System Center Configuration Manager) using Powershell


My previous post was about Patch My PC and Third-Party Software Updates in SCCM 1806. This one is a quick continuation, where I’m going to share a complete Powershell script to create collections for (at the time of writing) 23 different third-party products. Products that’s all available through Patch My PCs update catalog.

Currently Patch My PC has 272 different products in their catalog. I initially needed collections for the first 23. This is work in progress. I will add more products to it as an ongoing process. (Bare with me, there’s a lot of work involved into installing the applications, creating the queries and testing them)

Also, I have no idea if this is something that’s already been created out there, but that’s no excuse not to do another one. 🙂

Read more…

Enable UE-V (User Experience Virtualization) during OSD with SCCM and use OneDrive as storage path


UE-V is not something new, but when combined with OneDrive Known Folder Move, Enterprise State Roaming in Azure and OneDrive as the storage path for UE-V, you will find yourself with a very solid solution ensuring roaming of end users data and settings.

I have previously shown you how you can enable OneDrive KFM with SCCM. This time, I’m going to show you how you can enable UE-V during OSD with Configuration Manager, and how you make sure those settings are stored in OneDrive. I hope you can see the pattern here: No on-premise file share for UE-V settings – everything stored in the users OneDrive.

A peek at the UE-V configuration when OneDrive is set as storage path

Read more…

How can I in-place upgrade to Windows 10 1803 using Powershell App Deployment Toolkit and SCCM (System Center Configuration Manager) 2nd edition


Back in May i did a post on how to leverage Powershell App Deployment Toolkit and Configuration Manager to in-place upgrade to Windows 10 1803. Find the post in the link below:

Today I’m providing you with an update on the topic and giving you an updated version of the content. Note that the basic instructions for using all of this, is still found in my original post above.

Read more…