Shaun Wilkinson's Avatar

Shaun Wilkinson

@shaundwilkinson.bsky.social

Microsoft Azure & PowerShell MVP | Tech Blogger for Sysadmin Central

215 Followers  |  74 Following  |  64 Posts  |  Joined: 29.11.2024  |  1.8738

Latest posts by shaundwilkinson.bsky.social on Bluesky

Preview
A Practical Guide to Connect-MgGraph and Microsoft Graph App Registration via PowerShell The Connect-MgGraph command is the entry point for automating Microsoft Graph API access using PowerShell. Whether you're writing scripts to manage Entra ID, Intune, or Microsoft 365 services, understanding how this command works and how it relates to app registrations is critical. This post will walk through - What Connect-MgGraph actually does How app authentication works When and how to register an app manually…

Want to start automating your environment or just want a clearer idea how to authenticate with Microsoft Graph?

Then this is the post for you! Today I'm covering exactly how to authenticate with the Graph API and why you may want to use each type of authentication.

#Azure #MVP #PowerShell

25.08.2025 12:02 — 👍 3    🔁 0    💬 0    📌 0
Preview
How to Find Empty Azure Resource Groups Resource Groups form the backbone of many companies compliance policies, they're often the target of tagging policies and annual reviews, which means that for each Resource Group you're often increasing the amount of maintenance overhead. That's fine if the Resource Group contains something of value, but what if you're wasting effort on Resource Group that no longer need to be maintained?

Struggling with Azure Resource Group sprawl? Learn how to quickly identify and export empty RGs using PowerShell to clean up your cloud environment and reduce overhead.

#Azure #PowerShell #CloudGovernance #AzureCleanup #DevOps #SysAdmin #CloudOps #MicrosoftAzure #MVP

11.08.2025 09:00 — 👍 0    🔁 0    💬 0    📌 0
Preview
Healaval Beg Trig Point (Orbost) – One of the two Macleods Tables Altitude 1601 Feet Trail Conditions Gravel track followed by moorland Difficulty Low Experience 8/10 Est. Time 3-4 hours Distance 5-6 Miles Starting Location Orbost Farm Car Park History of the Local Area Healabhal Bheag which is the southern of the two hills that make up the Macleods Tables, roughly translates as simply Little Healabhal from Gaelic. "Healabhal" potentially has its roots in Old Norse or Gaelic however I can find no definitive source that covers it's meaning.

Healaval Beg Trig Point (Orbost) – One of the two Macleods Tables

Altitude 1601 Feet Trail Conditions Gravel track followed by moorland Difficulty Low Experience 8/10 Est. Time 3-4 hours Distance 5-6 Miles Starting Location Orbost Farm Car Park History of the Local Area Healabhal Bheag which is…

05.08.2025 13:02 — 👍 0    🔁 0    💬 0    📌 0
Convert Images to WebP with a Right-Click in Linux Mint Easily convert high-resolution images to the modern WebP format directly from your right-click menu in Linux Mint using a custom Nemo Action. In my test, 2 images were reduced from 3.1MB to just 100.2KB, a 96.8% size reduction with no noticeable quality loss. Learn how to set it up in minutes using just a single configuration file.

I often have to convert various file types to .webp for web use and it's always a bit of a pain to do. So I've created a basic Linux right-click menu extension to do just that. Now it's effortless!

All code in the linked post!

#Linux #SysAdmin #Automation #LinuxTips

28.07.2025 13:00 — 👍 0    🔁 2    💬 0    📌 0
Preview
Beinn na Bhraghad Trig Point (Fairy Pools) – A Unique View of the World Famous Fairy Pools Altitude 1505 Feet Trail Conditions Forestry track, boggy uphill section, spongy moss Difficulty Low Experience 8/10 Est. Time 2-3 hours Distance 5-6 Miles Starting Location Forestry entrance or Foresty car park before Fairy Pools History of the Local Area The Fairy Pools found to the south east of Beinn na Bhraghad is today an extraordinarily popular tourist destination due to it's often crystal clear pools surrounded by the dramatic Cuillins as a background, however, in 1601 it was the site of a conflict between the Macleods and Macdonalds which has since been referred to as the "Battle of Coire na Creiche" (translates to "The hollow of the spoil" from gaelic), which was so bloody that it's said the Fairy pools ran red with blood.

I recently conquered the Trig Point found on Beinn na Bhreaghad, near the Fairy Pools on Skye. A great walk with stunning views of the cuillins and the last great clan battle on Skye.

#TrigPoints #Skye #Hillwalking #Nature

23.07.2025 12:02 — 👍 1    🔁 0    💬 0    📌 0
Preview
How to Migrate Azure Key Vault Secrets Across Tenants and Subscriptions Using PowerShell Effortlessly migrate secrets between Azure Key Vaults across tenants or subscriptions using PowerShell. This guide walks through a robust, script-based solution for cloning secrets with minimal downtime and full reporting. Ideal for DevOps, cloud engineers, and Azure admins.

Need to clone secrets between Key Vaults in different subscriptions or tenants without downtime? Microsoft doesn’t make this easy.

I built a PowerShell script that can migrate Secrets cross-subscription & tenant, whilst preserving as much metadata as possible.

#Azure #PowerShell #DevOps

14.07.2025 12:01 — 👍 2    🔁 0    💬 0    📌 0
Preview
The Storr Trig Point (The Old Man of Storr) – The Highest Point of the Trotternish Ridge The Old Man of Storr, a prominent Isle of Skye landmark, features a medium to high difficulty trail of 7-8 miles starting at Storr Car Park. With stunning views, the hike takes 3-5 hours. It's surrounded by folklore and geologically significant formations, attracting over 220,000 visitors annually.

Visited one of the most iconic landmarks on Skye recently - the Old Man of Storr!

Definitely one of the most rewarding hikes I've completed recently and well worth a visit.

#IsleOfSkye #OldManOfStorr #Hiking #TrigPoints

24.06.2025 21:03 — 👍 0    🔁 0    💬 0    📌 0
Preview
Stop/Start Music on Linux with a Keyboard Shortcut Using playerctl Create a global keyboard shortcut to control YouTube Music and other music apps on Linux using playerctl. This step-by-step guide shows you how to install and configure everything in just minutes.

Did you know you can control Music on Linux with a simple keyboard shortcut?

🎧 Learn how to use playerctl to add global media controls in just a few steps.

#Linux#YouTubeMusic #playerctl #SysAdminTips #LinuxProductivity #OpenSourceTools #KeyboardShortcuts #TechBlog

23.06.2025 07:14 — 👍 0    🔁 0    💬 0    📌 0
Preview
Meall a’ Mhaoil Trig Point (Moll) – A Short Energetic Uphill Climb in a Hidden Valley The walk to the Trig Point starts at the forestry access on Moll Road, following a steep, boggy hill track. Covering 2-3 miles in 1-2 hours, the trail ascends to Meall a' Mhaoil, offering stunning views of Scalpay and the Cuillins. Difficulty is low, with a moderate experience level of 6/10.

Quiet hill, big views. Park at Moll, follow the track by the river, then climb through Coire Mòr’s ancient lazy beds to reach Meall a' Mhaoil. Trig Point and stunning views of Scalpay + the Cuillins await.

#IsleOfSkye #SkyeHiking #Hillwalking #HiddenScotland #GetOutside #TrigPointHunt

10.06.2025 10:05 — 👍 4    🔁 0    💬 0    📌 0
Preview
Exporting Azure App Configuration Values with PowerShell Azure App Configuration is a powerful service for managing application settings and feature flags centrally, however, I found that the export options were somewhat lacking for my use-case, which was deprecating an old App Configuration resource where I needed ideally a csv file so I could run comparisons against another system. In this post, we’ll walk through a PowerShell script that extracts App Configuration key-values and exports them to a CSV.

Ever needed to audit or migrate Azure App Configuration data? I just documented a clean PowerShell script to export the key-values into a CSV. Useful for compliance, debugging, and automation. #Azure #PowerShell

09.06.2025 10:00 — 👍 0    🔁 0    💬 0    📌 0
Preview
Culnacnoc Trig Point (Brothers Point) – Panoramic Views of Ancient History Altitude 354 Feet Trail Conditions Road followed by short grass uphill section Difficulty Low Experience 10/10 Est. Time 30 minutes Distance 1 Mile Starting Location Brothers Point Carpark History of the Local Area According to local tradition, the graveyard known as Kilena was once the site of a large chapel, though no trace of the building remains today unfortunately. While the chapel itself is a mystery, the surrounding area is rich in history and archaeology.

Climb to the Trig Point above Brothers Point and soak in some of Skye’s finest coastal views. A perfect spot for a picnic with ancient history and dinosaur footprints just a short walk away.

#IsleOfSkye #BrothersPoint #ScotlandWalks #TrigPointViews #HikingSkye

27.05.2025 10:32 — 👍 0    🔁 0    💬 0    📌 1
Preview
Why You Should Be Deallocating Azure VMs Rather Than Just Stopping Them Confused about Azure VM costs when you shut them down? Learn why deallocating VMs, not just stopping them, is crucial to avoid unnecessary compute charges. This guide explains the difference, shows how to deallocate with Azure CLI and PowerShell, and highlights common pitfalls.

Many people think stopping an Azure VM is enough to save money but you should be deallocating!

If you're managing VMs, here’s why deallocating them matters for cutting costs fast.

#Azure #CloudComputing #SysAdmin #AzureVM #AzureTips #ITPros

27.05.2025 09:01 — 👍 0    🔁 0    💬 0    📌 0
Ben Uigshader Trig Point (Edinbane): Dramatic Wind Turbines Edinbane, established by Kenneth MacLeod, boasts a rich history tied to settlement since before 1600. The area features a 4-mile low-difficulty walking trail starting at Upper Edinbane, offering scenic views including wind turbines and the Cuillin mountains. Notable historical sites include a restored hospital now serving as holiday accommodations.

A Trig Point walk to the wind farm and beyond.

13.05.2025 14:10 — 👍 0    🔁 0    💬 0    📌 0
Original post on infosec.exchange

So by deallocating my VM in #Azure instead of just shutting it down, my expenses for the last 24 hours are 1.5 krona ($0,15).

Normal operating cost can be as "high" as 7 kr ($0,7) per 24 hours so if you run a hobby VM there it pays to stop and deallocate your VMs.

Probably easy to forget […]

08.05.2025 05:37 — 👍 1    🔁 1    💬 1    📌 0

This is something that most seem to forget, honestly unless you need to retain a non-static IP for whatever reason you should always deallocate rather than simply stop.

Another quick way to save cash is to downgrade the SKU of attached disks if they'll be off for a while!

08.05.2025 09:06 — 👍 0    🔁 0    💬 0    📌 0
Preview
Azure Services Retirement Workbook: Your Future-Self Will Thank You You know that feeling when you find out a critical Azure service you're using is being retired next week, and nobody told you? Yeah, let's not do that again. Look no further than the Azure Services Retirement Workbook, a small but mighty tool that every cloud admin and architect should be familiar with.

You know that feeling when you find out a critical #Azure service you're using is being retired next week, and nobody told you? Yeah, let's not do that again.

Look no further than the Services Retirement Workbook, a small but mighty tool that every #cloud admin should be familiar with.

06.05.2025 07:41 — 👍 0    🔁 0    💬 0    📌 0
Preview
Easily Identity Function Apps Running Retired Runtime Versions With ever more deprecation on the horizon, it's important to be able to easily identify Function Apps which may now be running deprecated language versions. This ensures you continue to receive support and security updates, avoid performance degradation and unexpected failures and remain in compliance with Azure's best practice guidelines. This article and the code are based on an excellent recent post from…

It's important to be able to easily and accurately identify #Azure Function Apps running on unsupported runtimes, I've made this as easy as possible using PowerShell. Come check it out!

22.04.2025 11:01 — 👍 1    🔁 0    💬 0    📌 0
Preview
Ben Tianavaig (Camustianavaig) – Skye at it’s Best Altitude 1354 Feet Trail Conditions Well-established foot trails Difficulty Low Experience 10/10 Est. Time 2-4 hours Distance 4-5 Miles Starting Location Tianavaig Bay Car Park - Camustianavaig History of the Local Area Camustianavaig is a small crofting township located at the start of this walk. Its original name, "Camas Dionabhaig," derives from both Gaelic and Norse roots. In Gaelic, "Camas" means "bay," while the Norse "dyn" translates to "noisy."

Ben Tianavaig (Camustianavaig) – Skye at it’s Best

Altitude 1354 Feet Trail Conditions Well-established foot trails Difficulty Low Experience 10/10 Est. Time 2-4 hours Distance 4-5 Miles Starting Location Tianavaig Bay Car Park - Camustianavaig History of the Local Area Camustianavaig is a small…

22.04.2025 09:31 — 👍 0    🔁 0    💬 1    📌 0
Preview
Beinn Bhreac Trig Point (Coral Beach): A Rare Sandy Beach on Skye Altitude 1030 Feet Trail Conditions Farm Road followed by uphill bog, before grass fields and white sands Difficulty Low Experience 9/10 Est. Time 3-4 hours Distance 5 Miles Starting Location Claigan Coral Beach Car Park History of the Local Area Beinn Bhreac, the mountain where the Trig Point is situated, is a common name across Scotland. The name translates to "Speckled Mountain" in Gaelic, reflecting a tendency for places like this to have descriptive rather than unique names.

Another day, another #TrigPoint walk. This time visiting Beinn Bhreac near the world-famous Coral Beach!

08.04.2025 11:02 — 👍 0    🔁 0    💬 0    📌 1
Preview
Save Cash & Increase Performance – Legacy Azure Web App Pricing Plans As Azure evolves, so does its pricing models, often leaving legacy pricing plans in place for existing customers. While these older plans may still function, they can result in unnecessary costs and limit access to newer, more powerful compute resources. Many organizations continue running their Azure Web Apps on outdated Standard (S1, S2, S3) or Premium v2 (P1v2, P2v2, P3v2) plans without realizing the potential savings and performance boosts that can come from upgrading.

Save Cash & Increase Performance – Legacy Azure Web App Pricing Plans

As Azure evolves, so does its pricing models, often leaving legacy pricing plans in place for existing customers. While these older plans may still function, they can result in unnecessary costs and limit access to newer, more…

31.03.2025 10:59 — 👍 0    🔁 0    💬 0    📌 0
Preview
Suidh a Mhinn Trig Point (Kilmuir): Stunning Loch Views This walk actually took place near the end of last year. This time I found myself climbing Suidh' a' Mhinn "Seat of the Gentle" near Kilmuir on one of the last sunny days of the year.

This walk actually took place near the end of last year. This time I found myself climbing Suidh' a' Mhinn "Seat of the Gentle" near Kilmuir on one of the last sunny days of the year.

#Skye #TrigPoints #Hiking

24.03.2025 14:39 — 👍 0    🔁 0    💬 0    📌 0
Preview
How to Set Up Dynamic DNS (DDNS) on Azure & Linux for Your Home Network In this article I'll cover configuring Azure DNS and a local service running on a Linux server to update the DNS record automatically.

Although static IP's are cheap these days, they don't come as standard on home networks, which leaves us needing a solution for dynamically mapping a hostname to our ever-changing home IP.

In this article I'll show a really simple way to handle this and it's completely free!

17.03.2025 13:02 — 👍 1    🔁 0    💬 0    📌 0
Preview
Meall An Fhuarain Trig Point (Varragill): River Views Followed by a Sight of the Stunning Cuillins Altitude954 FeetTrail ConditionsForestry road followed by intermittent bogs and sheep trailsDifficultyLowExperience8/10Est. Time2-3 hoursDistance3 MilesStarting LocationVarragill River Lay-By on th…

IT is all good and fun, but a little balance is important. Today I took a stroll up to my latest Trig Point, Meall An Fhuarain can be found a little south of Portree on the Isle of Skye and provides some stunning vista's of the Cuillin Hills!

#TrigPoints #Nature #NotJustIT #IsleOfSkye

17.03.2025 12:10 — 👍 1    🔁 0    💬 0    📌 0
Preview
Simplifying Azure Entra ID PIM Role Reviews with PowerShell Managing system access is crucial for maintaining security and compliance in any organization. In this post, we explore best practices for reviewing system access, identifying unnecessary permissio…

Simplify your #Azure #PIM role management, with this handy PIM Role Activation Reporting script!

03.03.2025 13:54 — 👍 1    🔁 0    💬 0    📌 0
Preview
Simplifying Azure Entra ID PIM Role Reviews with PowerShell Managing system access is crucial for maintaining security and compliance in any organization. In this post, we explore best practices for reviewing system access, identifying unnecessary permissions, and strengthening your security posture. Learn how to streamline user roles, audit access logs, and implement automated reviews to protect your infrastructure effectively.

Simplify your PIM role management, with this handy PIM Role Activiation Reporting script!

03.03.2025 13:03 — 👍 0    🔁 0    💬 0    📌 0
Preview
Azure DevOps – Failed to delete. Force push permission is required to delete branches I've recently been tidying up some of my personal project code repositories in Azure DevOps, treating them like professional environments where possible to get myself into some better habits. Part of this is ensuring that old branches are properly cleaned up and removed where no longer required. But I kept receiving an error when trying to delete a branch that stated "

Azure DevOps – Failed to delete. Force push permission is required to delete branches

I've recently been tidying up some of my personal project code repositories in Azure DevOps, treating them like professional environments where possible to get myself into some better habits. Part of this is…

20.02.2025 13:00 — 👍 0    🔁 0    💬 0    📌 0
Preview
How to add Custom Values to App Insights Logging – Monitor-OpenTelemetry With Microsoft recommending that any new projects migrate from the old appinsights Node.JS module to @azure/monitor-opentelemetry I figured I’d bite the bullet and upgrade one of my own proje…

With Microsoft recommending that any new projects migrate from the old appinsights Node.JS module to @azure/monitor-opentelemetry I figured I’d bite the bullet and upgrade one of my own projects and share the results.

#Azure #AppInsights #NodeJS #OpenTelemetry

03.02.2025 09:02 — 👍 1    🔁 0    💬 0    📌 0

Thanks so much!

01.02.2025 16:10 — 👍 1    🔁 0    💬 0    📌 0
Post image

Well it's been a long road, but I'm absolutely made up at being awarded a Microsoft #MVP award for Microsoft #Azure, and specifically the #PowerShell Technology Area.

01.02.2025 11:15 — 👍 10    🔁 0    💬 2    📌 0
Shaun Wilkinson

Shaun Wilkinson

🚨New Microsoft MVP Alert🚨

Shaun Wilkinson

Award Category: Microsoft Azure

Technology Area: PowerShell

Country: United Kingdom

01.02.2025 10:55 — 👍 10    🔁 1    💬 0    📌 0

@shaundwilkinson is following 20 prominent accounts