pwshguy

joined 3 years ago
MODERATOR OF
 

Apologizes for the abridged version of PowerShell Weekly. It's a holiday and my nephew's waiting on me to take him fishing. I owe you all an extra-large edition next week. Thanks for understanding!

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • Automating Microsoft 365 with PowerShell Second Edition
    The Office 365 for IT Pros team are thrilled to announce the availability of Automating Microsoft 365 with PowerShell (2nd edition). This completely revised 350-page book delivers the most comprehensive coverage of how to use Microsoft Graph APIs and the Microsoft Graph PowerShell SDK with Microsoft 365 workloads. Existing subscribers can download the second edition now free of charge.

Community

  • Behind the Shell with Microsoft
    In this episode, recorded live at PSConfEU, Andrew catches up with some of the PowerShell team from Microsoft to talk all things PowerShell—from AIShell to PSResourceGet to the future of DSC and OpenSSH.

Events

  • NYC Agentic Foundation – First Meetup
    I’ll be attending. They're demoing Claude, Roo, and early agentic workflows. If you're into orchestration, multi-agent coordination, or spec-driven dev (AIDD, anyone?), it's worth a look.

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Blogs, Articles, and Posts

  • Token Protection Extends to Microsoft Graph PowerShell SDK Sessions
    The conditional access policy condition for token protection now extends to Microsoft Graph PowerShell SDK interactive sessions. Any account within the scope of a CA policy that requires token protection can use Web Account Manager (WAM) to sign in and check that everything is secure and ready to go. It’s a protection that might be of interest to administrators and developers that access sensitive data in Graph SDK sessions.
  • PowerShell 101: Creating a Module Manifest
    Maybe you've put together some great functions but struggle to make them cohesive, intuitive, or shareable. Without a way to define your module's identity and functionality, managing or scaling as your scripts evolve into robust tools can be a headache. Not unless you have a module manifest in place.
  • Reboot with PowerShell: Use Restart-Computer to restart locally, remotely, and automate reboots for multiple Windows computers
    Rebooting a Windows PC via PowerShell is a routine administrative task. This guide will teach you how to use the PowerShell cmdlet Restart-Computer to reboot a local Windows PC, restart a remote computer, and automate the reboot process for multiple systems.
  • 10 Powerful PowerShell Select-String Examples
    As a PowerShell administrator, I mostly worked with the PowerShell Select-String cmdlet. So, I thought to show you 10 real examples of Select-String in PowerShell.
  • Practical Graph: Finding Owners for Ownerless Apps from Audit Data
    When administrators create new Entra ID apps, the apps don't have an owner unless an owner is explicitly assigned. The net result is that a tenant can end up with many ownerless apps. In this article, we explain how to find ownerless apps, and how to use audit data to find suitable owners for those apps. All done with PowerShell, of course.

Projects, Scripts, and Modules

  • EntraFIDOFinder Update
    June( v0.0.18) update is here and we skipped May as I could tell they were still making some changes so I didn’t push them to the PowerShell gallery. This month they removed 50+ keys as they were unapproved models, but there are still over 150 keys that are Entra Attestation capable!

Books, Media, and Learning Resources

  • Optimizing Visual Studio Code for PowerShell, 2025 Edition
    In this session, Justin Grote presents an in-depth overview of optimizing Visual Studio Code (VS Code) specifically for PowerShell development. He begins by establishing the importance of VS Code as the recommended editor for PowerShell, having evolved from a basic text editor to a powerful tool that supports a variety of programming languages and capabilities. The lecture aims to provide a structured approach for setting up VS Code for PowerShell users, whether they are new to the environment or seasoned developers looking to refine their setup.
  • Lightning Demos from PSConfEU
    See the Lightning Demos from PSConfEU 2025

Community

  • A Conversation from the Heart of PSConfEU
    In this episode of the PowerShell Podcast, host Andrew Pla reports live from PowerShell Conference Europe 2025 in Malmö, Sweden. With energy high and community engagement stronger than ever, Andrew chats with key figures shaping the PowerShell ecosystem.
  • The Dos and Don'ts of PowerShell with Steven Judd and Gilbert Sanchez
    In this episode of the PowerShell Podcast, we’re joined by Steven Judd and Gilbert Sanchez, two active contributors and speakers in the PowerShell community. We talk about the Dos and Don'ts of PowerShell. We cover topics like documentation, testing, community, how you should view yourself in your growth, and even get some top tips on logging from those who have done PowerShell at the highest levels. 
  • PowerShell Community Call
    June 2025 Community Call recording

Events

  • NYC Agentic Foundation – First Meetup
    I’ll be attending. They're demoing Claude, Roo, and early agentic workflows. If you're into orchestration, multi-agent coordination, or spec-driven dev (AIDD, anyone?), it's worth a look.

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Announcements!

Blogs, Articles, and Posts

  • Automating Network Diagnostics with Globalping PowerShell Module
    Are you tired of manually running network diagnostics like Ping, Traceroute, or DNS queries? The Globalping PowerShell Module is here to save the day! With its easy-to-use cmdlets, you can automate measurements from probes distributed across the globe.
  • QuietShell – Executing PowerShell without a Console Window
    For some time I’ve used a simple VBScript wrapper in code projects and scheduled tasks to allow silent execution of PowerShell scripts in the user context without displaying a console window: But with the deprecation of VBScript and it’s eventually being removed from the Windows OS, it was time to look at alternative ways
  • AI Inception: Building AI Solutions with AI for AI
    Last month I had the pleasure of speaking at the Sydney event for Global Azure. My session was the title of this post, AI Inception: Building AI Solutions with AI for AI. One key component of my talk was on Recursive AI.
  • Download Windows Themes using PowerShell
    You can switch your Windows Theme using the Settings app and the Microsoft Store, but you can also download them from the Microsoft site using PowerShell to save them locally for easy switching between them. In this blog post, I will show you how.

Projects, Scripts, and Modules

  • DiskReportingTools
    A set of PowerShell tools for disk reporting and visualization. The tools rely on CIM cmdlets so this module requires a Windows platform.
  • AIShell.Ollama.Agent
    This agent is used to interact with a language model running locally or remotely by utilizing the Ollama API. Before using this agent locally you need to have Ollama installed and running.
  • Updating the Entra ID Custom Banned Password List with PowerShell
    Microsoft 365 tenants with Entra P1 or P2 licenses can use a custom banned password list to stop people using specific terms in their passwords. The idea is to prevent easily-guessed terms being used in passwords. You could also block words deemed to be objectionable. In any case, this article explains how to maintain the custom blocked password list with a PowerShell script.
  • GenXdev v 1.184.2025
    GenXdev PowerShell Utilities and helpers

Community

  • The Life and Code of The PoSh Wolf
    This week, we sit down with Anthony Howell, better known as The PoSh Wolf, for an inspiring and entertaining conversation about PowerShell, community, and creativity. From his early days in a two-person IT department to speaking at PowerShell Summit, Anthony shares how passion, persistence, and curiosity have fueled his journey. He dives into his creative use of PowerShell for managing game servers and even building a Discord bot, proving that automation isn't just for enterprise tasks. We explore how side projects can grow into real skills, the value of sharing in the community, and how embracing mistakes makes us all better. Anthony also gives insights into using .NET in PowerShell, learning Go, and building resilient systems for fun and work.

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 
 

Blogs, Articles, and Posts

  • Registry Redirection: Why You Should Never Hardcode Wow6432Node and How to Properly Access Registry Views in PowerShell
    The Windows Registry is a critical component of the operating system that stores configuration settings, application options, and system parameters. On 64-bit Windows systems, the registry is divided into two views: one for 64-bit applications and another for 32-bit applications. This duality is essential for compatibility but can trip up administrators and scripters who aren’t aware of it.
  • Microsoft shares script to restore inetpub folder you shouldn’t delete
    Microsoft has released a PowerShell script to help restore an empty 'inetpub' folder created by the April 2025 Windows security updates if deleted. As Microsoft previously warned, this folder helps mitigate a high-severity Windows Process Activation privilege escalation vulnerability.
  • How to Block Ad-Hoc Email-Based Subscriptions
    The old Set-MsolCompanySettings cmdlet is no more, so how can a Microsoft 365 tenant block email-based subscriptions? With the Graph, of course! Seriously, there’s no 1-to-1 mapping from the old cmdlet to a new, but some of the settings are available in the Entra ID authorization policy. We can update the authorization policy with PowerShell to block email-based subscriptions, like Copilot Studio.
  • Warp Launch Log 3: MCP support, refine prompt, image upload, reusable prompts, git support
    Warp, the top terminal app with AI support, has introduced new features in its GA release, including MCP support and Refine for AI responses. The Preview release now allows image uploads and the saving of reusable AI prompts. I also found a few new features that weren’t mentioned in the Launch Log 3 post.
  • Concatenate String in Write-Host In PowerShell
    In this tutorial, I’ll walk you through multiple methods to concatenate strings in PowerShell’s Write-Host command, from the most basic approaches to advanced techniques. String concatenation in PowerShell, especially when using the Write-Host cmdlet, is something you’ll do almost daily if you’re writing scripts for system administration or automation tasks.
  • Intune Drift Control PowerShell
    This is my latest training exercise, building configuration drift control for Microsoft Intune with PowerShell and the pester module. I wanted to be able to check my clients configuration against my own baseline for Microsoft Intune. Of course, there are many tools out there that can do this for you. Like Andrew Taylor’s EUCToolbox.
  • Using the Polyglot extension from VSCode for creating Jupyter notebooks containing PowerShell code and how to use the PowerShellNotebook module
    I did a small demo session at Experts Live NL this week about this topic. In this blog post, I aim to demonstrate the capabilities of the Polyglot extension, explain its functionality, which is easier compared to the original method of creating Jupyter notebooks, which I covered in 2022.

Projects, Scripts, and Modules

Community

  • From DJ Decks to Cloud Architecture - Shannon Eldridge-Kuehn
    In this episode of the PowerShell Podcast, we chat with Shannon Eldridge-Kuehn, a seasoned technologist whose career spans from spinning vinyl as a DJ to leading cloud and FinOps consulting. Shannon shares her unique journey into tech, driven by curiosity and a desire to record her DJ sets, which ultimately led to a successful career in cloud infrastructure, Azure, platform engineering, and FinOps. We explore Shannon’s transition into IT without a traditional tech background, her time at Microsoft, and her current work in FinOps. She discusses the challenges of cloud adoption, navigating imposter syndrome, and why strong communication skills are just as critical as technical ones. This episode is a masterclass in resilience, career evolution, and staying curious. 

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Announcements!

Blogs, Articles, and Posts

  • Managing Guest Users in PowerShell with Microsoft Graph API
    Managing Guest Users in PowerShell with Microsoft Graph API In today’s collaborative work environments, inviting guest users to access organizational resources has become a common practice.
  • Exchange Online Upgrades Its Message Tracing Capabilities
    Microsoft announced the GA for the new message tracing feature on June 3. The old code will be deprecated in September 2025, so it's time to update any PowerShell scripts that use the Get-MessageTrace or Get-MessageTraceDetail cmdlets. Upgrading is easy and shouldn’t take too long, once you find the time to do the work.
  • Enhanced Dashboards with PSWriteHTML – Introducing InfoCards and Density Options
    Discover new features in the PSWriteHTML PowerShell module – including New-HTMLInfoCard, improved layout controls with the -Density parameter, and customizable shadows for clean, modern dashboards and reports.
  • Avoid The Five Big Errors in Graph PowerShell Scripts
    Everyone learns from experience. This article covers five important building blocks for writing great Graph PowerShell scripts, the product of hard-won experience and many mistakes. Filtering, properties, permissions, and pagination all make the list.
  • Creating/downloading videos from Azure OpenAI Sora by PowerShell/API
    Finally the OpenAI Sora model is released in preview for Azure AI Foundry. You can read more about it here. Sora is a text to video model that lets you input a description of a scene and it generates a video from it. Using the Video playground in AI Foundry its super easy to generate
  • Practical PowerShell: Crafting Collections
    PowerShell scripting becomes far more powerful when you master collections like arrays and hash tables. In this article, we review the basics of standard collection types. Then, walk through additional useful options that leverage other object types available through the .NET Framework.
  • How to Get SharePoint Document Library Size using PnP PowerShell?
    One of my clients recently asked how to check the size of a specific SharePoint document library. The easiest way is through SharePoint’s Storage Metrics, which is available in the site settings. It provides the total size, %of Site Quota, etc. In this article, I will also explain how to get the SharePoint document library
  • How do I get the full Azure Advisor Recommendation from an API?
    Recently at work I was writing a script to pull all Azure Advisor recommendations for a set of subscriptions for further analysis and display, and I wanted to make sure that my output included as much information as possible. The list of recommendations is readily available via the API, and based on the example output I thought - perfect! This should have all of the information I could need!

Projects, Scripts, and Modules

  • MySQLite v 1.0.0
    A small set of PowerShell commands for working with SQLite database files. - jdhitsolutions/MySQLite

Community

  • Hacking Games and Building a Career - Mateus Pimentel
    In this episode of the PowerShell Podcast, we take a detour from our typical PowerShell conversations to explore the fascinating world of game hacking with backend services developer Mateus Pimentel. Mateus shares his journey from crafting bots for MMORPGs to reverse engineering games and ultimately working in online services for a major gaming company.We discuss his early experiences hacking Tibia, how he overcame being hacked himself as a kid, and how those formative experiences shaped his approach to software development and cybersecurity. Mateus also dives into powerful learning experiences from hacking games, participating in Capture the Flag competitions, and avoiding the dark paths that lure many curious technologists. This episode is a compelling exploration of hacking culture, ethics, and personal transformation.
  • How to Write a CFP That Gets You to the PowerShell + DevOps Global Summit 2026
    So, you want to speak at the PowerShell + DevOps Global Summit 2026? Great. But before you start dreaming about standing ovations and post-talk high-fives, let’s talk about the one thing standing between you and that stage: your Call for Proposals (CFP).

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Blogs, Articles, and Posts

  • Microsoft Edit: Terminal editor for Windows and Linux
    Microsoft has recently launched Edit, a lightweight terminal editor for Windows and Linux. It revives the spirit of the MS-DOS Editor, which debuted in 1991 as a full-screen text editor for DOS and early Windows systems. Edit eliminates the need to leave the terminal to edit files. While Edit doesn't feature a traditional GUI, it supports tab management and can be navigated using a mouse. On Linux, the open-source tool can be seen as an alternative to nano.
  • How to List Hidden Group Memberships with the Graph
    A user reported that a script didn't list any details of hidden group memberships and asked why. The reason is that a separate Graph permission controls access to hidden group memberships. If an app doesn’t have the permission, the Graph returns null memberships, which is probably not all that helpful. Once the right permission is in place, everything works.
  • Track Microsoft Entra Application Operations Using PowerShell
    When applications are registered in Microsoft Entra, they are granted with surprising number of privileges like accessing sensitive data to acting on behalf of users. But these permissions aren’t static. Once an app is registered, its configuration can evolve over time through various operational changes.

Projects, Scripts, and Modules

Books, Media, and Learning Resources

Community

  • Building Fast Tools and Smarter Workflows with Justin Grote
    In this episode of the PowerShell Podcast, we welcome back Justin Grote, a Microsoft MVP and open-source powerhouse, for an in-depth and fast-paced conversation. Fresh off his PowerShell Wednesday presentation, Justin shares the thinking behind his latest innovations, including the creation of the high-performance ExcelFast module and his evangelism for dev containers and modern development workflows.
  • Add enhanced splatting RFC draft by jborean93
    Anyone interested in yet another attempt at trying to enhance splatting in PowerShell. I've tried to collate all the options proposed over the years with their pros/cons. Hoping to get any community feedback before trying to champion a proper RFC
  • PowerShell + DevOps Global Summit 2025
    The recordings from the PowerShell + DevOps Global Summit 2025 are starting to roll out on YouTube.

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Announcements!

  • AI Shell Preview 4 Release!
    We're excited to share the latest preview release of AI Shell that includes new features and improvements based on your feedback.

Blogs, Articles, and Posts

  • Learning Python via PowerShell - A turn to the dark side?
    PowerShell and Python are powerful programming languages with many similarities. While PowerShell is technically a shell scripting language (like Bash), functionally it has a lot more in common with Python, and can be used to generate scripts of equal complexity.
  • Deploy and automatically update WinGet apps in Intune using PowerShell without Remediation or 3rd party tools
    In this blog post, I will show you how to use PowerShell and the WinGet module to install a specific or the latest version of software using Intune Win32 Detection and install scripts. This solution will automatically update your apps if updates are available without using Remediation, Enterprise App Catalog, or third-party tools.
  • PowerShell Get-ItemProperty [with Examples]
    As a PowerShell administrator, I use the Get-ItemProperty cmdlet a lot. You can use this cmdlet to gather installed software information, access registry values, or retrieve file metadata, etc. In this tutorial, I will explain how to use Get-ItemProperty in PowerShell effectively with real-world examples that I’ve personally used throughout my decade-plus career with PowerShell.
  • Simplifying Dell Command Warranty with PowerShell
    TLDR: Get-DellWarrantyInfo Function can be found here: garytown/hardware/Dell/CommandUpdate/EMPS/Dell-EMPSWarranty.ps1 In this post I’ll cover the Dell Warranty CLI tool they provide, and how I’ve converted it to use a “PowerShell Wrapper” to make it simple and useful.

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • June 2025 Update for the Automating Microsoft 365 with PowerShell eBook
    The June 2025 update for the Automating Microsoft 365 with PowerShell eBook is now available. Coding automation with Microsoft 365 PowerShell can be challenging, but not with this book beside you. It contains hundreds of examples of working with Entra ID, Exchange Online, SharePoint Online, OneDrive for Business, Teams, and Planner using regular PowerShell cmdlets and the Graph APIs.
  • Live PowerShell Coding: Improving ModuleExplorer with Joshua Dearing
    Let's code some PowerShell, live! Joshua Dearing, PowerShell Podcast guest and PowerSheller extraoirdinaire, will join me for some good old-fashioned pair programming.

Community

  • Building Confidence and Community with PowerShell with Brock Bingham
    In this episode of the PowerShell Podcast, we sit down with Brock Bingham, a longtime PowerShell enthusiast, educator, and community advocate. Recorded live from PDQ Headquarters in Salt Lake City, Utah, this episode captures the high energy and camaraderie of a PowerShell Wednesday in person. Brock shares his journey from PowerShell beginner to mentor, his passion for community building, and the power of sharing knowledge with others.
  • PowerShell 7.5 and DSC 3.0.0 with Jason Helmick
    What's new in PowerShell 7.5? Richard talks to Jason Helmick about the latest version of PowerShell. Jason talks about 7.5 being a version with plenty of community contributions and what that means for everyone. He also...
  • A talk with the Angry Admin about VMWare, PowerShell, AI and more
    In this "Inside IT Automation" episode, Heiko has a conversation with Piotr Tarnawski aka AngrySysOps aka Angry Admin. They talk about VMware automations, PowerShell, AI and more.

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Announcements!

Blogs, Articles, and Posts

  • Shorten Azure CLI commands in PowerShell without backticks
    Learn how to shorten Azure CLI commands in PowerShell using arrays and splatting. No backticks needed. Cleaner, safer, and easier automation.
  • Microsoft Graph PowerShell SDK V2.28 Attempts to Restore Stability
    On May 10, 2025, Microsoft released V2.28 of the Microsoft Graph PowerShell SDK in the hope that the new version would fix a bunch of annoying problems that have dogged the SDK for several months. The first few days haven’t revealed any new problems and bug reports are being closed, so the signs are positive. But do test before deploying V2.28 into production.
  • What are GitHub Copilot instruction files? A simple usage example
    In Visual Studio Code version 1.100, Microsoft introduced GitHub Copilot instruction files, which mirror the Rules feature in AI IDEs like Cursor and Windsurf. Instructions allow you to guide the AI assistant’s behavior by providing specific, context-aware directives tailored to your coding standards and project requirements.
  • Get SharePoint List Column Details [Internal Name, Display Name, Data Type] Using PnP PowerShell
    A few weeks before, I developed a Power Apps application for a client that takes data sources as a SharePoint list. There are almost six lists, and each list has more than 20 fields. Due to some permission issues, we had to manually create all the lists and columns on the SharePoint site.
  • How to Check if a PowerShell String Contains Special Characters (5 Easy Methods)
    Recently, I was working on a PowerShell script to validate user inputs, and I needed to check if strings contained special characters. This is a common requirement when validating usernames, passwords, or parsing data files. The challenge is that PowerShell treats many special characters differently since they have specific meanings in the language.
  • Using Show-ObjectTree to browse PowerShell Objects
    You can use Get-Member to discover all Methods and Properties when working with Variables. But browsing them in your PowerShell Terminal is easier using Show-ObjectTree. In this small blog post, I'm having a busy week and preparing for my WorkplaceNinjasNL session next week, I will show you how that cmdlet works :-)

Projects, Scripts, and Modules

  • IntuneMermaid
    This module was created to generate diagrams on Mermaid format for Intune assignments of profiles and applications.

Books, Media, and Learning Resources

Community

  • PowerShell, Security, and the Path to Mastery.
    In this episode of the PowerShell Podcast, we bring you a special double feature! We chat with Bogdan Calapod live from PDQ HQ, a seasoned security expert and co-founder of Coda, who reflects on his path from hackathon projects to helping organizations secure their environments. Then, we sit down with Lucas Allman live from the PowerShell + DevOps Global Summit, where he shares his journey from podcast listener to conference presenter. Key topics in this episode include:

Fun

  • PowerShell Terminal Setup
    I just got back from Midwest Management Summit (MMS MOA), and I was a little surprised how many people wanted to know how I setup my terminal. I figured that since I had to read a couple of blog posts to get exactly the setup that I was after, this deserved a blog post.

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Blogs, Articles, and Posts

  • Sudo for Windows (PowerShell)
    Sudo for Windows is a new way for users to execute commands with elevated privileges (as an administrator) directly from a non-relevant console session on Windows.
  • How to Permanently Remove Mailbox Items with the Graph API
    Some new Graph APIs were announced on April 1 to close a feature gap with EWS. The new APIs permanently remove mailbox items and other objects, including folders, calendars, and calendar items. Permanent deletion means that items cannot be recovered through clients because they end up in the Purges folder in Recoverable Items. This article explains how the new APIs work, including a practical example.
  • How to Check if a Variable is Null or Empty in PowerShell?
    While working on PowerShell scripts, you’ll often need to check if a variable contains data before performing operations on it. There are various methods for checking this. In this article, I’ll show you several methods to check if a PowerShell variable is null or empty.
  • Export All Mailboxes in Microsoft 365 Using PowerShell
    Managing Exchange Online mailboxes is one of the most essential responsibilities for Microsoft 365 administrators. Whether you’re conducting audits, offboarding M365 users, or handling routine mailbox maintenance, having quick access to a complete and accurate list of mailboxes is vital.
  • Using PowerShell to disable (audio) devices in Windows
    I often encounter this issue. I dock my laptop at a customer's location and start a Teams call with someone. No idea what audio device my microphone in Teams will be or what output device it will use, the built-in speakers of the monitor attached to the docking station? My Sony earplugs? In this small blog post, I will show you how you can search and disable a lot of (audio) devices at once using PowerShell :)
  • PowerShell Format Number: Essentials Made Easy
    Discover the art of PowerShell format number and master the nuances of numeric formatting. This concise guide unveils tips for polished scripts.
  • How Can You Dramatically Boost Exchange PowerShell Performance with Multi-Threading? - PUPUWEB
    Is Your Bulk Exchange Script Sluggish? Discover the Game-Changing PowerShell Parallelism! Optimizing bulk operations in Microsoft Exchange using
  • The PowerShell Pipeline
    When I first started learning PowerShell, one of the most fascinating things to discover was the “pipeline”. I was already amazed with the data that I could gather by running commands, but using the pipeline took that to the next level.

Projects, Scripts, and Modules

  • New version of EntraFIDOFinder is out now
    Now with over 15 new keys! It was a little slow last month, but this month they made up with adding 6 new Vendors too. For the module, most of the enhancements were on the backend, where I created a function to reorganize any keys that weren’t following the standard configuration.
  • Oh My Posh update to non-module version
    After my latest (not so) regular update of installed PowerShell modules, I was surprised by a breaking change in the Oh My Posh module. Fortunately, a link to an online migration guide was displayed directly in the terminal to get me started, but it still took me some time to get it working again.
  • dbatools v2.1.31
    The community module that enables SQL Server Pros to automate database development and server administration
  • Intune Primary User Mix Up
    Tired of one tech “owning” every Intune device? Use my quick PowerShell cleanup script and put the right users back in charge fast!

Community

  • Growing with PowerShell and Community Support - Joshua Dearing
    In this episode of the PowerShell Podcast, we sit down with Joshua Dearing, aka Fortress, to explore his personal and professional growth through PowerShell, community engagement, and saying yes to new opportunities. Fresh off his first PowerShell Wednesday presentation, Joshua shares the story of how he overcame imposter syndrome, started his blog, and found confidence by getting involved in the PowerShell community. Key topics in this episode include:

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Blogs, Articles, and Posts

  • PowerShell: Changing Active Directory User Logon Names (Bulk)
    Active Directory users log on with their logon names and password. But what are the rules for assigning usernames? g.surname? surname? gsurname? What are the naming conventions?
  • Automating Microsoft 365 with PowerShell Update #11
    Update #11 for the Automating Microsoft 365 with PowerShell eBook is now available for subscribers to download. The eBook is now over 300 pages long and includes extensive coverage of using PowerShell to interact with Exchange Online, Teams, Planner, SharePoint Online, and OneDrive for Business data using workload modules or the Graph APIs (and Microsoft Graph PowerShell SDK).
  • Check the Windows Server version to determine if an in-place upgrade to Server 2025 is supported
    Before upgrading to Windows Server 2025, check your existing Windows Server version to determine if an in-place upgrade is feasible. You can check the Windows version via the graphical user interface, Windows PowerShell, or the command prompt.
  • How to Add Items to an Array in PowerShell (5 Simple Methods)
    Recently, I was developing an automation script to manage a large inventory of servers, and I needed to add items to an array as the script ran dynamically. The challenge is that PowerShell handles arrays differently than many other programming languages. In this tutorial, I will show you five proven methods to add items to
  • Set Up Email Notifications for Application Credentials Expiry in Microsoft Entra
    Each organization registers applications in Microsoft Entra ID for various purposes, such as integrating third-party services, enabling Single Sign-On (SSO), or automating business processes. To ensure these applications function smoothly, they require credentials like client secrets or certificates, which are used to obtain access tokens and access organizational resources.
  • Creating Intune Randomized Rollouts with Entra Group Membership
    In our org, we have around 40k devices. Rolling out policies in the Group Policy days was a little bit easier for us, as we weren’t hitting every device at once (way too many forests). The great thing about Intune, is that we can hit all the devices at once. The bad thing about Intune, is we can hit all devices at once!
  • Using PowerShell to Find Outdated Ubuntu Containers
    With Ubuntu 20.04 LTS’s sunset on the horizon, my manager forwarded an email about the need to update all of our Docker images to version 22.04. He sent it out as an FYI, but I took a moment to context switch towards answering this question because I thought that I could figure this out quickly using a one-liner in PowerShell.

Books, Media, and Learning Resources

Community

  • Lessons in Leadership from PowerShell Pioneers Jeffrey Snover and Don Jones
    In this very special episode of the PowerShell Podcast, we sit down with two legends of the PowerShell world: Jeffrey Snover, the inventor of PowerShell, and Don Jones, bestselling author, teacher, and longtime PowerShell community builder. Recorded live at the PowerShell + DevOps Global Summit, this conversation is packed with personal insights, impactful moments, and the kind of storytelling that only Snover and Jones can deliver. 

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

 

Announcements!

Blogs, Articles, and Posts

  • Restrict and report logon hours for Active Directory accounts
    For security purposes, it may be beneficial to restrict Active Directory account logins to regular working hours. These logon times can be configured using the calendar widget in Active Directory Users and Computers (ADUC). However, PowerShell provides a more efficient and flexible alternative, particularly because it offers reporting capabilities that the graphical interface does not.
  • How to Report the Sponsors of Entra ID Guest Accounts
    Entra ID populates the sponsor property for new guest accounts with details of the person who invites the guest to the tenant. It's data that can be used for different purposes, such as having someone to justify the continued presence of a guest account in a Microsoft 365 tenant. This article explains how to report guest accounts and their sponsors with some straightforward PowerShell.
  • Why aligning equals signs in PowerShell hash tables matters
    If you ever formatted a hash table in PowerShell, you know how easy it is to focus on function over form. But what if one minor formatting tweak could improve readability, reduce syntax errors, simplify code reviews, and enhance script maintainability?
  • Windows PowerToys 2 in 1 Short cuts
    In Windows 11 there’s a really powerful set of tools called “Microsoft PowerToys“. Within the features there’s a section to make your own shortcut hot keys under “Keyboard Manager”
  • Tab completions in PowerShell
    While learning about Fast Node Manager, I noticed completions for PowerShell being mentioned in the documentation. I wasn't aware of completions beyond filenames and cmdlets were even supported in PowerShell. I decided to try them out with Fast Node Manager first and then check if they are available for other command line tools I regularly use.
  • How to post on Bluesky with PowerShell
    I wanted to know how to use the Bluesky APIs and PowerShell for new posts (or Skeets). Bluesky has published a sample to post via code, also they have very good documentation about their API.

Books, Media, and Learning Resources

  • Video: Windows Server App Control and Azure Arc
    Are you looking for ways to enhance the security of your Windows Server environment? In this video, we explore how to leverage App Control to secure your Windows Server and manage it at scale using Microsoft Azure Arc.
  • PowerShell Execution Policy: A Comprehensive Guide
    Have you encountered an error “execution of scripts is disabled on this system” while trying to run a PowerShell script? I am sure you must have at least at the beginning. This is because of PowerShell’s execution policy settings. In this article, I will walk you through everything you need to know about PowerShell execution

Community

  • The Powershell Podcast Summit sessions with Adam Rivera, Asmar Fontenot, & Luis Orta
    In this episode of the PowerShell Podcast, we bring you another Summit Sessions special recorded live at the PowerShell + DevOps Global Summit 2025! This episode is a celebration of first-time attendees, newcomers to the PowerShell community, and those discovering their voice in tech. Andrew Pla sits down with passionate IT professionals who share their personal stories of growth, connection, and finding purpose through PowerShell and community.

Fun

Events

Check out psweekly.dowst.dev for all past editions as well as a searchable archive.

[–] pwshguy@programming.dev 2 points 2 years ago (1 children)

It took me longer than I would have liked, but I did finally get the next video uploaded. I hope you enjoy it as well.

https://youtu.be/Do5Ve6M9mmU

[–] pwshguy@programming.dev 1 points 2 years ago

Projects, Scripts, and Modules

  • 365AutomatedLab and new companion module coming soon
    365AutomatedLab and new companion module coming soon I promise I haven’t forgotten about 365AutomatedLab, but I’ll be honest after Microsoft made the announcement of no more new Dev tenants it hurt a bit as I know how useful they are on learning and testing features and PowerShell without hurting your production environment.
  • How to Create SharePoint List & Add Columns Using PnP PowerShell?
    Recently, I developed one Power Apps application that needed a SharePoint list data source. Before running the application, the client must create the specific SharePoint list on their site. So, I wrote a Power Shell script to create the SharePoint list along columns to avoid mistakes when creating it manually.
  • PowerShell-Yayaml v0.5.0
    What's changed…
  • PSDates v1.0.4
    Tons of new stuff added including calculating sunrise and sunset time.

Books, Media, and Learning Resources

Community

  • Behind the Scenes at PSConf.EU: Harm Veenstra’s Experience and Insights
    In this episode of the PowerShell Podcast, we sit down with Microsoft MVP Harm Veenstra to discuss his exciting experiences at PSConf.EU, where he attended for the first time and embarked on a new journey into public speaking. Harm shares his thoughts on receiving the prestigious Microsoft MVP award and delves into his recent projects, including creating a TCP/UDP listener for testing firewall ports and using a Pi-hole to block ads on his home network. We also explore his perspectives on automation in the MSP world, the power of Microsoft Graph, and why he hasn’t yet adopted AI tools. Tune in for an engaging conversation filled with insights, tips, and highlights from PSConf.EU!
  • Write Code, Write Blogs: Lessons with Brock Bingham
    In our latest Powershell Podcast episode, we chat with Brock Bingham. We explore his transition from sysadmin to writer and his viewpoint of coding as creative problem-solving. Brock also shares insightful blogging tips and advises against the pitfalls of comparison. A must-listen for aspiring PowerShellers. (plz create a blog and share your learnings for future you)
[–] pwshguy@programming.dev 3 points 2 years ago (1 children)

Nice write up, and a great primer for someone coming from the Linux/Bash world.

[–] pwshguy@programming.dev 1 points 2 years ago (3 children)

Thanks! I'd love to hear your thoughts once you've watched it.

[–] pwshguy@programming.dev 2 points 2 years ago

Community

  • PipeScript, Formatting, and Docker: An In-Depth Conversation with James Brundage
    In this episode of the PowerShell Podcast, we are joined by Microsoft MVP, former PowerShell team member, and module maker extraordinaire James Brundage. We hear about his experience at Microsoft Build, learn all docker and kubernetes while discussing his Rocker module, UserGroup updates, implicit interpretation in Pipescript, formatting and types, and so much more. Strap in because we go deep in this one.
  • Breaking Down ModuleFast and More with Justin Grote
    In this episode of the PowerShell Podcast, host Andrew Pla interviews Microsoft MVP and PowerShell aficionado Justin Grote. They delve into an issue in the Az.Accounts 3.0.0 module, with Justin offering insights and a workaround (use an earlier version of the module). Justin also discusses his innovative ModuleFast project, explaining its architecture and his approach to writing PowerShell scripts and modules. The conversation highlights Justin's passion for APIs and celebrates his contributions as an official PowerShell project contributor. Listeners get a glimpse into Justin's workflow working at a Managed Service Provider (MSP) and how he writes to much PowerShell. He offers valuable advice for those early in their careers. Additionally, Justin shares updates on his PowerHTML (1.2m downloads) project, which originated from a GitHub pull request, showcasing his continuous contributions to the PowerShell community.
  • PowerShell Community Call - May 16th, 2024
    Last month's community call with the PowerShell team.
[–] pwshguy@programming.dev 2 points 2 years ago

Books, Media, and Learning Resources

[–] pwshguy@programming.dev 2 points 2 years ago

Projects, Scripts, and Modules

  • passwordstate-management v 4.4.49
    Powershell Module for managing Password State
  • PowerQualys v 0.3.0
    Helper module for Qualys
  • WinTuner v 0.8.9
    Package and publish any apps from WinGet to Intune.
  • Interpreting Audit Records for Teams Meeting Recordings (Again)
    Three years ago, I wrote a script to analyze the audit records generated for Teams meeting recordings. Then things changed in terms of how the audit records were generated and how the Search-UnifiedAuditLog cmdlet returns audit search results. All of which meant that considerable work was needed to revamp (rewrite) the script. Maybe you need to check any script that uses the Search-UnifiedAuditLog cmdlet too?
  • tiPS v 1.3.10
    PowerShell tips delivered straight to your terminal.
[–] pwshguy@programming.dev 1 points 2 years ago

Thanks! I'm glad to hear you are finding it useful.

[–] pwshguy@programming.dev 2 points 2 years ago

Thanks! I'm glad to hear others are finding it useful.

[–] pwshguy@programming.dev 1 points 2 years ago

If I understand correctly, the signatures generated by PuTTY aren’t perfectly random, so if someone got a hold of a bunch of keys from a server, they could figure out the pattern. It takes about 60 keys. This affects not just PuTTY, but also FileZilla, WinSCP, TortoiseGit, and TortoiseSVN.

In other words if you have NIST P-521 keys, or any others using 521-bit ECDSA, you should revoke them and generate new key pairs. After you update your software.

[–] pwshguy@programming.dev 4 points 2 years ago

I installed some security cameras around my house and set up Shinobi using an old PC. Unfortunately the PC is too old to use the built-in detectors in Shinobi. So, I took my first dive into playing around with some image detectors.

I wrote some python to download the daily recording from old PC to a newer one with a 3080 GPU. Then checks the videos for people. It will then trim the videos to only include times were there are people in frame. It cut my the storage requirements by over 95%.

[–] pwshguy@programming.dev 1 points 2 years ago (1 children)

Joel "Jaykul" Bennet is an opinionated DevOps engineer, programmer, speaker, and Microsoft MVP.

I love that description. I can't wait to listen to it tonight!

view more: ‹ prev next ›