<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>Wes Ellis / notebook</title><link>https://wesellis.com/</link><description>A personal notebook on technology, things I&#39;m building, writing, and life away from the keyboard.</description><language>en-us</language><item><title>Picking One Android Handheld for Emulation and Movies</title><link>https://wesellis.com/blog/picking-an-android-handheld-for-emulation-and-movies/</link><guid>https://wesellis.com/blog/picking-an-android-handheld-for-emulation-and-movies/</guid><description>One device for PS2 emulation and my own movie files, smaller than a Steam Deck, with a microSD slot. The shortlist, the detour into phones, and where I&#39;m leaning.</description></item><item><title>Modding Shadow of Mordor in 2026</title><link>https://wesellis.com/blog/modding-shadow-of-mordor-in-2026/</link><guid>https://wesellis.com/blog/modding-shadow-of-mordor-in-2026/</guid><description>A twelve-year-old game, a proxy DLL, a ReShade preset and a trick for hiding the HUD. The Shadow of Mordor mod setup I put together this month.</description></item><item><title>My Cyberpunk 2077 Mod Loadout</title><link>https://wesellis.com/blog/cyberpunk-2077-mod-loadout/</link><guid>https://wesellis.com/blog/cyberpunk-2077-mod-loadout/</guid><description>I bounced off Cyberpunk once because the guns felt stiff. Here&#39;s the mod list I&#39;m running on the 2.3x Steam version now, and what all those frameworks actually do.</description></item><item><title>Deckport: Getting Native Linux Games Onto the Steam Deck Without the Busywork</title><link>https://wesellis.com/blog/deckport/</link><guid>https://wesellis.com/blog/deckport/</guid><description>Deckport is my open-source Python tool that registers portable native Linux games as Steam Deck non-Steam shortcuts, with artwork, so they show up in Game Mode ready to play.</description></item><item><title>WeatherStar 4000: The &#39;90s Weather Channel on a Raspberry Pi</title><link>https://wesellis.com/blog/weatherstar-4000/</link><guid>https://wesellis.com/blog/weatherstar-4000/</guid><description>My open-source Python and pygame recreation of the WeatherStar 4000, built for Raspberry Pi and CRT TVs, with live weather data and 26-plus display modes.</description></item><item><title>An Arcade Cabinet With a 4:3 Monitor, and Why I Went With CoinOPS on a PC</title><link>https://wesellis.com/blog/arcade-cabinet-4x3-coinops/</link><guid>https://wesellis.com/blog/arcade-cabinet-4x3-coinops/</guid><description>Notes from an arcade cabinet build in progress, on why the monitor is 4:3, and why a PC running CoinOPS won out over a plug-and-play Pandora-style board.</description></item><item><title>Building a FieldStation42 Cable Box</title><link>https://wesellis.com/blog/fieldstation42-cable-box-build/</link><guid>https://wesellis.com/blog/fieldstation42-cable-box-build/</guid><description>A build log for a Raspberry Pi cable box that runs FieldStation42 on a CRT, with a keypad, an LED channel display, a guide channel and a WeatherStar weather channel.</description></item><item><title>The Flexbox Bug That Won&#39;t Let Your Panel Scroll: min-height: 0</title><link>https://wesellis.com/blog/flexbox-min-height-zero-scroll-bug/</link><guid>https://wesellis.com/blog/flexbox-min-height-zero-scroll-bug/</guid><description>Your scroll area has overflow:auto, the layout is 100vh, and the whole page scrolls anyway. Blame the automatic minimum size of flex items, and fix it with one line.</description></item><item><title>The Four-Letter Bookmarks Bar</title><link>https://wesellis.com/blog/four-letter-bookmarks-bar/</link><guid>https://wesellis.com/blog/four-letter-bookmarks-bar/</guid><description>Six folders, four capital letters each, one tidy row. How I keep my browser bookmarks from turning into a junk drawer.</description></item><item><title>Linux Mint on a ThinkPad T14 Gen 3</title><link>https://wesellis.com/blog/linux-mint-thinkpad-t14-gen-3/</link><guid>https://wesellis.com/blog/linux-mint-thinkpad-t14-gen-3/</guid><description>My everyday laptop is a ThinkPad T14 Gen 3 running Linux Mint. Why that pairing, how Dropbox fits in, and the few things worth setting up on day one.</description></item><item><title>Flatten a Messy Media Library into A-Z Bucket Folders</title><link>https://wesellis.com/blog/flatten-media-library-into-letter-buckets/</link><guid>https://wesellis.com/blog/flatten-media-library-into-letter-buckets/</guid><description>A PowerShell script that sorts every show and movie in a folder into flat A-Z buckets, skips anything that would collide, and dry-runs honestly.</description></item><item><title>Check PowerShell Scripts for Syntax Errors Without Running Them</title><link>https://wesellis.com/blog/check-powershell-syntax-without-running-it/</link><guid>https://wesellis.com/blog/check-powershell-syntax-without-running-it/</guid><description>Use PowerShell&#39;s own parser to catch typos and broken brackets in a whole folder of scripts, before anything runs.</description></item><item><title>Rebuilding This Notebook</title><link>https://wesellis.com/blog/rebuilding-the-notebook/</link><guid>https://wesellis.com/blog/rebuilding-the-notebook/</guid><description>101 old posts, three versions of a design, and one very specific idea about what a personal website should feel like.</description></item><item><title>Picking a CMS for a Static Blog in 2026</title><link>https://wesellis.com/blog/choosing-a-cms-for-a-static-blog/</link><guid>https://wesellis.com/blog/choosing-a-cms-for-a-static-blog/</guid><description>I know WordPress inside and out, and I still didn&#39;t use it for this site. What I compared, and why I landed on Sveltia CMS.</description></item><item><title>Your Fonts Only Look Right on Your Computer</title><link>https://wesellis.com/blog/self-hosting-web-fonts/</link><guid>https://wesellis.com/blog/self-hosting-web-fonts/</guid><description>The site looked perfect on my machine and wrong everywhere else. The sneaky reason, and how to self-host web fonts properly.</description></item><item><title>Security Headers on a Static Site When Your Host Won&#39;t Set Them</title><link>https://wesellis.com/blog/security-headers-static-site-digitalocean/</link><guid>https://wesellis.com/blog/security-headers-static-site-digitalocean/</guid><description>My brand-new blog got an F on a security header scan. Here&#39;s why, what actually matters for a static site, and the fixes that work on DigitalOcean App Platform.</description></item><item><title>The -WhatIf Trap Hiding in ForEach-Object</title><link>https://wesellis.com/blog/powershell-whatif-foreach-object-trap/</link><guid>https://wesellis.com/blog/powershell-whatif-foreach-object-trap/</guid><description>A dry run that quietly lies to you. Why ForEach-Object&#39;s property shorthand returns nothing under -WhatIf, and the one-line fix.</description></item><item><title>Monitoring Azure Resource Costs with PowerShell</title><link>https://wesellis.com/blog/monitoring-azure-resource-costs-with-powershell/</link><guid>https://wesellis.com/blog/monitoring-azure-resource-costs-with-powershell/</guid><description>Find out which resource groups are eating your Azure budget, straight from PowerShell, no portal clicking required.</description></item><item><title>Automating User Offboarding in Azure AD with PowerShell</title><link>https://wesellis.com/blog/automating-user-offboarding-in-azure-ad-with-powershell/</link><guid>https://wesellis.com/blog/automating-user-offboarding-in-azure-ad-with-powershell/</guid><description>One script that locks a departing user out, cleans up their groups and licenses, and keeps their mail, with a CSV record of every step.</description></item><item><title>Adding Domain Groups to Local Administrators on Remote PCs with PowerShell</title><link>https://wesellis.com/blog/managing-local-administrators-with-powershell-and-security-groups/</link><guid>https://wesellis.com/blog/managing-local-administrators-with-powershell-and-security-groups/</guid><description>Put a domain group into the local Administrators group on a list of computers (or take one out) over PowerShell remoting, with a result for every machine and -WhatIf first.</description></item><item><title>Check MECM Software Update Deployment Status with PowerShell</title><link>https://wesellis.com/blog/retrieving-mecm-software-update-information-with-powershell/</link><guid>https://wesellis.com/blog/retrieving-mecm-software-update-information-with-powershell/</guid><description>One object per update deployment with targeted, compliant, failed and unknown counts, so you can spot the deployments that need you.</description></item><item><title>Deploy the Most-Needed Updates in MECM with PowerShell</title><link>https://wesellis.com/blog/automating-software-update-deployments-in-mecm-with-powershell/</link><guid>https://wesellis.com/blog/automating-software-update-deployments-in-mecm-with-powershell/</guid><description>Find the updates the most machines are actually missing, bundle them into a group, and deploy them to a pilot collection, with a WhatIf preview first.</description></item><item><title>Upgrade a Windows Edition with a MAK Key from PowerShell</title><link>https://wesellis.com/blog/upgrading-windows-editions-with-powershell-and-a-mak-key/</link><guid>https://wesellis.com/blog/upgrading-windows-editions-with-powershell-and-a-mak-key/</guid><description>Install a product key, activate it and confirm the edition actually changed, without the key ever landing in a script file or a log.</description></item><item><title>Create an MECM Package and Program from PowerShell</title><link>https://wesellis.com/blog/automating-mecm-package-creation-with-powershell/</link><guid>https://wesellis.com/blog/automating-mecm-package-creation-with-powershell/</guid><description>Turn &quot;wrap this script in a package and push it to the DPs&quot; into one command, with a dry run before anything gets created.</description></item><item><title>Clean Reinstall of the Microsoft Graph PowerShell Modules</title><link>https://wesellis.com/blog/refreshing-microsoft-graph-modules-in-powershell/</link><guid>https://wesellis.com/blog/refreshing-microsoft-graph-modules-in-powershell/</guid><description>When Graph cmdlets start throwing assembly errors, it&#39;s almost always mixed module versions. This removes every copy and puts back one matching set.</description></item><item><title>Report on Everything an Entra ID Group Touches with Microsoft Graph</title><link>https://wesellis.com/blog/analyzing-microsoft-365-groups-with-powershell-and-microsoft-graph/</link><guid>https://wesellis.com/blog/analyzing-microsoft-365-groups-with-powershell-and-microsoft-graph/</guid><description>Before you rename, rescope or delete a group, find out what it&#39;s wired to. Members, owners, licenses, apps and Intune policies, in one report.</description></item><item><title>Exporting Active Directory Computer Objects to CSV</title><link>https://wesellis.com/blog/exporting-active-directory-computer-objects-to-csv/</link><guid>https://wesellis.com/blog/exporting-active-directory-computer-objects-to-csv/</guid><description>A computer inventory straight out of AD, with OS build, last logon, password age and OU in one tidy CSV, ready for audits or a stale-machine cleanup.</description></item><item><title>Convert CBR Comics to CBZ, with Optional WebP Pages</title><link>https://wesellis.com/blog/powershell-cbr-to-cbz-converter-webp-optimization/</link><guid>https://wesellis.com/blog/powershell-cbr-to-cbz-converter-webp-optimization/</guid><description>Turn a folder of CBR comics into CBZ with 7-Zip, and optionally shrink the pages to WebP with cwebp or ImageMagick, testing every file before anything is replaced.</description></item><item><title>Gram&#39;s Classic White Layer Cake: A Treasured Family Recipe Revealed</title><link>https://wesellis.com/blog/grams-classic-white-layer-cake-recipe/</link><guid>https://wesellis.com/blog/grams-classic-white-layer-cake-recipe/</guid><description>From the recipe box: gram&#39;s classic white layer cake: a treasured family recipe revealed. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Organizing Vintage Mac Software: How I Name and File a Classic Mac Archive</title><link>https://wesellis.com/blog/organizing-vintage-mac-software/</link><guid>https://wesellis.com/blog/organizing-vintage-mac-software/</guid><description>The folder layout and naming rules I use for a pile of old Mac software, and the small PowerShell script that does the renaming without losing the original names.</description></item><item><title>Making a Mac OS Extended (HFS+) USB Drive on Windows with TransMac</title><link>https://wesellis.com/blog/how-to-create-macos-extended-usb-windows/</link><guid>https://wesellis.com/blog/how-to-create-macos-extended-usb-windows/</guid><description>How I format and load HFS+ USB drives for old Macs from a Windows PC, plus the retro-specific catches that trip you up on the Mac side.</description></item><item><title>Convert 7z Archives to ZIP So Anyone Can Open Them</title><link>https://wesellis.com/blog/automated-7z-to-zip-conversion-script-2/</link><guid>https://wesellis.com/blog/automated-7z-to-zip-conversion-script-2/</guid><description>Repack .7z files as plain Deflate ZIPs with UTF-8 file names, including password-protected ones, and test every result before the original goes anywhere.</description></item><item><title>List Installed Software on Windows with PowerShell</title><link>https://wesellis.com/blog/windows-software-inventory-powershell-script/</link><guid>https://wesellis.com/blog/windows-software-inventory-powershell-script/</guid><description>A quick, safe software inventory from the registry, local or remote, that returns objects you can filter and export instead of a wall of colored text.</description></item><item><title>Removing Stale Windows User Profiles the Right Way</title><link>https://wesellis.com/blog/automated-windows-user-profile-cleanup-script/</link><guid>https://wesellis.com/blog/automated-windows-user-profile-cleanup-script/</guid><description>Clean old user profiles off shared PCs and servers through Win32_UserProfile, so the folder and the registry entry go together and nobody gets a TEMP profile.</description></item><item><title>Cleaning Up Abandoned Outlook OST Files</title><link>https://wesellis.com/blog/automated-outlook-ost-cleanup-powershell/</link><guid>https://wesellis.com/blog/automated-outlook-ost-cleanup-powershell/</guid><description>Find the old Outlook .ost files nobody is using any more and reclaim the space, without touching the ones Outlook has open.</description></item><item><title>A Safer Windows Disk Cleanup Script</title><link>https://wesellis.com/blog/advanced-windows-disk-cleanup-powershell-script/</link><guid>https://wesellis.com/blog/advanced-windows-disk-cleanup-powershell-script/</guid><description>Clear old temp files from the usual suspects and run Disk Cleanup unattended, with an age threshold and a -WhatIf that shows how much you&#39;d get back.</description></item><item><title>Re-Enable Windows Update with PowerShell: Find Every Registry Block, Not Just One</title><link>https://wesellis.com/blog/enable-windows-update-powershell-registry-script/</link><guid>https://wesellis.com/blog/enable-windows-update-powershell-registry-script/</guid><description>When Windows Update is greyed out or just won&#39;t run, check all the policy values and services that can block it, and put them back the way Windows shipped.</description></item><item><title>Move a List of Folders to a New Drive with PowerShell and Robocopy</title><link>https://wesellis.com/blog/powershell-multi-drive-content-migration-script/</link><guid>https://wesellis.com/blog/powershell-multi-drive-content-migration-script/</guid><description>Hand a list of folders from several drives to robocopy in one go, keep their structure on the new drive, catch name collisions before anything moves, and get a log per folder.</description></item><item><title>Find Out Why a Windows Machine Rebooted with PowerShell</title><link>https://wesellis.com/blog/understanding-system-reboot-history-with-powershell/</link><guid>https://wesellis.com/blog/understanding-system-reboot-history-with-powershell/</guid><description>Pull shutdown, startup and crash events from the System log so you can tell a planned restart from a power cut, and see who or what asked for it.</description></item><item><title>Create a Local Administrator Account with PowerShell</title><link>https://wesellis.com/blog/creating-a-windows-admin-account-using-powershell/</link><guid>https://wesellis.com/blog/creating-a-windows-admin-account-using-powershell/</guid><description>A one-off local admin account done properly, with a hidden password prompt, a language-proof group lookup, and an expiry date for the temporary ones.</description></item><item><title>Quest 2 After a Swim: Stuck Boot Dot, Buzzing Controllers, and What I Tried</title><link>https://wesellis.com/blog/quest-2-water-damage-recovery-troubleshooting/</link><guid>https://wesellis.com/blog/quest-2-water-damage-recovery-troubleshooting/</guid><description>My notes from trying to bring a water-damaged Meta Quest 2 back to life, what each symptom probably points to, and where I&#39;d go next.</description></item><item><title>When YouTube Shorts Triggered My 9-Year-Old&#39;s Anxiety: A Parent&#39;s Guide to Digital Overwhelm</title><link>https://wesellis.com/blog/youtube-shorts-child-anxiety-guide/</link><guid>https://wesellis.com/blog/youtube-shorts-child-anxiety-guide/</guid><description>An entry from the original blog about parenting, short-form video, and childhood anxiety.</description></item><item><title>Create a Dedicated Local Admin Account for Windows LAPS to Manage</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-administrator-account-configuration/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-administrator-account-configuration/</guid><description>Roll out a named local admin account with a random password nobody knows, ready for Windows LAPS to take over, and optionally retire the built-in Administrator.</description></item><item><title>Logo Design for Venable Cares at Venable Elementary School</title><link>https://wesellis.com/blog/logo-design-for-venable-cares-at-venable-elementary-school/</link><guid>https://wesellis.com/blog/logo-design-for-venable-cares-at-venable-elementary-school/</guid><description>I recently worked on a design project for Venable Cares at Venable Elementary School in Charlottesville, VA. My contribution included creating the logo for Venable Cares. The logo design…</description></item><item><title>Emptying the Recycle Bin from PowerShell, Quietly</title><link>https://wesellis.com/blog/automating-recycle-bin-management/</link><guid>https://wesellis.com/blog/automating-recycle-bin-management/</guid><description>Empty the Recycle Bin with no prompt, for one user or everyone on the machine, and optionally keep anything deleted recently.</description></item><item><title>Count KACE Devices by Location from a CSV Export</title><link>https://wesellis.com/blog/generating-location-based-device-reports-in-kace/</link><guid>https://wesellis.com/blog/generating-location-based-device-reports-in-kace/</guid><description>Export your KACE device inventory to CSV and get a per-location (or per-label) device count, optionally just the machines added this week.</description></item><item><title>Collecting Windows Update Logs with an SCCM Package</title><link>https://wesellis.com/blog/creating-an-sccm-package-to-enable-windows-update-logging/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-to-enable-windows-update-logging/</guid><description>On Windows 10 and 11 there&#39;s no Windows Update logging to switch on. The trick is collecting it, and this script does that in one zip per machine.</description></item><item><title>Checking WinRM Before You Patch Remotely (Packaged for SCCM)</title><link>https://wesellis.com/blog/creating-an-sccm-package-to-check-windows-update-winrm-status/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-to-check-windows-update-winrm-status/</guid><description>A read-first WinRM check that tells you why remote PowerShell won&#39;t connect, fixes it only when you ask, and doubles as a ConfigMgr compliance script.</description></item><item><title>Flushing the DNS Cache on One PC or Fifty</title><link>https://wesellis.com/blog/automating-dns-cache-clearing-with-a-batch-script/</link><guid>https://wesellis.com/blog/automating-dns-cache-clearing-with-a-batch-script/</guid><description>Clear the Windows DNS client cache locally or across a list of machines, and know when a flush will actually fix anything.</description></item><item><title>Hash Brown Casserole</title><link>https://wesellis.com/blog/hash-brown-casserole/</link><guid>https://wesellis.com/blog/hash-brown-casserole/</guid><description>From the recipe box: hash brown casserole. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Past IT Projects</title><link>https://wesellis.com/blog/past-it-projects/</link><guid>https://wesellis.com/blog/past-it-projects/</guid><description>From the original portfolio: enterprise migrations, endpoint management, and technical implementations.</description></item><item><title>Trigger Intune Automatic Enrollment on a Windows Device with PowerShell</title><link>https://wesellis.com/blog/how-to-add-a-device-to-intune-using-powershell/</link><guid>https://wesellis.com/blog/how-to-add-a-device-to-intune-using-powershell/</guid><description>For the Entra-joined PC that never showed up in Intune. Check it&#39;s ready, kick off enrollment, and see why it failed if it does.</description></item><item><title>Diner Style Omelet</title><link>https://wesellis.com/blog/diner-style-omelet/</link><guid>https://wesellis.com/blog/diner-style-omelet/</guid><description>From the recipe box: diner style omelet. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Pre-Register MFA Phone Numbers for Entra ID Users with PowerShell</title><link>https://wesellis.com/blog/azure-ad-authentication-update/</link><guid>https://wesellis.com/blog/azure-ad-authentication-update/</guid><description>Load mobile numbers into Entra ID as an authentication method before users ever sign in, without stomping on numbers they&#39;ve already registered.</description></item><item><title>How to Make Eggs</title><link>https://wesellis.com/blog/how-to-make-eggs/</link><guid>https://wesellis.com/blog/how-to-make-eggs/</guid><description>From the recipe box: how to make eggs. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Pushing DNS Servers to Clients with RADIUS Vendor-Specific Attributes</title><link>https://wesellis.com/blog/how-to-setup-radius-dns-vsa/</link><guid>https://wesellis.com/blog/how-to-setup-radius-dns-vsa/</guid><description>How RADIUS VSAs work, how to add one in Windows NPS or FreeRADIUS to hand out DNS servers, and how to prove your VPN or NAS is actually using it.</description></item><item><title>Diner Style Home Fries</title><link>https://wesellis.com/blog/diner-style-home-fries/</link><guid>https://wesellis.com/blog/diner-style-home-fries/</guid><description>From the recipe box: diner style home fries. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Easy Camping Breakfast Tacos</title><link>https://wesellis.com/blog/easy-camping-breakfast-tacos/</link><guid>https://wesellis.com/blog/easy-camping-breakfast-tacos/</guid><description>From the recipe box: easy camping breakfast tacos. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Microsoft Intune, Before You Enroll Anything: What It Does and What to Plan</title><link>https://wesellis.com/blog/managing-devices-with-microsoft-intune/</link><guid>https://wesellis.com/blog/managing-devices-with-microsoft-intune/</guid><description>A plain-spoken tour of what Intune actually handles, where it stops, and the identity decisions you want settled before the first device shows up.</description></item><item><title>Sausage Hash Brown Scramble</title><link>https://wesellis.com/blog/sausage-hash-brown-scramble/</link><guid>https://wesellis.com/blog/sausage-hash-brown-scramble/</guid><description>From the recipe box: sausage hash brown scramble. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Irish Breakfast</title><link>https://wesellis.com/blog/irish-breakfast/</link><guid>https://wesellis.com/blog/irish-breakfast/</guid><description>From the recipe box: irish breakfast. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>How to Enroll a Windows Device in Intune by Hand</title><link>https://wesellis.com/blog/how-to-quickly-enroll-a-local-device-into-microsoft-intune/</link><guid>https://wesellis.com/blog/how-to-quickly-enroll-a-local-device-into-microsoft-intune/</guid><description>The Settings app route into Intune, which of its three options to pick, and why the device might show up as personal when you didn&#39;t want it to.</description></item><item><title>Checklist: Moving a Device from MDE Security Settings Management to Intune</title><link>https://wesellis.com/blog/how-to-move-a-device-from-microsoft-defender-security-center-to-intune/</link><guid>https://wesellis.com/blog/how-to-move-a-device-from-microsoft-defender-security-center-to-intune/</guid><description>A practical checklist for taking a device that gets its security policy through Defender for Endpoint and enrolling it in Intune without leaving a gap.</description></item><item><title>Bagel, Egg, Hash Brown Sandwich</title><link>https://wesellis.com/blog/bagel-egg-hash-brown-sandwich/</link><guid>https://wesellis.com/blog/bagel-egg-hash-brown-sandwich/</guid><description>From the recipe box: bagel, egg, hash brown sandwich. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>BLT &amp; E Sandwich (B.E.L.T.)</title><link>https://wesellis.com/blog/blt-e-sandwich-b-e-l-t/</link><guid>https://wesellis.com/blog/blt-e-sandwich-b-e-l-t/</guid><description>From the recipe box: blt &amp; e sandwich (b.e.l.t.). Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Setting DNS Client Settings on Domain Controllers with PowerShell (and Why Loopback Goes Last)</title><link>https://wesellis.com/blog/configuring-dns-settings-for-domain-controllers-using-powershell/</link><guid>https://wesellis.com/blog/configuring-dns-settings-for-domain-controllers-using-powershell/</guid><description>Point each domain controller at a partner DC first and itself (127.0.0.1) last, the way Microsoft recommends, across all your DCs in one pass.</description></item><item><title>Cheese and Chive Omelet</title><link>https://wesellis.com/blog/cheese-and-chive-omelet/</link><guid>https://wesellis.com/blog/cheese-and-chive-omelet/</guid><description>From the recipe box: cheese and chive omelet. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Finding and Disabling SMBv1 Without Breaking the Scanner</title><link>https://wesellis.com/blog/disabling-smbv1-protocol-for-enhanced-security/</link><guid>https://wesellis.com/blog/disabling-smbv1-protocol-for-enhanced-security/</guid><description>Audit who still talks SMBv1 to your machines, then switch it off for good, with one script and three modes.</description></item><item><title>Golden Breakfast Potatoes</title><link>https://wesellis.com/blog/golden-breakfast-potatoes/</link><guid>https://wesellis.com/blog/golden-breakfast-potatoes/</guid><description>From the recipe box: golden breakfast potatoes. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Skip Dell Boot Password Prompts During Maintenance with Password Bypass</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-bios-password-override/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-bios-password-override/</guid><description>Turn on Dell&#39;s Password Bypass so patch reboots don&#39;t sit at a power-on password prompt all night, then turn it back off when you&#39;re done.</description></item><item><title>Sausage Smash Croissant</title><link>https://wesellis.com/blog/sausage-smash-croissant/</link><guid>https://wesellis.com/blog/sausage-smash-croissant/</guid><description>From the recipe box: sausage smash croissant. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Fresh Hash Browns from Scratch</title><link>https://wesellis.com/blog/fresh-hash-browns-from-scratch/</link><guid>https://wesellis.com/blog/fresh-hash-browns-from-scratch/</guid><description>From the recipe box: fresh hash browns from scratch. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Southwestern Hash</title><link>https://wesellis.com/blog/southwestern-hash/</link><guid>https://wesellis.com/blog/southwestern-hash/</guid><description>From the recipe box: southwestern hash. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Patching Without Fear: Rings, Risk and a Way Back</title><link>https://wesellis.com/blog/structured-approach-to-managing-update-risks/</link><guid>https://wesellis.com/blog/structured-approach-to-managing-update-risks/</guid><description>How I think about patch risk now. Sort updates by blast radius, roll them out in rings, decide what &quot;bad&quot; looks like up front, and know your way back before you need it.</description></item><item><title>Take Control of Explorer&#39;s Preview Pane with PowerShell</title><link>https://wesellis.com/blog/windows-explorer-preview-handlers-automated-installation-guide/</link><guid>https://wesellis.com/blog/windows-explorer-preview-handlers-automated-installation-guide/</guid><description>List the preview handlers installed on a PC, see which one each file type uses, and point extensions like .log, .ps1 or .json at the handler you want.</description></item><item><title>Crispy Hash Browns</title><link>https://wesellis.com/blog/crispy-hash-browns/</link><guid>https://wesellis.com/blog/crispy-hash-browns/</guid><description>From the recipe box: crispy hash browns. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Building a Tier 2 OU Structure and Admin Group with PowerShell</title><link>https://wesellis.com/blog/creating-and-configuring-tier-2-organizational-units-and-management-group-in-active-directory/</link><guid>https://wesellis.com/blog/creating-and-configuring-tier-2-organizational-units-and-management-group-in-active-directory/</guid><description>Create the Tier 2 OU, its sub-OUs and the group that manages them, and delegate just enough rights for workstation and user admin work.</description></item><item><title>Exporting Active Directory OUs to CSV (With Paths You Can Actually Read)</title><link>https://wesellis.com/blog/exporting-active-directory-organizational-units-to-csv/</link><guid>https://wesellis.com/blog/exporting-active-directory-organizational-units-to-csv/</guid><description>Dump every OU in the domain to a spreadsheet, with a readable path, depth, GPO link count and, if you want, how many objects live in each one.</description></item><item><title>Breezy Oaks - Real Estate Photography</title><link>https://wesellis.com/blog/breezy-oaks-real-estate-photography/</link><guid>https://wesellis.com/blog/breezy-oaks-real-estate-photography/</guid><description>A yellow house, a collection of Ferraris, and 39 recovered photographs from my Breezy Oaks property shoot.</description></item><item><title>Full Breakfast</title><link>https://wesellis.com/blog/full-breakfast/</link><guid>https://wesellis.com/blog/full-breakfast/</guid><description>From the recipe box: full breakfast. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Sweet Potato Hash</title><link>https://wesellis.com/blog/sweet-potato-hash/</link><guid>https://wesellis.com/blog/sweet-potato-hash/</guid><description>From the recipe box: sweet potato hash. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Chasing ClientOtherError in Azure Files: Is It Your SDK or Your Code?</title><link>https://wesellis.com/blog/how-to-review-client-code-or-library-for-azure-file-storage-issues/</link><guid>https://wesellis.com/blog/how-to-review-client-code-or-library-for-azure-file-storage-issues/</guid><description>What ClientOtherError really counts in Azure Files metrics, how to find which calls cause it, and what to look for in the client library code making them.</description></item><item><title>Getting the Console Width in PowerShell (Even When There Isn&#39;t One)</title><link>https://wesellis.com/blog/discovering-console-width-powershell/</link><guid>https://wesellis.com/blog/discovering-console-width-powershell/</guid><description>A width check that works in a real console, in VS Code, and in scheduled tasks and CI runners where there&#39;s no window to measure.</description></item><item><title>WSUS, WUfB or Windows Update? Check (and Reset) Where a PC Gets Its Updates</title><link>https://wesellis.com/blog/creating-an-sccm-package-to-add-windows-update-service-manager-2/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-to-add-windows-update-service-manager-2/</guid><description>One script that reads the WSUS, scan-source and Windows Update for Business settings on a device and tells you where it&#39;s really getting updates from, with a safe reset for leftovers.</description></item><item><title>Check Whether Two Files (or Two Folders) Are Really Identical</title><link>https://wesellis.com/blog/powershell-script-verify-file-identity/</link><guid>https://wesellis.com/blog/powershell-script-verify-file-identity/</guid><description>Compare files, whole folder trees, or a download against its published checksum with Get-FileHash, and get back a clear Match or Different for every file.</description></item><item><title>Pushing Configuration Profiles to Devices That Are Already Deployed</title><link>https://wesellis.com/blog/creating-and-applying-configuration-profiles-in-intune-for-provisioned-devices/</link><guid>https://wesellis.com/blog/creating-and-applying-configuration-profiles-in-intune-for-provisioned-devices/</guid><description>How to build a configuration profile in Intune, roll it out to machines that are already in people&#39;s hands, and confirm it actually landed.</description></item><item><title>Opting Devices In to Microsoft Update with an SCCM Package</title><link>https://wesellis.com/blog/creating-an-sccm-package-to-add-windows-update-service-manager/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-to-add-windows-update-service-manager/</guid><description>Register the Microsoft Update service through the Windows Update Agent&#39;s own COM API, so devices pick up Office and other Microsoft product updates, not just Windows.</description></item><item><title>Hash Brown Omelet</title><link>https://wesellis.com/blog/hash-brown-omelet/</link><guid>https://wesellis.com/blog/hash-brown-omelet/</guid><description>From the recipe box: hash brown omelet. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Auditing Active Directory Service Accounts with PowerShell (gMSAs Included)</title><link>https://wesellis.com/blog/active-directory-service-account-info/</link><guid>https://wesellis.com/blog/active-directory-service-account-info/</guid><description>One report for every kind of service account, gMSAs and old-school user accounts alike, showing password age, SPNs, delegation and who can read the gMSA password.</description></item><item><title>Pancakes</title><link>https://wesellis.com/blog/pancakes/</link><guid>https://wesellis.com/blog/pancakes/</guid><description>The griddle temperature, resting time, and little details behind a simple pancake breakfast.</description></item><item><title>Delegating Your Tier 0 OU to a Dedicated Admin Group with PowerShell</title><link>https://wesellis.com/blog/creating-and-configuring-a-tier-0-management-delegation-group-in-active-directory/</link><guid>https://wesellis.com/blog/creating-and-configuring-a-tier-0-management-delegation-group-in-active-directory/</guid><description>Create a Tier 0 admin group, keep it where only Tier 0 can touch it, and give it full control of the Tier 0 OU. Preview the whole thing with -WhatIf first.</description></item><item><title>Set or Rotate the Dell BIOS Admin Password Without Baking It Into a Package</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-bios-admin-reinitialize/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-bios-admin-reinitialize/</guid><description>Put a BIOS admin password on new Dells, or change the old one across the fleet, with both passwords handed over at runtime.</description></item><item><title>Pepper or Candy Bacon</title><link>https://wesellis.com/blog/pepper-or-candy-bacon/</link><guid>https://wesellis.com/blog/pepper-or-candy-bacon/</guid><description>From the recipe box: pepper or candy bacon. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Convert ZIP Files to 7z, but Only When It Actually Saves Space</title><link>https://wesellis.com/blog/zip-to-7z-conversion-mastery/</link><guid>https://wesellis.com/blog/zip-to-7z-conversion-mastery/</guid><description>Repack ZIPs as 7z, see exactly how much space each one saved, and keep the ZIP when the 7z wouldn&#39;t be any smaller.</description></item><item><title>Zip Up Folders Nobody Has Touched in Months</title><link>https://wesellis.com/blog/folder-archiving-powershell/</link><guid>https://wesellis.com/blog/folder-archiving-powershell/</guid><description>Find project folders that haven&#39;t changed in N days, zip each one to an archive location with the date of its last change, verify it, and optionally clear out the original.</description></item><item><title>Cinnamon Rolls</title><link>https://wesellis.com/blog/cinnamon-rolls/</link><guid>https://wesellis.com/blog/cinnamon-rolls/</guid><description>From the recipe box: cinnamon rolls. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Setting a High Performance Power Plan with an SCCM Package</title><link>https://wesellis.com/blog/creating-an-sccm-package-to-configure-high-performance-power-plan/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-to-configure-high-performance-power-plan/</guid><description>Switch workstations to High Performance (or Ultimate Performance) by GUID, restore the plan if the image hid it, and don&#39;t end up with five copies of it.</description></item><item><title>3 Cheese Omelet</title><link>https://wesellis.com/blog/3-cheese-omelet/</link><guid>https://wesellis.com/blog/3-cheese-omelet/</guid><description>From the recipe box: 3 cheese omelet. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Test and Convert a Folder of Mixed Archives with 7-Zip</title><link>https://wesellis.com/blog/archive-conversion-powershell/</link><guid>https://wesellis.com/blog/archive-conversion-powershell/</guid><description>Integrity-test every ZIP, 7z, RAR and TAR in a folder, then optionally repack the good ones into a single format. Broken archives never get touched.</description></item><item><title>Remove a Dell BIOS Admin Password with PowerShell and ConfigMgr</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-bios-admin-unlock/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-bios-admin-unlock/</guid><description>Clear the BIOS setup password on Dell PCs and see exactly what changed, with the password supplied at runtime instead of sitting in a package.</description></item><item><title>Silently Uninstall Any App by Name with a ConfigMgr Package</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-cherwell-service-management-uninstaller/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-cherwell-service-management-uninstaller/</guid><description>One uninstall script for every retired app. Give it a display name and it finds the right uninstall command, MSI or not, and runs it quietly.</description></item><item><title>Checking (and Nudging) Google Chrome Updates with PowerShell</title><link>https://wesellis.com/blog/automate-google-chrome-updates-with-a-batch-script/</link><guid>https://wesellis.com/blog/automate-google-chrome-updates-with-a-batch-script/</guid><description>Find out which Chrome version a machine is really running, whether an update is stuck waiting on a restart, and kick Google&#39;s updater into checking now.</description></item><item><title>Clearing a Stuck Print Spooler with PowerShell</title><link>https://wesellis.com/blog/clearing-print-spooler-to-resolve-stuck-jobs/</link><guid>https://wesellis.com/blog/clearing-print-spooler-to-resolve-stuck-jobs/</guid><description>Stop the spooler, clear out the wedged job files, and bring it back up, with -WhatIf and an option to leave recent jobs alone.</description></item><item><title>Clear a Dell Hard Drive Password with PowerShell and ConfigMgr</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-bios-hdd-unlock/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-bios-hdd-unlock/</guid><description>Remove the internal drive password from Dell PCs with Dell&#39;s PowerShell provider, without ever writing the password into a script or package.</description></item><item><title>Set Extension Attributes on Entra ID Users with PowerShell</title><link>https://wesellis.com/blog/azure-ad-custom-attribute-update/</link><guid>https://wesellis.com/blog/azure-ad-custom-attribute-update/</guid><description>Write extensionAttribute1-15 on cloud-only Entra ID users from a CSV, with a clear note for every synced account it can&#39;t touch.</description></item><item><title>Defender for Endpoint vs. Intune: Who Actually Manages the Device?</title><link>https://wesellis.com/blog/how-to-move-a-device-from-microsoft-defender-for-endpoint-mde-to-intune/</link><guid>https://wesellis.com/blog/how-to-move-a-device-from-microsoft-defender-for-endpoint-mde-to-intune/</guid><description>Onboarding to Defender for Endpoint and enrolling in Intune are two different things, and you almost never have to offboard one to get the other.</description></item><item><title>Egg in a Basket</title><link>https://wesellis.com/blog/egg-in-a-basket/</link><guid>https://wesellis.com/blog/egg-in-a-basket/</guid><description>From the recipe box: egg in a basket. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Rotate Local Admin Passwords Across the Fleet with Windows LAPS and ConfigMgr</title><link>https://wesellis.com/blog/creating-an-sccm-package-for-administrator-password-renewal/</link><guid>https://wesellis.com/blog/creating-an-sccm-package-for-administrator-password-renewal/</guid><description>Force an immediate local admin password rotation on every machine in a collection, with Windows LAPS doing the password part so no script ever sees one.</description></item><item><title>Breakfast Fiesta Mix</title><link>https://wesellis.com/blog/breakfast-fiesta-mix/</link><guid>https://wesellis.com/blog/breakfast-fiesta-mix/</guid><description>From the recipe box: breakfast fiesta mix. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Forcing a Group Policy Refresh with PowerShell and SCCM</title><link>https://wesellis.com/blog/automating-group-policy-update-with-powershell-and-sccm/</link><guid>https://wesellis.com/blog/automating-group-policy-update-with-powershell-and-sccm/</guid><description>A gpupdate wrapper that checks the domain trust first, never bounces anyone&#39;s session, and reports a real success or failure back to ConfigMgr.</description></item><item><title>Omelet Using a Ring</title><link>https://wesellis.com/blog/omelet-using-a-ring/</link><guid>https://wesellis.com/blog/omelet-using-a-ring/</guid><description>From the recipe box: omelet using a ring. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Tater Tot Hash Browns</title><link>https://wesellis.com/blog/tater-tot-hash-browns/</link><guid>https://wesellis.com/blog/tater-tot-hash-browns/</guid><description>From the recipe box: tater tot hash browns. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Deleting Stale Computer Accounts from Active Directory, Safely, with a CSV Log</title><link>https://wesellis.com/blog/powershell-script-to-delete-devices-from-active-directory-and-save-logs/</link><guid>https://wesellis.com/blog/powershell-script-to-delete-devices-from-active-directory-and-save-logs/</guid><description>Feed it a list or an OU, and it deletes (or disables) only the computers that are genuinely stale, logs every decision to CSV, and shows you the plan first with -WhatIf.</description></item><item><title>Biscuits &amp; Gravy</title><link>https://wesellis.com/blog/biscuits-gravy/</link><guid>https://wesellis.com/blog/biscuits-gravy/</guid><description>From the recipe box: biscuits &amp; gravy. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Audit a Windows Service Across Many Computers with PowerShell</title><link>https://wesellis.com/blog/powershell-service-audit/</link><guid>https://wesellis.com/blog/powershell-service-audit/</guid><description>Feed it a list of computers and a service name, get back one row per machine saying whether it&#39;s installed, running, and how it starts.</description></item><item><title>Banana Foster Pancakes</title><link>https://wesellis.com/blog/banana-foster-pancakes/</link><guid>https://wesellis.com/blog/banana-foster-pancakes/</guid><description>From the recipe box: banana foster pancakes. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>What Get-WindowsAutopilotInfo Actually Does (and How to Use It Today)</title><link>https://wesellis.com/blog/understanding-the-purpose-of-get-windowsautopilotinfo-ps1/</link><guid>https://wesellis.com/blog/understanding-the-purpose-of-get-windowsautopilotinfo-ps1/</guid><description>The hardware hash script behind Windows Autopilot, explained. Upload straight to Intune with -Online, or export a CSV when the device can&#39;t reach the tenant.</description></item><item><title>Bacon Goat Cheese Hash</title><link>https://wesellis.com/blog/bacon-goat-cheese-hash/</link><guid>https://wesellis.com/blog/bacon-goat-cheese-hash/</guid><description>From the recipe box: bacon goat cheese hash. Ingredients, method, and directions from the original kitchen notebook.</description></item><item><title>Border Fiesta Omelet</title><link>https://wesellis.com/blog/border-fiesta-omelet/</link><guid>https://wesellis.com/blog/border-fiesta-omelet/</guid><description>From the recipe box: border fiesta omelet. Ingredients, method, and directions from the original kitchen notebook.</description></item></channel></rss>
