About the author

Johan Arwidmark


Get Action Command Line from Scheduled Task using PowerShell

By Johan Arwidmark / September 10, 2023

This week I had to find out the command line of a scheduled task from a few hundred machines, to make sure they had received the correct task, deployed from a Group Policy. Well, PowerShell to the rescue. Here is a small PowerShell snippet that will return the command line from a give task: Below […]


Increasing ConfigMgr Client Cache size during OSD

By Johan Arwidmark / August 29, 2023

Here is a quick tip if you are deploying many applications in your task sequence: Make sure that the ConfigMgr client cache size is configured with enough space for your applications. If not, you'll see something like the following: Increasing the ConfigMgr Client Cache Back in the early days of ConfigMgr OSD you needed to […]


Rename Local Administrator Account during OSD using PowerShell

By Johan Arwidmark / August 18, 2023

During OS Deployment it's not entirely uncommon to see organizations renaming the local admin directly in the task sequence. There are many options available for doing so, but using a healthy dose of PowerShell is an effective way. 🙂 Using the Rename-LocalUser Cmdlet Below sample gets hold of the local administrator account from its well-known […]


Limiting Hyper-V Bandwidth using pfSense

By Johan Arwidmark / August 3, 2023

In my labs I frequently use bandwidth control to simulate different customer environments, allowing me to mimic distributed environments spanning over multiple locations. While Hyper-V itself does support bandwidth limiting, it can only do that on outgoing (outbound) traffic which is not really a real-world scenario where you have routers and WAN links limiting the […]


Optimizing Windows 11 for the Enterprise

By Johan Arwidmark / July 22, 2023

You would think that a product named Windows 11 Enterprise would be optimized for business use out of the box, but like the Windows 10 Enterprise, Windows 11 Enterprise is far from it. In this post you learn about common configuration changes enterprises are doing to make Windows 11 more suitable for enterprises. The Supported […]


Products for Software Updates Demystified

By Johan Arwidmark / July 19, 2023

When using ConfigMgr for Software Updates, via the Software Update Point role, you need to select which classifications and products you want to support in your environment. This configuration would have been super-easy if: Unfortunately, none of the above conditions are true, so in this post you find some clarification on some of the stranger […]


Signing or Not – Intune Win32 App Detection and Requirement Scripts

By Johan Arwidmark / June 24, 2023

Not signing your Win32 App detection scripts may sound as a very strange suggestion, and it's certainly not ideal from a security standpoint, but depending on how many applications you have that are using scripts for detection and/or requirement rules you may run into unexpected results… Microsoft Intune Policy Limitations When using Microsoft Intune for […]


Capture Videos from Hyper-V VMs using PowerShell

By Johan Arwidmark / June 24, 2023

In a recent project I was deploying hundreds of VMs across a large set of Hyper-V Hosts, and I needed to capture the screen output of each VM for documentation and troubleshooting purposes. Long story short, here is a PowerShell script that will capture still images from the screen of each Hyper-V VM according to […]


Using Get-Date in PowerShell for Multiple Languages

By Johan Arwidmark / June 21, 2023

In a recent project I was collecting client health data across machines in multiple regions, all with different cultures/languages configured. As part of the collection, I was adding in a date column in my report via PowerShell. I was using the Get-Date command to get the current date, and then applying the native format options […]


Validate Packages for ConfigMgr Task Sequences

By Johan Arwidmark / May 21, 2023

A quite common issue when doing OS Deployment with ConfigMgr is that there is a mismatch on the packages on one or more DPs. The result on the client is an error message in the smsts.log saying: The hash value is not correct, and the error code is 0x80091007. The fix is typically to update the […]


My Favorite CMPivot Queries

By Johan Arwidmark / May 20, 2023

There are plenty of CMPivot examples out there, but here are a few of my favorites that I use pretty much every week. Enjoy 🙂 Lookup installed application by product name Lookup installed application count by product name Get Free Disk Space in GB


Find Scheduled Tasks via PowerShell

By Johan Arwidmark / April 26, 2023

This morning I needed to find which scheduled task that ran a specific PowerShell script, and also which username that was configured to run the task. While the Get-ScheduledTask and Get-ScheduledTaskInfo cmdlets does retrieve detailed information about schedule tasks, they don't reveal the information about the username. Good old schtasks.exe to the rescue. The Script


GitHub Dev – Using VS Code From Your Browser

By Johan Arwidmark / April 22, 2023

It's funny how some news simply flies under the radar, in this case I completely missed the release of github.dev back in August, 2021. Github.dev is web-based editor – essentially a lightweight VS Code – allowing you to edit code directly in your browser. There are two ways to go access the VS Code environment […]


Benchmarking M.2 PCIe Adapters for Lab Workstations

By Johan Arwidmark / March 29, 2023

Just about a week ago I bought a used HP Z8 G4 Workstation on eBay to be used as a ConfigMgr / Intune lab machine. The machine I found only included a SATA SSD and of course I wanted more performance than that can bring, so I ordered a #shiny 4 TB NVMe SSD from […]


Using Modern Driver Management with MDT Lite Touch

By Johan Arwidmark / March 26, 2023

While MDT is no longer being updated, and does not officially support Windows 11, it's still a great deployment solution and you can in fact deploy any Windows Client and Windows Server OS with it, including Windows 11. The recommend method to inject drivers during deployment using MDT is called Total Control, which means you […]


Remote Desktop Session Keeps Disconnecting – The Solution

By Johan Arwidmark / March 19, 2023

In my lab I have quite a few machines I remote into on a daily basis, but one of them, connected to the same network switch, would at times disconnect me several times per hour. Sometimes the session reconnected itself, sometimes I had to close the initial connection, and connect again. Researching the problem After […]


Creating Pre-Caching Task Sequences using PowerShell

By Johan Arwidmark / March 17, 2023

Here is a PowerShell script that will create a pre-caching task sequence for ConfigMgr. In this example I'm enumerating all driver packages, and creating a pre-caching task sequence with those packages. If you want to learn more about the core concept of pre-caching for P2P in ConfigMgr, check this post: Pre-Caching Content for P2P in […]


Optimizing VHDX Files in a Hyper-V Lab

By Johan Arwidmark / February 27, 2023

In my Lab(s), I have hundreds of VMs spread across multiple Hyper-V hosts (and a few VMware hosts too, but that's out of scope for this post). The operating systems used for my Hyper-V hosts are a mix of Windows Server 2016, 2019, and 2022. Also, I have Data DeDuplication enabled on all volumes used […]

1 2 3 26
Page 1 of 26