8

Announcements!

Blogs, Articles, and Posts

Projects, Scripts, and Modules

  • OZOTaskScheduler v 1.0.0
    Provides functions for managing Windows Task Scheduler tasks.
  • PSAISuite v 0.8.10
    PowerShell module for simple, unified interface to multiple Generative AI providers
  • SpotifyCLI v 3.2.9
    Full-featured Spotify terminal client for PowerShell. Control playback, search, playlists, devices, queue, and more — plus Live Display, synchronized lyrics, music quiz, setlist lookup, and statistics analytics. Requires Spotify Premium and a Spotify Developer App.

Books, Media, and Learning Resources

  • EverythingFast: Developing Performant PowerShell Modules - Justin Grote
    In this lecture, Justin Grote introduces the topic of PowerShell performance and explains that performance should be judged by whether something is “fast enough” for the task. He discusses when improving speed matters, such as scripts that run frequently, processes that affect cost, or workloads that no longer fit their original time window.

Community

Fun

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

3

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Community

  • Learn PowerShell by Solving Real Problems
    David McFall shares practical tips and real-world examples on using PowerShell for automation, mentorship, and solving problems in various Microsoft environments.

Fun

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

4

Announcements!

  • PowerShell v7.7.0 preview 4
    Harm Veenstra discusses the new preview version of PowerShell, highlighting changes and installation instructions.

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Community

Fun

  • The FreeDadJokes PowerShell Module
    This article introduces the FreeDadJokes PowerShell module, a module that provides dad jokes for users to enjoy while working on projects.
  • Remix Music with PowerShell
    This article showcases a way to remix music using RoughDraft and FFMpeg in PowerShell, allowing users to manipulate audio files and create new tracks.

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

2

Blogs, Articles, and Posts

  • NDES Security Hardening: Protecting and Monitoring the SCEP Registry Configuration
    This article focuses on securing and monitoring Network Device Enrollment Service (NDES) configuration, specifically the SCEP registry settings, to prevent attacks.
  • Automate AVD Hybrid part 2
    This blog post demonstrates how to automate the deployment of an Azure Virtual Desktop (AVD) hybrid machine using Terraform and PowerShell. The author provides a step-by-step guide on how to create a VM, install Windows 11, and deploy the AVD agents, resulting in a fully functional AVD hybrid machine.
  • How to Build Useful Reports from PowerShell — CSV, HTML and Email
    Learn how to create useful reports from PowerShell output, including choosing the right format (CSV, HTML, or JSON) and scheduling and emailing them properly.
  • Powershell for Hackers, Part 9: Hacking with PsMapExec
    PsMapExec is a PowerShell script that allows hackers to dump hashes, execute remote commands, and extract Kerberos ticket keys. It can be used for various attacks such as Kerberoasting, timeroasting, and NTDS dumping.
  • New Graph Permissions Pose Questions for Microsoft 365 Tenants
    Microsoft has introduced three new granular Graph permissions, allowing apps to create and modify user accounts without needing higher-level permissions. To stay up-to-date with new permissions, developers and administrators can use tools like the Permission Explorer and service principal permissions report script.
  • Microsoft To Enforce WAM for Delegated Interactive Graph Sessions
    Microsoft is enforcing the use of Web Account Manager (WAM) for delegated interactive Graph sessions, starting from a future date. This change will make older SDK versions incompatible with browser-based authentication and may require administrators to re-evaluate their workflows.

Projects, Scripts, and Modules

  • Windows Neofetch Alternatives
    Ed Tittel explores alternatives to Neofetch for displaying system information on Windows, including the use of Windows Console and custom scripting.

Books, Media, and Learning Resources

Community

Fun

Events

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

2

Blogs, Articles, and Posts

Projects, Scripts, and Modules

  • I Built ReelArrange to Get Downloads Ready for Jellyfin
    Kyle Reddoch, a Jellyfin user, created ReelArrange, a Windows desktop app that simplifies the process of preparing downloaded movies and TV shows for Jellyfin by cleaning up folder names, identifying titles with TMDB, and organizing extras.
  • Creating a Week-by-Week Report for Open Planner Tasks
    This article provides a PowerShell script to create a week-by-week report showing progress in closing tasks over a period for Microsoft 365 users.
  • PSBlitz
    a PowerShell-based tool that outputs SQL Server health and performance diagnostics data to either Excel or HTML, and saves execution plans and deadlock graphs as .sqlplan and .xdl files.
  • GpoEdit
    Module to read and write GPOs on a setting level. Contribute to FriedrichWeinmann/GpoEdit development by creating an account on GitHub.

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

6

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Community

Fun

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

2

Announcements!

  • Exchange Online PowerShell Updates to 3.10.1
    Microsoft rushed out version 3.10.1 of the Exchange Online management PowerShell module to fix a problem with certificate-based authentication. It seems like a change in an internal Microsoft identity platform caused the tokens issued after a successful connection to Exchange Online to not authorize the execution of further cmdlets. To their credit, Microsoft fixed the issue, but is this the kind of thing that should be caught in testing?

Blogs, Articles, and Posts

Projects, Scripts, and Modules

  • FileInspectorX v 1.1.1
    FileInspectorX is PowerShell module that allows you to query files and folders for information. It supports multiple types of file queries and can be used to query local file systems, network shares.
  • Unicodery v 0.0.0.4
    Cmdlets to search, lookup, and get details about Unicode characters.

Community

  • Active Directory Meets Source Control with Fred Weinmann
    Andrew sits down with Fred Weinmann, one of the most prolific PowerShell module authors in the community, for part one of a multi-episode series covering his projects. This episode focuses on the Active Directory Management Framework, or ADMF, a configuration-driven system Fred originally built while working as a field engineer at Microsoft for a large enterprise customer managing hundreds of Active Directory forests.
  • Is poweshell worth it?
    Join the discussion on Reddit

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

4

Announcements!

Blogs, Articles, and Posts

  • New Teams PowerShell module introduces advanced federated chat controls
    Microsoft has released version 7.9 of the Teams PowerShell module with enhanced authentication security, but it causes assembly clash issues and will be deprecated in future releases.
  • Teams PowerShell Embraces Web Account Manager and Imposes Control Over Federated Chat
    The Microsoft Teams PowerShell module has adopted the Windows Account Manager (WAM) for authentication, introducing new controls over federated chat. The changes include stricter external access and mutual federation policies in federated group chats, which can be managed with the Set-CsTenantFederationConfiguration cmdlet.
  • How Permissions Creep Can Halt the Microsoft Graph PowerShell SDK
    The Microsoft Graph PowerShell SDK's Connect-MgGraph cmdlet can fail to connect due to permissions creep, where a service principal accumulates too many delegated permissions. The problem is caused by users requesting and granting consent for multiple permissions over time, exceeding the limit of approximately 140 delegated permissions.
  • Primer: How to Use JSON Batching to Speed up Graph Processing
    JSON batching is a technique used to improve the performance of Graph-based automation in Microsoft 365 tenants by combining up to 20 requests into a single JSON payload and a single HTTP call. It can be used for updating large numbers of objects, such as user accounts, groups, and devices, and also for retrieving information faster than the standard Graph paginated mechanism.
  • Simplified Identity Management with Authentik for Holodeck 9.1
    Authentik is a self-hosted, open-source Identity Provider that integrates natively with Kubernetes via a Helm chart. In Holodeck 9.1, Authentik is deployed automatically as part of the Set-HoloRouter command and provides a fully federated identity layer for VMware Cloud Foundation labs.
  • Intune Multi Admin Approval Now Enforced on Graph API Calls 
    As of Intune service release 2606 in June 2026, Microsoft Graph API calls made by automation scripts or apps with app-only tokens will require Multi Admin Approval (MAA) approval, causing 403 errors.
  • The Case of the Sign-In Window That Refused to Show Up
    The author shares their experience with running PowerShell on a Mac, where they encounter unexpected issues during an Azure command.

Projects, Scripts, and Modules

  • Add experimental global mocks
    Pester 6.1.0-alpha2 has global mocks, this solves headaches with -ModuleName. -ModuleName is now needed only when the function is not public to tell us where to find it.
  • SyntheticEnterprise.PowerShell v 0.9.1
    Synthetic enterprise data generation platform for labs, demos, exports, and downstream validation.
  • AzureScout v 2.0.1
    AzureScout — discover, inventory, and assess everything in your Azure environment. Inventories Azure resources, Entra ID, and identity objects (Excel, JSON, Markdown, AsciiDoc)
  • IntuneAssignmentChecker v 4.3.1
    Analyze and audit Microsoft Intune policy assignments. Check user, group, and device assignments, simulate group membership changes, search policies and settings, generate HTML reports, and more.

Books, Media, and Learning Resources

Community

  • Jake Hildreth on PSConf EU, Stepper Updates, and Taking the Day Off
    Jake Hildreth discusses his recent trip to PowerShell Conference Europe, where he co-presented a session on securing PowerShell and gave a talk on Stepper, an open-source module for building resumable scripts. He emphasizes the importance of taking vacation time and separating work from personal life.

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

3

Announcements!

Blogs, Articles, and Posts

  • How to Get Installed Software Features List Using PowerShell WMI-CIM
    This article shows how to use PowerShell's WMI/CIM to retrieve a list of installed software features, specifically VMware Tools sub-features.
  • PowerShell Pro Tip: How to Overwrite and Update the Same Line ProgressBar
    This article provides three methods for updating the same line in PowerShell, including using the carriage return character, the Write-Progress cmdlet, and advanced cursor positioning with .NET.
  • How to Identify Obsolete SharePoint Online Sites with PowerShell
    Microsoft 365 has been around for many years, and it's likely that a tenant has some obsolete SharePoint Online sites. This article explains how to identify obsolete sites based on usage data extracted from the Microsoft Graph. Combining the usage data with basic site properties taken from SharePoint creates a report that should help administrators to figure out what sites they should consider removing.
  • Using ErrorAction in PowerShell
    The ErrorAction Parameter for PowerShell cmdlets is very helpful for... Handling errors :-) In this blog post, I will show you the different options it offers and which to use when.
  • Using the M365.AppContainers PowerShell Module for Real-World Loop Governance Scenarios
    This article introduces the M365.AppContainers PowerShell module, which provides practical control over Microsoft 365 Loop workspaces. It showcases five real-world use cases for the module, including protecting sensitive workspaces, handling offboarding and ownership transfer, cleaning up external collaboration after a project ends, performing quarterly governance audits, and locking down workspaces during legal holds.

Projects, Scripts, and Modules

  • Managing Windows Microphone Privacy with PowerShell - Part 2
    Paul Naughton has created four PowerShell functions: Get-MicrophoneAccess, Set-MicrophoneAccess, Enable-MicrophoneAccess, and Disable-MicrophoneAccess. These functions allow for easy management of global microphone access on Windows.
  • The Power of Primes
    A new PowerShell module called PrimeTime uses prime numbers to create unique time intervals.
  • SPClean v 1.2.3
    Detects, reports, and remediates orphaned users in SharePoint Online. Identifies accounts in the User Information List whose Entra ID state is Deleted, SoftDeleted, Disabled, or GuestOrphaned. Supports AppOnly (certificate) and Interactive authentication, HTML/CSV/JSON reports, permission snapshots, and Windows Scheduled Task automation.

Books, Media, and Learning Resources

Community

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

7

Announcements!

  • Pester v 6.0.0
    The latest version of Pester, a test and mock framework for PowerShell, has been released.

Blogs, Articles, and Posts

  • Using the PowerShell Webserver Module
    This article introduces the PowerShell Webserver Module, a module that allows users to start a web server without installing IIS or other similar web servers.
  • How to Build Tiny11 ISO for Windows 11 26H2
    Tiny11 is a community-modified version of Windows 11 that strips out unnecessary apps and services. This guide shows how to get a verified Tiny11 ISO for Windows 11 26H2, either by downloading a prebuilt release or building one yourself from an official Microsoft ISO.
  • Stop Rewriting Your AI Scripts Every Time a New Model Wins
    PSAISuite is a PowerShell module that provides a single, practical command surface for working across multiple GenAI providers. It allows you to ask questions and get answers without having to rewrite your scripts every time a new model wins.
  • Migrate from EWS to Microsoft Graph API
    Move EWS mailbox automation to Microsoft Graph with a practical inventory, permissions, PowerShell SDK, and cutover validation checklist.
  • Make Your Test Data Less Boring with M365Mutator
    M365Mutator is a small open-source tool that generates realistic activity across multiple workloads in Microsoft 365, such as Entra ID, Mailbox, Calendar, OneDrive, and SharePoint. It can be used to test scenarios against Microsoft 365 data without polluting a production tenant.

Projects, Scripts, and Modules

  • Microsoft.PowerShell.PlatyPS v 1.0.2
    Generate PowerShell External Help files from Markdown
  • DSInternals v 7.1
    The DSInternals PowerShell Module exposes several internal features of Active Directory. These include FIDO2 and NGC key auditing, offline ntds.dit file manipulation, password auditing, DC recovery from IFM backups, and password hash calculation.
  • Az v 16.1.0
    The latest version of PowerShell for Microsoft Azure, featuring improved cmdlets for developers and administrators.
  • How to Check Distribution Lists for Activity Over the Last 90 Days
    A PowerShell script is provided to check distribution lists for activity over the last 90 days by fetching historical message trace data and comparing it against each distribution list's primary SMTP address.

Community

  • Building Better SharePoint with PowerShell with Dan Adams
    Dan Adams is a 13-year Microsoft 365 and SharePoint veteran who joined Andrew to talk about the often misunderstood world of SharePoint, the shift to Microsoft Graph, and his custom PowerShell module built which can assess and benchmark M365 environments. Dan breaks down why SharePoint gets such a bad reputation (spoiler: it's usually about who built it, not the platform), explains why "everything in M365 is SharePoint" isn't just a meme, and digs into how the Microsoft Graph API is changing the way admins interact with the platform. He also shares his experience going from longtime podcast listener to first-time guest, and closes with some honest advice about reaching out to people in the community.

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

6

Blogs, Articles, and Posts

  • Using the Hashtable PowerShell Module
    This article introduces the Hashtable module in PowerShell, which simplifies operations with hashtables, such as merging and converting to PSCustomObject.
  • Automate SOC 2 Compliance with PowerShell
    This guide provides a step-by-step walkthrough on automating SOC 2 compliance using PowerShell and Azure Policy as Code, enabling organizations to enforce controls across their enterprise cloud environments.
  • Deploy Enterprise PowerShell Modules Using Azure Artifacts
    This article shows how to use Azure Artifacts to create a private repository for deploying enterprise PowerShell modules, including automated CI/CD publishing and secure module distribution.
  • Microsoft Graph API fails to fully block external Teams chat access
    The Microsoft Graph API does not prevent external participants from viewing conversation history in Microsoft Teams chats, despite removing their access.
  • Cleanup Inactive Active Directory User Accounts Using PowerShell 
    This article explains how to clean up inactive Active Directory user accounts using PowerShell, including a script that identifies and automates cleanup actions such as disabling, moving, or deleting accounts.
  • PowerShell Counting Objects
    The author explains why they prefer using Measure-Object over .Count when counting the number of objects in a pipeline operation, highlighting the differences in how these two methods work and why Measure-Object provides more explicit and predictable results.

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • Saving PowerShell Notebooks - David Sass
    This session, titled “Saving PowerShell Notebooks,” is presented by David Sass. He introduces his background as a PowerShell MVP, Microsoft Certified Trainer, and former SharePoint user, and explains that he is focused on PowerShell notebooks and the work around them.
  • Teaching Tara: PowerShell Script Breakdown
    Reading PowerShell scripts can be intimidating, especially when you’re still learning.This week on PowerShell Wednesday, Tara and I are breaking down scripts line by line and asking the questions beginners actually have:What does this mean?Why did they do it that way?Is that required?Could you write it another way?

Community

Fun

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

1

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • The Microsoft DSC Handbook
    Microsoft Desired State Configuration (DSC) is the next step of Desired State Configuration, bringing in even more cross-platform support so you can define and enforce system state across Windows, Linux, and macOS.

Community

Fun

  • Making Memes
    It's Friday. Let's have some Fun! Let's write fun servers in PowerShell. About a week ago, I released Fun. It's a fun functional server in PowerShell.

Events

  • PowerShell Pro Series
    This two-part series led by Microsoft MVPs is designed to help IT admins strengthen their PowerShell scripting skills, from core fundamentals to more advanced techniques. Part 2 takes place on June 30th.

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

[-] pwshguy@programming.dev 6 points 1 year ago

The Taco Bell jingle has lived rent free in my head for 20 years now

[-] pwshguy@programming.dev 13 points 1 year ago* (last edited 1 year ago)

Mine is definitely a passion project. I make videos on automation using PowerShell. I aim to make videos that teach the thought process and fundamentals and not just step by step tutorials. I've been busy moving halfway across the country but plan to start uploading some more once I'm settled in two weeks.

https://youtube.com/@DowstDevMvp

[-] pwshguy@programming.dev 10 points 2 years ago

I remember before scrambling they just put blocks that prevented you from going to certain channels. I somehow figured out if you ran the cable box through the VCR first and put it on channel 2 while the TV was still on 3, it would shift all the channels down one. Cinemax was channel 14, which our box just would not go to. But it would go to 13, so doing my little trick teenage me got to watch a lot of skinamax.

[-] pwshguy@programming.dev 4 points 3 years ago

For some reason their API would not return anything for assembly. I was curious to see where it would rank too,

[-] pwshguy@programming.dev 4 points 3 years ago

Interesting. As someone who mainly deals in PowerShell, this is very similar to the Where-Object clause and could save me some headaches when I need to work in Python.

[-] pwshguy@programming.dev 7 points 3 years ago

That's pretty similar with what happened with me and the train. Kept getting random drops from a plant. I went out to investigate and everything tested perfect and the network was staying up. That was until a freight train rolled by. Turns out AT&T had run the line by shoving a piece of PVC through the gravel between two cross-ties, then running the cable through it.

[-] pwshguy@programming.dev 20 points 3 years ago

I've actually had an excavator take out my network. I've also had networks taken out by forklift, train, and a semi-truck towing three other semi-trucks.

[-] pwshguy@programming.dev 22 points 3 years ago

Basically every Windows sysadmin is indebted to Mark Russinovich and SysInternals. Fortunetly, PowerToys has come a long way because I'm pretty sure sysinternals haven't been updated since Windows XP.

[-] pwshguy@programming.dev 4 points 3 years ago

Been there. I've written some slick code in a weekend that has run great for years. I've also spent 2 hours trying to get a button lined up properly.

[-] pwshguy@programming.dev 5 points 3 years ago

I've used ChatGPT and Copilot to help with PowerShell in the past. For the most part I've found it, okay. But I can definitely see how that could happen. I've had a few instances where is tried giving me cmdlets that don't exist. This means it is just taking pieces of code from someone else's project and not understanding how it all fits together. So, if I search that cmdlet there is no telling the number of results I could get from good, bad, or irrelevant sources. It would be better if it told you where that code came from. Then I could look at the original source and see if they created custom functions that these AI are considering to be built-in cmdlets.

[-] pwshguy@programming.dev 10 points 3 years ago

Might have to do with u/rmayayo not announcing or really saying anything

view more: next ›

pwshguy

0 post score
0 comment score
joined 3 years ago
MODERATOR OF