pwshguy

joined 2 years ago
MODERATOR OF
 

Blogs, Articles, and Posts

  • Primer: Using Exchange Online PowerShell in Azure Automation Runbooks
    In this primer, we cover how to create and execute Azure Automation Exchange Online runbooks (scripts) using cmdlets from the Exchange Online management module. Some setup is necessary before runbooks can process Exchange cmdlets, but once the necessary resources and permissions are in place, it’s all plain sailing.
  • Custom Maester Tests: Validate Full Addresses Now and Cleaned Up Wording
    Added 3 new tests which I think the first two will be game changers. The first 2 are tests for validating locations, in which the user must have street, city, state, postal code, country, business phone, and company name the same as the valid location in the json.
  • 02-14-2025 MSOnline and AzureAD PowerShell modules.. One last Valentine’s day card each
    If you haven’t seen the news already, MSOnline and AzureAD PowerShell modules will be no longer supported after March 30, 2025. So looks like this will be our last year to give them a Valentine’s day card for all the times they’ve been there for us in!
  • Cline vs. Roo Code – Which VS Code extension is better for the AI-augmented IT pro?
    In a prior article, I showcased automating PowerShell management in natural language using the VS Code extension Cline. Roo Code (formerly Roo Cline) is a Cline fork that provides extra valuable features for the AI-enhanced IT pro. Roo Code remains comparable, and the insights I shared about working with MCP servers in Cline also apply to Roo Code. The main difference is that Roo Code serves system administrators more effectively, as it provides a mode more suitable for natural language use in a CLI. Additionally, Roo Code's support of VS Code's Code Actions feature makes it perfect for understanding and modifying a colleague's scripts.
  • Using the PowerShell WinGet Client module to install your apps on your new computer
    Installing all your (management) apps on a new system always takes too much time. In this blog post, I will show you how to use PowerShell and the WinGet Client module to install them quickly.
  • Not the Error I expected! Connect-NsxtServer
    Howdy! It’s been quite a while since I created a blog post. Not sure I would want to say exactly how long. However, today I had a brand new VM that I was using to write some automation with PowerShell/PowerCLI. It took me a few minutes to figure this one out. Maybe it was me?
  • DPRK hackers dupe targets into typing PowerShell commands as admin
    North Korean state actor 'Kimsuky' (aka 'Emerald Sleet' or 'Velvet Chollima') has been observed using a new tactic inspired from the now widespread ClickFix campaigns.
  • Behind the PowerShell Pipeline
    Welcome to Behind the PowerShell Pipeline a subscription-based newsletter that will dive deeply into the world of PowerShell.

Projects, Scripts, and Modules

Books, Media, and Learning Resources

Community

  • Building Secure PowerShell Solutions with Jake Hildreth
    In this episode of the PowerShell Podcast, we welcome back security-focused PowerShell expert Jake Hildreth for an insightful conversation about PowerShell, security tools, and his continued journey in the PowerShell community. Jake shares updates on Locksmith v2, his work with PowerPUG, and his experience learning new PowerShell techniques to refine and improve his tools.

Events

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

 

Announcements!

Blogs, Articles, and Posts

  • Automating Code Compliance: AI-Driven Code Style Enforcement for Pull Requests
    As teams increasingly rely on automation for code quality and compliance, ensuring consistent coding standards can be challenging during the pull request (PR) process. In this article, we explore how to build an AI-powered style enforcement pipeline using modern tools like GPT-4 and CI/CD workflows.
  • PowerShell: How to find empty Attributes
    We are often looking for attributes, but what about the empty attributes? How can I find out if an attribute is empty? That is the focus of this article.
  • Now you can use your own company standards with Maester custom tests
    I thought checking to see if they were filled in or even formatted correctly wasn’t enough.. now you can config the validation.json file in the Validating folder with your company standards to make only those values pass. Here are the fields so far, and will be adding more!
  • Get All Teams Channels With External Members
    Channels in Microsoft Teams are the heartbeat of collaboration, designated to help teams organize conversations, files, and tasks around specific topics or projects. However, they also come with challenges—especially when external members are involved.
  • Microsoft Entra PowerShell modules
    The new Microsoft Entra PowerShell modules are available, replacing the deprecated AzureAD modules. This blog post will highlight the installation, changes, and features.
  • New Microsoft script updates Windows media with bootkit malware fixes
    Microsoft has released a PowerShell script to help Windows users and admins update bootable media so it utilizes the new "Windows UEFI CA 2023" certificate before the mitigations of the BlackLotus UEFI bootkit are enforced later this year.

Books, Media, and Learning Resources

  • Monthly Update #116 for Office 365 for IT Pros
    Monthly update #116 (February 2025) is available for the Office 365 for IT Pros eBook. The refresh includes update #8 new files for the Automating Microsoft 365 with PowerShell eBook. We’ve also updated the print (paperback) version that’s sold on an on-demand basis through Amazon.com. Things keep on changing inside Microsoft 365 with agent management a new challenge that’s coming into view.
  • Behind the PowerShell Pipeline
    Discover parts of PowerShell that lie under the surface that can make you a better PowerShell user and scripter. From one of the original PowerShell experts.

Community

  • Exploring the Power of IoT and PowerShell with Mark Go
    In this episode of the PowerShell Podcast, we sit down with Mark Go, a PowerShell enthusiast and innovator, to discuss his exciting journey from the Navy to becoming a tech-savvy system administrator. Mark shares his experiences using PowerShell to make his work life better.

Events

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

 

Announcements!

Blogs, Articles, and Posts

Projects, Scripts, and Modules

  • Get-MacInfo
    This is a powershell module for PS on macOS that, as much as possible, replicates "Get-ComputerInfo".

Community

  • Streamlining PowerShell Package Management with Fred Weinmann
    In this episode of the #PowerShell Podcast, we continue our deep dive with Fred Weinmann, a Microsoftie and PowerShell legend, as he shares more insights and tools that redefine productivity for PowerShell enthusiasts. Picking up where we left off in the last episode, Fred takes us through his journey of mastering PowerShell, collaborating with the community, and optimizing workflows with powerful custom modules.
  • Inside IT Automation | E19
    Jakub Jares talks about PowerShell testing with Pester and more

Events

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

[–] pwshguy@programming.dev 1 points 3 weeks ago

Projects, Scripts, and Modules

  • All About the Office 365 for IT Pros GitHub Repository
    The Office365ITPros GitHub repository holds over 300 PowerShell scripts showing how to interact with Microsoft 365 and Entra ID. Anyone can contribute to Office365ITPros by forking the code to a copy of the repository and making changes to scripts there. If you want, you can push the changes back to us so that we can consider their inclusion in Office365ITPros. It's a great example of community in action.
  • Creating a ConfigMgr (SCCM) Bootable Media – PowerShell Style
    Here is a PowerShell script that will create Bootable Media for ConfigMgr.
  • pipEnv v 0.1.2
    Unofficial installer, runner and utilities for pipenv.

Books, Media, and Learning Resources

Community

  • PowerShell Changed My Life... with Adam Bacon.
    In this episode of the PowerShell Podcast, Andrew catches up with returning guest Adam Bacon. Adam shares an update on his career and shares how PowerShell has played a huge role in helping him accomplish his dream. 
  • The Art and Science of PowerShell Module Development with Fred Weinmann
    In this episode of the PowerShell Podcast, we sit down with Fred Weinmann, a prolific PowerShell module creator, to explore his remarkable contributions, including PSFramework, PSModuleDevelopment, PSUtil, and PSFramework.Nuget. Fred shares insights on developing impactful solutions, such as the KRBTGT module and the evolution of module development in large-scale environments. 

Events

 

I really appreciate your understanding for the missed edition last week. To make up for it, this week’s issue is packed with even more tips, insights, and updates to level up your PowerShell skills.

Blogs, Articles, and Posts

Continued in the comments...

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

 

Announcements!

  • Pester v5.7.0
    Pester 5.7.0 is out, it adds new code coverage format Cobertura, and other fixes

Blogs, Articles, and Posts

  • PowerShell Pester 101: A Practical Guide for Beginners
    Learn how to validate your PowerShell scripts with Pester testing. This hands-on guide shows you how to write tests that ensure your code works as intended.
  • Automated Provisioning of Windows 365 Cloud PCs: Advanced Scripts
    We decided that we would create some more advanced scripts for admins, which would include some error handling, prompts for input, and more. You will be able to use these scripts to provision your Entra ID joined Cloud PCs for various scenarios, be it using a Microsoft Hosted network or an Azure Network Connection, Enterprise or Frontline builds, or choosing your Cloud PC image, language, or region etc.
  • Using PowerShell to make bulk changes to DotNet .csproj files
    When working on a big DotNet team, it’s easy to create a library but forget to set a configuration property according to your team’s standards. Most people don’t spend a lot of time looking at their…

Projects, Scripts, and Modules

  • All About the Office 365 for IT Pros GitHub Repository
    The Office365ITPros GitHub repository holds over 300 PowerShell scripts showing how to interact with Microsoft 365 and Entra ID. Anyone can contribute to Office365ITPros by forking the code to a copy of the repository and making changes to scripts there. If you want, you can push the changes back to us so that we can consider their inclusion in Office365ITPros. It's a great example of community in action.
  • JsonFS
    Mount a Json file as PowerShell file system. Contribute to wgross/json-fs development by creating an account on GitHub.
  • Icewolf.EXO.SpamAnalyze v2.0.14
    This is a Powershell Module that simplifies the Message Trace in Exchange Online (EXO).

Books, Media, and Learning Resources

  • A PowerShell Teaser
    Somewhat ironically, since finishing our long series on Bash scripting I’ve been almost exclusively writing scripts in a completely different language, PowerShell! Being a Microsoft language you’d be forgiven for assuming that means I’ve moved to Windows and started trying to automate things there, but you’d be mistaken, I’m still very much a Mac user! So what gives? Despite what its origins may suggest, the core PowerShell environment is both open source and cross-platform, running just fine on the Mac and Linux as well as Windows.
  • PowerShell in Azure: Adding Tags & Setting Location Restrictions
    In this tutorial, learn how to create and apply tags to Azure resources and enforce a location restriction policy using PowerShell. Effective resource tagging helps you organise and manage your Azure environment, while location restriction policies ensure compliance with regional regulations.
  • Run Data Access Governance reports with PowerShell
    How to run Data Access Governance reports for SharePoint Advanced Management in PowerShell

Community

  • Exploring PnP PowerShell Updates with MVP Gautam Sheth
    In this episode of the PowerShell Podcast, we’re joined by Gautam Sheth, Microsoft MVP and M365 developer extraordinaire, to explore the latest improvements to the PnP PowerShell module and how to get started with it. Gautam shares his unique perspective on automating SharePoint, working with Microsoft 365, and leveraging Microsoft Graph through PowerShell. We discuss practical use cases, best practices, and the significance of PnP PowerShell for modern IT and development workflows. From SharePoint tips to automation strategies, this episode is packed with insights for PowerShell enthusiasts and M365 developers alike. Whether you're just starting or looking for advanced techniques, Gautam provides actionable advice and plenty of inspiration!

Fun

Events

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

 

Blogs, Articles, and Posts

  • Automated Deployment of a Zero Trust Azure Automation Environment
    A common and recommended security practice is only allowing access to an Azure Storage Account via a whitelisted IP address. While this is generally a good idea, a problem arises when you need an Azure Automation Account to access one of these Storage Accounts.
  • PowerShell Reusable Sessions: A Guide to Persistent Remote Connections
    Learn how to leverage PowerShell reusable sessions to maintain persistent connections with remote systems. This tutorial shows you how to create, manage and effectively use PowerShell sessions for remote administration.
  • PowerShell 7.5 new features
    Microsoft has unveiled the first release candidate of PowerShell 7.5, with the General Availability (GA) launch expected in January or February 2025. This release candidate provides the most accurate preview of the upcoming final production version of PowerShell 7.5. This new version includes hundreds of changes, ranging from minor adjustments to major new features. In the following sections, we will discuss the key changes in this major PowerShell update.
  • PowerShell Pipeline Parameters: How to Create Pipeline-Ready Functions
    Learn how to enable pipeline input in your custom PowerShell functions using parameter binding. This tutorial shows you how to use ValueFromPipeline and ValueFromPipelineByPropertyName to create functions that work seamlessly with the PowerShell pipeline.
  • Validate list of Email Addresses using PowerShell
    What if you have an extensive list of email addresses? And if you must validate them for syntax and check if there's an email server for that domain? PowerShell is your friend :) In this blog post, I will show you how to import, validate, and export the results of those email addresses.
  • Automatically update PowerShell 7.4 with WSUS or SCCM
    Microsoft enabled automatic updates for PowerShell with the release of PowerShell 7.2; that continues now with PowerShell 7.4.
  • Quickly Finding Previously Typed Commands With PowerShell
    How to find that extremely convoluted command you typed in three months ago that you can't find in your PowerShell history.

Projects, Scripts, and Modules

Community

  • Holiday Special with Gilbert Sanchez: PSScriptAnalyzer, AST, and PowerShell Gifts
    In this special holiday episode of the PowerShell Podcast, we are joined by the incredibly talented Gilbert Sanchez. We dive into the world of PSScriptAnalyzer and use it as a gateway to explore and understand the Abstract Syntax Tree (AST) in PowerShell. Gilbert walks us through a live demo and highlights some powerful ways to leverage the AST to analyze and improve our PowerShell code. As a special holiday treat, Gilbert comes bearing gifts—several awesome PowerShell modules that listeners can start using today.
  • Evgenij Smirnov Talks Certs, Security, and PowerShell Adventures
    In this episode of the PowerShell Podcast, we sit down with Microsoft MVP Evgenij Smirnov to explore his incredible journey from working as a forklift driver to becoming a PowerShell and security expert. We dive into his insights on certificates, security best practices, and the importance of identity in modern IT. Evgenij also shares his experiences with cross-platform PowerShell, highlights from his recent talks, and the value of community events like PowerShell Saturday. Along the way, we discuss his unique career path, his passion for the PowerShell community, and tips for those looking to grow in IT.

Fun

  • 2024 Overview
    It’s 2025, so it’s time to reflect on 2024 :). In this blog post, I will highlight all the great PowerShell things that happened during the year.

Events

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

 

This is the final edition of PowerShell Weekly for 2024. Since this newsletter is hand-curated, I always take the last week of the year off to rest and reflect. I’ll return in the New Year with fresh content and my annual year-in-review, covering all the major PowerShell highlights from 2024.

Announcements!

  • Announcing a free GitHub Copilot for VS Code
    We're excited to announce an all new free plan for GitHub Copilot, available for everyone today in VS Code. All you need is a GitHub account. No trial. No subscription. No credit card required.

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • PowerShell Universal Christmas Edition - Adam Driscoll & Constantin Hager
    In this lecture, Adam Driscoll and Constantin Hager guide the audience through the PowerShell Universal Christmas edition, demonstrating the latest features and functionalities of version 5.1. The session is organized into two main demos, focusing on practical applications of PowerShell and how attendees can utilize these updates in their own projects. The first half of the presentation features Constantin who shares his user management application, utilizing the Request API to query and display user data in a seamless table format.

Community

  • Miriam Wiesner on Identity Hygiene, Security Tools, and Finding Balance
    In this episode of the PowerShell Podcast, we sit down with Miriam Wiesner, a Senior Security Research Program Manager at Microsoft, to dive into the fascinating world of security and identity hygiene. Miriam shares her expertise on the GraphAPI and the critical importance of maintaining proper identity hygiene in today's digital landscape.

Events

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

 

Blogs, Articles, and Posts

  • Install and integrate Microsoft AI Shell with a PowerShell module
    Microsoft’s new AI Shell integrates AI into command-line workflows, featuring the Azure OpenAI Agent and Copilot in Azure Agent for tasks like PowerShell scripting and cloud automation. You can install AI Shell (aish.exe) as a standalone app or PowerShell module to streamline coding, error resolution, and resource management on Windows, macOS, or Linux.
  • Jingle All the Way to Savings: Automate Azure Bastion with Azure Automation!
    In my blog post contribution for this year’s Festive Tech Calendar, I’ll show you how to reduce Azure costs by automating the runtime of your Azure Bastion host(s) with Azure Automation.
  • Setting Up VS Code for PowerShell Development: A Beginner’s Guide
    Learn how to set up Visual Studio Code (VS Code) for PowerShell development in this step-by-step guide. You'll learn how to install VS Code, configure the PowerShell extension, set up the integrated terminal, and explore key features to enhance your PowerShell scripting experience.
  • How to Rename Multiple Files Using PowerShell?
    Recently, I got a requirement to rename numerous report files in a project. PowerShell script is the best option for it. In this tutorial, I will explain how to rename multiple files using PowerShell. Rename Multiple Files Using PowerShell Recently, I was working on a project for a client in New York City.
  • PowerShell Function for the cmd.ms website
    I'm a big fan of the cmd.ms website because it has all the links to quickly jump to a specific blade in a portal instead of clicking multiple parts of a Microsoft Management portal to get there. In this blog post, I will show you how to use a PowerShell function to open one or multiple management websites from the command line.
  • Prevent users from switching and migrating to new Outlook using PowerShell and Microsoft Intune
    Prevent future automatic migration to the new Outlook. In this post, I’ll share the PowerShell script I’m using to prevent users from migrating to the new Outlook if your environment isn’t quite ready for it.
  • It's always DNS
    A story of when it was actually DNS.

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • Windows PowerShell Use Cases in 1 Hour
    In this video, dive into essential PowerShell use cases, including file management, system administration, and basic networking. Learn how to manage files, perform essential administrative tasks, and execute networking commands for tasks like testing up connections, all through PowerShell scripts. This tutorial is perfect for beginners aiming to improve their IT skills and handle various everyday tasks with PowerShell efficiently.
  • PowerShell Collaboration Unleashed! [OC]
    Learn how to use JupyterHub to create shared environments for seamless scripting & collaboration—accessible from any browser.

Community

  • PowerShell Evolution with Sean Wheeler: What's new in PS 7.5, AIShell, & More!
    In this episode of the PowerShell Podcast, we welcome back Sean Wheeler, Lead Documentarian at Microsoft for PowerShell, to catch up on the latest developments in the PowerShell ecosystem. Sean dives into the updates with PSResourceGet, the powerful enhancements in PowerShell 7.5, and the groundbreaking potential of the AI Shell project, designed to transform command-line experiences with artificial intelligence. We also get a recap of Sean’s experience at SpiceWorld, highlighting community insights and key takeaways from the event. Packed with expert tips and exciting news, this episode is a must-listen for PowerShell enthusiasts and IT pros alike!

Fun

Events

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

 

Hey c/PowerShell community!

I’m excited to announce the launch of my new YouTube series, PowerShell Collaboration Unleashed!.

In the first part, we dive into The Littlest JupyterHub— an awesome tool for creating shared environments on a single server. These environments are accessible from any web browser, allowing you to create, run, and share scripts effortlessly.

Here’s what you’ll learn in the first part of the series:

  • An intro to JupyterHub and why it’s a game-changer for collaboration.
  • How to provision an Ubuntu server for The Littlest JupyterHub.
  • Installing and configuring The Littlest JupyterHub and support for dotnet and PowerShell.
  • Setting up shared environments you can start using right away.

Future videos will cover topics like setting up SSH, adding AzureAD/Entra ID authentication, connecting to external resources, securing secrets, logging, and integration with source control.

If you’re passionate about scripting, automation, or simply improving team collaboration, this series is for you!

I would love to hear your thoughts, feedback, questions, or ideas for future topics in this series.

 

Announcements!

  • PowerShell VSCode Extension v2024.5.2-preview
    New PowerShell VSCode extension preview release v2024.5.1! This includes the breakpoint performance improvement I developed, you should see stepping through code work much faster. Please try to break this feature before release!

Blogs, Articles, and Posts

  • PowerShell: How to configure a custom PSSessionconfiguration
    A remote session can be set up with the help of PSSession. The predefined remote session is used by default. However, we can also create our own session configurations and then connect
  • Install and manage VM watch on Azure Virtual Machines
    Microsoft announced the public preview of VM watch, a new in-VM service designed for Azure Virtual Machines (VMs) and Virtual Machine Scale Sets (VMSS). This service aims to enhance VM health monitoring by offering standardized, lightweight, and flexible in-VM health checks that connect seamlessly with Azure's monitoring and AIOps systems.
  • How to Create a PowerShell Module: A Beginner’s Guide
    PowerShell modules are essential for scriptwriters and system administrators to organize and reuse their code. A module is a package of related functions, cmdlets, and resources bundled together for easy sharing and deployment. Creating a custom PowerShell module allows you to centralize functionality, streamline code reuse, and distribute your work to others.
  • How To Check If File Modified In Last 24 Hours Using PowerShell?
    One of my team members recently wanted to check if a file has been modified in the last 24 hours. I suggest using PowerShell as it provides different methods to check. In this tutorial, I will explain how to check if a file has been modified in the last 24 hours using PowerShell with examples.
  • How to compare all files in two folders using PowerShell
    When I am investigating or troubleshooting any issue, I always hope to have access to any log, source control, build artifacts, and pipelines. However, some scenarios are not related to software development where the only resources that I have immediate access to are folders and the files contained, and also the same ones but
  • How to Replace Carriage Returns in Strings Using PowerShell?
    There will be times when you want to replace carriage returns in strings using PowerShell. In this tutorial, we will learn how to replace carriage returns in strings using PowerShell. To replace a string containing a carriage return in PowerShell, use the -replace operator with the carriage return escape sequence `r. For example, $string -replace “r”, “replacement text”will replace

Projects, Scripts, and Modules

  • v0.0.13 EntraFIDOFinder is out
    New Version of EntraFIDOFinder is out and i’ve added a better way to find out which version of FIDO they are using too. I’ve updated it for the PowerShell version and the webversion. Enhancements I did notice that there is a difference for AAGUID 30b5035e-d297-4ff7-b00b-addc96ba6a98 where on Microsofts website it says it should be compatible
  • PSAppDeployToolkit 4.0.2
    The all-new and vastly improved PSAppDeployToolkit v4 is here!

Community

  • Turning the tables. An interview with Andrew Pla
    In this episode, we turn the tables and interview Andrew Pla. We explore Andrew's back story, find out how he got started in IT, and discover where his love of PowerShell comes from. We also discuss his journey from community member to advocate to PowerShell MVP. Get to know Andrew Pla!
  • OnRamp Scholarship Application Now Open
    Are you an entry-level IT professional looking for an immersive introduction to PowerShell, DevOps, and the broader tech community? The OnRamp program at the PowerShell + DevOps Global Summit is designed just for you, and scholarship applications are now open!
  • BlueSky PowerShell Community Starter Pack
    PowerShell and automation enthusiasts who love to share what they know - through code, content, teaching, or lending a hand to others. They strive to make tech accessible to everyone and support each person's learning path with enthusiasm and respect.​​​​​​​​​​​​​​​​
  • Inside IT Automation E18
    Joe Houghes talks about VMware, PowerCLI, PowerShell and more

Events

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

 

Blogs, Articles, and Posts

  • PowerShell Automatic Variables: Special Variables Built into PowerShell
    Learn about PowerShell's automatic variables - built-in special variables that serve specific purposes. Discover how to work with history limits, constants, exit codes, and null values.
  • Install and manage VM watch on Azure Virtual Machines
    Microsoft announced the public preview of VM watch, a new in-VM service designed for Azure Virtual Machines (VMs) and Virtual Machine Scale Sets (VMSS). This service aims to enhance VM health monitoring by offering standardized, lightweight, and flexible in-VM health checks that connect seamlessly with Azure's monitoring and AIOps systems.
  • How to Verify a File Hash (Checksum) on Windows
    Checking a downloaded file’s hash (checksum) allows verifying its integrity and ensuring that the file contents have not been modified. Administrators commonly use MD5/SHA256 checksum verification for downloaded OS distros…
  • Use PowerShell to check if (shortened) URL link is safe
    It just happens a lot: you receive a (shortened) URL and are unsure if it's safe to open. Sometimes, I open it in Windows Sandbox or use the urlscan.io website. In this blog post, I will show you how you can automate the check of a URL and see if it's safe or not :)
  • Activating PIM Roles that require MFA or Conditional Access Authentication Context with PowerShell
    For some time, I’ve been activating and scheduling activations for Azure roles under Privileged Identity Management (PIM) using the Microsoft Graph PowerShell SDK. However recently we secured these role activations to require a conditional access authentication context with MFA. This basically requires me to MFA when I activate a role with PIM. Problem is, by … Continue reading Activating PIM Roles that require MFA or Conditional Access Authentication Context with PowerShell →
  • Loading PowerShell Custom Functions: Profiles, Dot-Sourcing, and Modules
    PowerShell is a versatile scripting environment that allows users to extend its capabilities by creating custom functions. Once written, you can load these PowerShell custom functions into your session or environment for reuse. Here are four common methods to load custom functions in PowerShell.

Projects, Scripts, and Modules

Community

  • Jordan Returns: A Fun Dive into Life, PowerShell, and Beyond
    In this special episode, we catch up with our former cohost, Jordan, and hear about his journey since leaving the PowerShell Podcast. Jordan shares an exciting life update, offers invaluable advice on how PowerShell has shaped his career and participates in our fun "This or That" segment.

Fun

Events

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

 

Announcements!

Blogs, Articles, and Posts

  • How to Query REST APIs with PowerShell: A Practical Guide
    Learn how to use PowerShell to query REST APIs, parse JSON responses, and build a reusable tool for working with web services. This hands-on tutorial covers Invoke-RestMethod, error handling, and creating custom output objects.
  • GitHub Actions and PowerShell: The Underdog
    Remember how I mentioned how GitHub actions are underrated? I’m going to show at a high level how GitHub Actions with PowerShell can save you time and be more efficient. What does it do? It does that automatically once every day, I could do it more, but didn’t think it was necessary.
  • PowerShell Copy-Item with Folder Structure
    In this tutorial, I will explain how to use PowerShell’s Copy-Item cmdlet to copy files and folders while maintaining their original structure. This is a common task for system administrators and developers who need to manage file systems efficiently. You will learn here how to use the PowerShell Copy-Item cmdlet to efficiently copy files
  • Using the Fluent Theme in WPF with PowerShell and .Net 9
    For a long time, adding a modern design theme to your WPF project typically meant adding a 3rd party library to provide the styling, such as MahApps Metro, or WPF UI. With the release of .Net 9, a Fluent theme is finally coming to WPF! There are still areas where 3rd party libraries will be … Continue reading Using the Fluent Theme in WPF with PowerShell and .Net 9
  • Conditional Access Gallery - Point, Select, and Deploy in Minutes
    With my new Conditional Access Gallery tool Invoke-DCConditionalAccessGallery in DCToolbox you can pick and choose from any of 25+ available Conditional Access templates included, and the tool will auto-deploy them in your tenant (report-only mode), automatically create all dependencies like groups, named locations, and terms of use agreements, and finally document your new policy design
  • Upgrading your Azure Function Apps to run on PowerShell 7.4
    PowerShell language worker for Azure Functions. Contribute to Azure/azure-functions-powershell-worker development by creating an account on GitHub.

Projects, Scripts, and Modules

  • PowerHuntShares
    PowerHuntShares is an audit script designed in inventory, analyze, and report excessive privileges configured on Active Directory domains.

Books, Media, and Learning Resources

  • PwshSpecteConsole with Shaun Lawrie
    Shaun Lawrie talks to the Pacific Powershell User Group about PwshSpectreConsole.
  • GitHub Pages with PowerShell
    The Pacific Powershell User Group talks about GitHub Pages and PowerShell and demonstrates PSJekyll.
  • Get-EventSession
    Script to assist in downloading Microsoft Ignite, Inspire, Build or MEC contents or return session information for easier digesting.

Community

  • Growth, Grit, and Community with Steven Judd & Kevin Laux
    In this episode of the PowerShell Podcast, we sit down with Steven Judd and Kevin Laux for insights and inspiration from the PowerShell community. Steven shares his experiences overcoming the hurdles of live demos, recounts the highlights of PowerShell Saturday NC, and reveals the story behind his iconic bling and love for puns. He delves into the importance of "practice makes progress," encouraging listeners to embrace growth through consistent effort. Kevin Laux joins the conversation to discuss his journey with PowerShell, his role with the Research Triangle PowerShell User Group (RTPSUG), and the impact of community involvement.

Fun

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

[–] pwshguy@programming.dev 2 points 3 months ago

No Azure DevOps automatically increments it every time you run the pipeline.

[–] pwshguy@programming.dev 1 points 3 months ago* (last edited 3 months ago) (1 children)

Just looking at it from the point of view of making the script more portable and easier for someone else to run, there are a few things I would address.

The first is the Write-Host commands all over the script. I would recommend converting those to Write-Verbose. Here is a great explanation when to use Write-Host vs other outputs.

There are also numerous Write-Output commands in the script. Anything sent to the Write-Output will be returned to the calling console. If you need to take additional actions based on the results of this script, this could cause issues. You can run into problems with the New-Item commands in there too, as they will produce output. You might consider saving them to a variable or piping to Out-Null.

Also, there is no need to call exit and set an exit code in the way you are. If you want to write and error but have the script continue you can use, Write-Error. If you want the processing to terminate then use throw. Doing it this way will allow PowerShell’s built-in error handling to take care of the exit codes. It will also give you greater flexibility with using Error Action Preferences and using try/catch statements.

Finally, you have a path hardcoded for the workingDir. I would suggest making this a parameter or using an environment variable as this will make it more portable. Also, when creating the log variable, you will want to use the Join-Path cmdlet instead of just joining strings.

[–] pwshguy@programming.dev 1 points 5 months ago

Community

  • Kubernetes is Easy with Anthony Nocentino
    In this episode of the PowerShell Podcast, we sit down with Anthony Nocentino, a Senior Principal Field Solution Architect at Pure Storage, to dive deep into the world of Kubernetes. Anthony breaks down what Kubernetes is and how it fits into the modern IT landscape. We explore his fascinating career journey, from consulting and SQL Server to educating the masses on Kubernetes and Linux. Anthony also shares invaluable insights on becoming a force multiplier in your career and the critical role of mentorship and offers sage advice for anyone looking to elevate their professional path.
  • PSSaturday Karlsuhe Call for Speakers
    We are excited to announce that we are looking for speakers for the upcoming PSSaturday in Germany this November! Whether you're a first-time speaker or an experienced presenter, we welcome you to share your ideas. If you have an interesting topic and are willing to speak for up to 45 minutes, we want to hear from you.
[–] pwshguy@programming.dev 1 points 5 months ago

Projects, Scripts, and Modules

Books, Media, and Learning Resources

  • Build a Superfast Research Assistant using PowerShell and AI
    In this episode, I’ll show you how to combine PowerShell with AI to automate tasks, chat with your data, and build intelligent agents—all within your console and scripts.
  • Interactive Data at Your Fingertips: PowerShell AI Converts Data to Interactive HTML
    Transform your data with PowerShell and AI. In this video, Doug Finke, a 15x Microsoft MVP, shows how to use the PSAI module to convert Excel and CSV files into interactive HTML pages. You'll learn how to sort and interact with your data directly in your browser using the new ConvertTo-InteractiveHTML function. Doug walks through generating HTML tables with sortable columns and customizing them using AI. Whether you're managing large datasets or need a quick way to visualize your data, this tutorial will guide you through the process. Install the PSAI module and start making your data more dynamic.
  • How To PowerShell Code in Docker Containers
    In this video, we guide you through the process of installing and running Docker using PowerShell on Windows. Whether you're a beginner or an experienced developer, this step-by-step tutorial will help you get Docker up and running quickly and efficiently.
[–] pwshguy@programming.dev 10 points 6 months 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 2 points 7 months 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 7 months 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 7 months ago (1 children)

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

[–] pwshguy@programming.dev 1 points 8 months ago (3 children)

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

[–] pwshguy@programming.dev 2 points 8 months 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 8 months ago

Books, Media, and Learning Resources

view more: next ›