Announcements!
- PowerShell 7.5.0 preview 1 released
Come try out the latest preview on PowerShell 7.5. - More SAPIEN Product Releases for ARM64
We are pleased to announce that PowerShell Help, CIM Explorer 2024, VersionRecall 2024, and PrimalXML 2024 are also now available for ARM64.
Blogs, Articles, and Posts
- How to Use PowerShell to Retrieve Permissions for Entra ID Apps
Recent attacker activity made me think that access might have been gained through an OAuth app. Keeping an eye on app permissions is important. From a PowerShell perspective, it is reasonably straightforward to retrieve details of app permissions using the Microsoft Graph PowerShell SDK. Several methods are available to do the job. - How to Update Tenant Corporate Branding for the Entra ID Sign-in Screen with PowerShell
The ability to apply custom corporate branding for Entra Id screens has existed since 2020. You can update elements through the admin center or PowerShell. This article explains how to use the Microsoft Graph PowerShell SDK to customize the sign-in text and background image for the sign-in screen. - Use Azure Automation and PowerShell to Create a Daily Microsoft Entra Risk Report
In this article, Sean McAvinue explains how to use PowerShell and Azure Automation runbook to create a Daily Microsoft Entra Risk Report. - Using the PowerShell PSWindowsUpdate module
I've been using the PSWindowsUpdate module for a while now; it's very convenient when spinning up a test VM for a customer if you want to have it up-to-date before going through the Windows Autopilot process, for example. In this blog post, I will show you how the module works with a few examples of how I use it. - Installing updates during Autopilot: Windows 11 edition, revisited again
This seems to be a frequent blog topic, with posts going back to 2019: So why bring this up yet again? I blame Gary Block - Understanding the Intune Management Extension client health check
This week is sort of a follow-up on the posts of the last couple of weeks about Win32 apps. This week, however, the focus is more on the process that is in place to make sure that everything around the Intune Management Extension (IME) keeps functioning. The IME contains many important components for installing Win32 apps, for running PowerShell scripts, for running inventories, and more. That makes it important that the IME is running successfully. To make sure that the IME is running successfully, the Intune Management Extension Health Evaluation was introduced. That evaluation is focused on performing checks on the service of the IME. This post will have a closer look at the IME client health check and the actions that it performs. - Replace String Containing Special Characters in PowerShell
There might have been scenarios where you want to replace a string containing special characters in PowerShell. In this tutorial, I will explain to you different examples of how to replace strings containing special characters in PowerShell. To replace a string containing special characters in PowerShell, you can use the -replace operator with an escape character - Simplifying PowerShell Object Validation & Transforming: A JSON-Schema Refactoring Journey
In a recent scripting endeavor, I developed a PowerShell script with an ArgumentTransformationAttribute. The script's purpose was to convert PSCustomObjects or Hashtables into a JSON format tailored for seamless integration with a BatchRequest destined for the Microsoft Graph API. - Finding Your Way on the System.IO.Path
Since we’ve been exploring ways to use .NET classes to supplement existing command coverage in PowerShell, I thought we should explore the System.IO namespace. Here, you will find several classes to incorporate into your PowerShell scripting. As you’ll see, some of the classes provide functionality already offered by existing cmdlets. I always recommend using cmdlets in your code wherever possible for beginner scripters. Cmdlets are easier to understand, are documented, and provide features like -WhatIf that you don’t get when accessing the .NET Framework directly.
Projects, Scripts, and Modules
- I made a function that returns WHOIS data from an IP address. Uses REST against the new WHOIS RPAD api.
Been hesitant to post this, I basically had to brute force the organization and address out of their non-standard xml. So that part is messy to say the least. - 365Automatedlab V2.4.0 Released!
Overall things are good, and glad to put out v2.4.0 which I’ve added a function to delete all “deleted” SharePoint sites the recycle bin. The reason for it is you can’t mass delete SharePoint sites from the GUI and sometimes you create SharePoint sites that aren’t in your Excel workbook and this just makes it easier. - Diagrammer.Microsoft.AD v 0.1.5
A PowerShell module to generate an as built report on the configuration of Microsoft AD.
Books, Media, and Learning Resources
- PowerShell on Exercism
Join Exercism’s PowerShell Track for access to 117 exercises with automatic analysis of your code and personal mentoring, all 100% free. - Portscanning with Powershell
I gave an impromptu talk on my #PowerShell port scanner
Community
- From Python to PowerShell: A Developer's Perspective with Jordan Borean
In this episode of the PowerShell Podcast, we are joined by the talented Jordan Borean. Join us as we delve into the world of PowerShell development with Jordan, exploring some of his exceptional modules that have made waves in the community. Jordan shares his unique perspective as a Python developer using PowerShell and highlights the benefits of binary modules. Dive into the details of Jordan's experience within the PowerShell community Discord, and gain insights into his journey to Red Hat, where Open Source played a pivotal role. As a bonus, discover the surprising answer to the question: If PowerShell was a song, what would it be? This episode is packed with coding wisdom, community adventures, and a touch of musical revelation.
Fun
- PSClock/docs/Start-PSClock.md
I love having a big clock on my monitor right where I can see it. Very handy with a 41" display.
Check out psweekly.dowst.dev for all past editions as well as a searchable archive.