26
9

Announcements!

  • PowerShell 7.5.0 preview 2 released
    Include multiple engine and cmdlet updates and fixes.
  • Azure Automation supports Azure CLI commands in runbooks
    Azure Automation has announced support for Azure CLI commands in runbooks (preview announcement). The rich command set of Azure CLI expands capabilities of runbooks even further, allowing you to reap combined benefits of both, for automating and streamlining management of Azure resources. Azure Automation runbooks target orchestration on a wide array of resources such as Virtual Machines, Arc-enabled Servers, Databases, Storage, Azure Active Directory, and much more, along with complex workflows involving multiple resources.

Blogs, Articles, and Posts

  • Why You Should Not Upgrade to Microsoft Graph PowerShell SDK V2.14
    Usually, we recommend that Microsoft 365 tenants use the latest version of the Microsoft Graph PowerShell SDK. However, a serious bug in V2.14 means that this (and perhaps V2.13.1) should be avoided until Microsoft fixes a problem that causes spurious output to be included when cmdlets like Get-MgUser and Get-MgGroup are run.
  • Export Conditional Access Policies to Excel using PowerShell
    Conditional Access policies play a vital role in securing your Microsoft 365 environment and are a key component of the zero-trust model. However, setting them up incorrectly can have serious consequences, like unintentionally compromising your entire Microsoft 365 security.
  • PowerShell: Find Remote Desktop Servers on A Domain
    Remote Desktop Servers have a way of multiplying themselves like some kind of organic creature
  • Schedule PowerShell Script Intune
    This is a blog post about how to schedule a PowerShell script via Intune. Of course, we would like this to be built-in within Microsoft Intune but we are not there yet. Hopefully, this will be an option in the future. We would like to schedule app installs and scripts via Microsoft Intune directly.
  • Running Azure Cloud Shell locally using Docker
    Azure Cloud Shell is a tool I use often and is easy to access from the Admin pages in Azure and 365. You can also use those tools in a local container and connect to it using the command line or Visual Studio Code. In this blog post, I will show you how to install everything and connect and use it locally.
  • AWS PowerShell - Intro to PowerShell Lambdas
    AWS has finally released support for PowerShell lambdas! Lambdas are pieces of code that can be called from just about anywhere in AWS (or outside for that matter). Even better lambdas don’t require a server to run, this means that you only pay for the compute that you actually use. Don’t worry the first 1M hits per month are free. Let’s dive in and see how we can start using our existing PowerShell skills to start building lambdas.

Projects, Scripts, and Modules

  • Easy Packet Loss Tracker
    This PowerShell script helps you monitor packet loss on your network by continuously pinging a specified target (website or IP address) and providing real-time updates on successful responses and timeouts.
  • Query Lenovo Warranty Information with PowerShell
    I used this for an automatic Snyc related to Customer Asset List to get the Warranty Start and END – Date for Lenovo Hardware.
  • PowerShellAIAssistant
    Enhance PowerShell scripting with AI using PowerShell AI Assistant module.
  • Az v11.3.1
    Just a couple of small fixes in this release.

Community

  • Reaching the Summit: Graham's OnRamp Journey
    In this engaging episode, host Andrew sits down with Graham Stringfellow for an insightful discussion filled with personal anecdotes and professional insights. The conversation kicks off with a reflection on Andrew and Graham's shared history, followed by Graham's experience with the PowerShell Summit OnRamp scholarship. Graham sheds light on the infamous mountain disaster involving Phil Bossman, settling the score once and for all. They delve into the importance of building tools that endure and share anecdotes about Andrew handing off some of his PowerShell expertise to Graham. Tune in for a captivating conversation that spans friendship, professional growth, and the enduring legacy of PowerShell.

Fun

  • PowerShell Games
    I use PowerShell for many things, but did you know you can also play games in PowerShell? In this blog post, I will show you a few that are nice to play while waiting for your installation to complete or your code to compile :)

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

27
4

Blogs, Articles, and Posts

  • An example of using PowerShell to manage system and user-assigned managed identities in Azure
    Managed identities provide secure authentication for resources accessing other resources in Azure without requiring sensitive information such as secrets, credentials, and certificates to be handled. Microsoft Entra ID manages these identities, enabling applications to obtain tokens for authentication. In this post, I will provide an example that illustrates how to use system and user-assigned managed identities with PowerShell.
  • Can I Bypass Powershell Execution Policy? Powershell Execution Policies
    Can I Bypass Powershell Execution Policy? If you are new to PowerShell then you are probably ready to dive in and start experimenting with scripts and all kinds of cool learning resources. If you ever download a script from an external source then you need to be aware of a few things.
  • Export Microsoft 365 Users’ Self-Service Password Reset (SSPR) Status Reports
    Microsoft self-service password reset (SSPR) feature enables users to reset passwords independently, reducing help desk reliance in the organization. However, before users can utilize SSPR, admins must enable self-service password reset, and users must register their authentication methods.
  • Add, remove, or replace values using PowerShell
    I had another encounter this week where a customer wanted to remove the value from something in Exchange. Setting the value to $null didn't work, and I showed him how to remove it another way. This blog post will show a few ways to add, remove, or replace a value using Active Directory and Exchange Online as examples.
  • Blogposts and Newsletters in times of AI´s
    This week i am not going to do a regular PowerShell newsletter, it will be more some personal thoughts on the recent developments with AI´s. As long as i read blogposts, i enjoyed the knowledge, which people share regarding a particular problem they want to solve. Solving a technical problem personally is one part of the effot, prepering the solution in a format so that others can benefit from is is a much wider step. Who ever has created a blogpost or video knows that preparation, production and post-editing takes some time, and all of this just for the community
  • What do you use for tooling when it comes to sharing and executing powershell scripts?
    As the title states, I've found that even within teams that engineers write similar things over and over again. Version control and git helps but then there is tracking who executed what when and where, no ability for a historical view and timeline, task scheduler is hard to track success / failures output.

Projects, Scripts, and Modules

  • PdfLexer v 0.1.19
    PdfLexer is a powershell pdf manipulation library for Powershell 7+.

Books, Media, and Learning Resources

  • Your PowerShell Journey Starts Here: A Beginner’s Guide
    PowerShell is a powerful tool for automating tasks and managing systems, especially in a Windows environment. If you’re ready to level up your tech skills, here’s how to get started on your PowerShell learning adventure.
  • Welcome to Professional PowerShell
    This blog is the first installment in our new monthly "Professional PowerShell" series, designed to help part-time PowerShell developers freshen up their scripting skills.

Community

  • Roadmapping your PowerShell Journey with Sean Wheeler
    In this episode of the PowerShell Podcast, host Andrew Pla is joined by the insightful Sean Wheeler for an enlightening discussion on all things PowerShell. Andrew starts off the episode by sharing a community tip and delving into the topic of hosting internal PowerShell meetups. The conversation then shifts to Sean, who sheds light on the process of getting started with learning PowerShell, emphasizing the invaluable resources available on learn.microsoft.com/powershell. Together, they explore the different steps involved in a PowerShell journey and offer guidance on mapping out a personalized learning path. Additionally, they discuss the significance of Git and GitHub in the PowerShell ecosystem and extend an invitation to the community for contributions to the PowerShell Community blog. Tune in for a wealth of knowledge and practical advice to enhance your PowerShell experience.
  • PowerShell Pulse Monthly Tech Talks & Community Showcase
    Unlock the potential of Microsoft 365 configuration with Clayton as he demonstrates the seamless integration of PowerShell and Excel for efficient setup. Delve into Azure's queuing system with Mike to optimize your workflow and achieve continuous delivery. Join us for expert insights and practical tips from their engaging presentation.

Fun

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

28
2

Announcements!

Blogs, Articles, and Posts

Projects, Scripts, and Modules

  • New MSIdentityTools Cmdlet to Report OAuth Permissions
    The latest version of the MSIndentityTools PowerShell module includes the Export-MsIdAppConsentGrantReport cmdlet to generate a report of OAuth app permissions. Allied with the ImportExcel module, the cmdlet can produce a very nice workbook containing lots of information about permissions held by the apps in a tenant. But even better, you can export the data to PowerShell and use it in your scripts.
  • New enhancements to Get-AutopilotDiagnosticsCommunity
    It started off as a simple change: I was annoyed that the “Observed Timeline” in the output from the Get-AutopilotDiagnosticsCommunity (and the older Get-AutopilotDiagnostics script too) had events in the wrong order.
  • Perform Currency Conversions with PowerShell
    I’ve recently been working on a PowerShell module for exploring Azure costs (which I plan to blog about soon) and while doing so added some functionality to allow the costs to be converted between different currencies. It occurred to me that this functionality would be useful as a module of its own, and when I searched around I didn’t find too many recent examples for the same. As such I’ve now developed and published a module in the PowerShell Gallery and on GitHub called CurrencyConverter.
  • PSAuthClient
    PSAuthClient is a flexible PowerShell OAuth2.0/OpenID Connect (OIDC) Client.
  • ConvertFrom-StringTable v 0.9.6
    A PowerShell module designed to effortlessly convert various types of string tables into objects.
  • PSDates v 1.0.0
    PSDates provides you all the tools you need when working with dates and times in PowerShell. It contains function to help you find specific date formats, get certain dates based on other dates (first/last day of the month or year, patch Tuesday, etc). I also has functions for working with timezones, unix time, WMI time, crontabs.

Community

  • PowerShell and Pentesting: Hacker Insights with Spencer Alessi
    In this action-packed episode of the PowerShell Podcast, we kick off with a loaded preshow featuring an exciting announcement of PowerShelldle, a community tip, and a deep dive into my own PowerShell journey in response to a viewer question. The main segment is a fascinating conversation with Spencer Alessi, where we delve into the world of PowerShell and pentesting. Spencer generously shares the tools he would use as a sysadmin pentesting his own environment, including PowerSploit, PingCastle, Bloodhound, LockSmith, and ADeleg. He provides invaluable tips for PowerShell enthusiasts looking to transition into security and pentesting, shedding light on the current and emerging trends in the security landscape. Spencer also gives us insights into the role that PowerShell plays in his role as a pentester. Get ready for a riveting episode filled with tips, tools, and trends in the world of PowerShell and security.
  • Is anyone using Powershell with Linux?
    Recently installed Powershell upon my Debian 12 system (I was informed that I would need to be comfortable with it in the upcoming months, to work with Azure). With that warning, I purchased the Month of Lunches book, and proceeded to get to it.

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

29
7

Announcements!

  • Deprecation of Search-AdminAuditLog and New-AdminAuditLogSearch cmdlets
    We are writing to inform you about an upcoming change that will affect the way you access and manage your Exchange Online audit logs. Starting from April 30, 2024, we will be deprecating the following four cmdlets in the Exchange Online V3 module: 
  • Windows Terminal Preview 1.20 Release
    Happy New Year! The Windows Terminal team is back with our first preview release of the year! Windows Terminal Preview 1.20 introduces several changes such as the automatic deferral of package updates while Windows Terminal is running, support for colorful and crazy line styles, changes to the way search results are highlighted and LOTS of usability updates and bug fixes!

Blogs, Articles, and Posts

  • Active Directory Database: PowerShell Monitoring Made Easy
    Find the ntds.dit location and monitor your Active Directory database using PowerShell.
  • Mastering PowerShell Parameter Validation with Dynamic Methods
    Boost Your Scripting Skills! Dive into Dynamic PowerShell Parameter Validation for Efficient and Robust Coding. A Must-Read for PowerShell Excellence.
  • Add updates (.msu) offline into Windows images (.wim)
    Before deployment, Microsoft ISO's install .wim or custom images should be updated. With the DISM module in PowerShell, you can add .msu updates, apps, and drivers to a Windows image offline without the need to boot it up.
  • Connect an Azure Function or Web App to a Key Vault to retrieve secrets with PowerShell
    Azure Functions often require access to sensitive information. It is a security risk to store credentials in code or configuration files. Thus, protecting sensitive information like connection strings, API keys, or passwords is crucial. This is where Azure Key Vault comes in, offering secure and centralized storage for all your secrets. In this article, I will explain how to retrieve secrets from the Key Vault within an Azure Function using PowerShell.
  • PowerShell: How to ping multiple Computers at once
    You want to ping multiple computers at once? Can’t? Yes you can, with PowerShell. In this post I’ll show you a few examples of how you can ping multiple computers.
  • Using the PowerShell Profiler module
    The Profiler module was mentioned in the episode on January 15th of the PowerShell Podcast from PDQ (My favorite!), and it did not cross my path earlier. In this blog post, I will show you how it works and why it's a great tool to optimize your script performance!
  • How to Convert Multiline String to Array in PowerShell?
    Do you need to convert multiline strings into arrays in PowerShell? In this PowerShell tutorial, I will explain to you different methods to convert a multiline string into an array in PowerShell. To convert a multiline string into an array in PowerShell, you can use the -split operator with a newline character as the delimiter.
  • Embracing UEFI Booting and Secure Boot in ESXi Environments
    Transitioning from BIOS to UEFI booting in ESXi environments is a pivotal step toward enhancing system security and performance. UEFI, with its advanced features like faster boot times and Secure Boot, ensures a robust and secure operating environment. Secure Boot, in particular, plays a crucial role by allowing only signed software to run, thus protecting systems against unauthorized firmware and drivers.
  • How to Report the MFA Status for Entra ID User Accounts
    Microsoft doesn't provide a PowerShell cmdlet to return an accurate MFA status for Entra ID user accounts, but by combining data from multiple sources we can write a script to generate a report showing details of user password settings and MFA status.
  • Tagging Virtual Machines with the CISTag Module in PowerShell
    In this blog post, we’ll explore the process of assigning tags to multiple VMs using the CIStag module in PowerShell. This becomes necessary when the conventional PowerCLI module for tagging VMs fails, as was the case for me.

Projects, Scripts, and Modules

  • Update Windows 10 to 22H2 via Enablement Package
    Developed a script to push to 6000+ endpoints using NinjaRMM that will helps update Windows 10 computers to 22H2 using the enablement package. Ninja has been having issues with getting all these computers patched, so wrote this to help bring all devices up to 22H2 which is the last serviced Windows 10 version until EOL.
  • GitHub - cdhunt/httpunitPS: A PowerShell port of httpunit
    A PowerShell port of httpunit. The goal of this module is to utilize Net.Http.HttpClient to more closely simulate a .Net client application. It also provides easy access to the Windows Certificate store for client certificate authentication.
  • helium v 1.1.8
    Assorted Utilities to make your day happier than inhaling a party balloon.
  • PSWeave v 0.1.1
    PowerShell module that innovates automation with AI to make you more productive

Community

  • PowerShell and Education: A Deep Dive with Jim Tyler, Director of Technology
    In this episode of the PowerShell Podcast, we have the pleasure of hosting Jim Tyler (@PowerShellEngineer). In this episode, Jim shares insights into PowerShell in K-12 education, his book and YouTube channel, Miscripts.org, and his various projects and passions. Join us as we delve into Jim's background, his journey into PowerShell, and the unique challenges and rewards of working in the K-12 sector. We discuss the impact of AI on education, the birth of Miscripts.org, and Jim's creative ventures, from YouTube tutorials to self-publishing a PowerShell book. Get ready for a conversation packed with valuable insights, practical advice, and a touch of Disney magic.

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

30
5

Announcements!

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

Books, Media, and Learning Resources

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

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

31
3

Blogs, Articles, and Posts

  • Naming Made Easy: AI-Powered Rename Suggestions
    Ever struggled to name a variable, method, or class—finding that perfect balance between expressiveness and conciseness? You’re not alone. We’ve tackled this universal challenge in the latest Visual Studio Preview via our GitHub Copilot Chat extension (subscription required). Introducing: AI-powered rename suggestions.
  • Automated Alerts on Azure (Entra ID) Application Secret Expirations
    Monitoring Azure AD (Entra ID now) application secret expirations in an enterprise is a critical aspect of maintaining robust security and ensuring uninterrupted service. When application secrets expire without timely renewal, it can disrupt business operations by causing application failures. Proactive management of application secret expirations helps enterprises avoid last-minute issues, enabling a more secure and efficient operational environment.
  • Create an Amazon Machine Image (AMI) of an EC2 instance with a Bash and PowerShell script
    The provided Bash and PowerShell script helps automate the creation of Amazon Machine Images (AMIs) from existing AWS Elastic Compute Cloud (EC2) instances. This is particularly useful for creating point-in-time backups or disaster recovery. I mostly use the script to quickly clone an EC2 instance for testing or troubleshooting.
  • PowerShell Start Service Explained: Mastering Cmdlets for Windows Services
    Learn how to use PowerShell start service and other cmdlets for Windows Services in this informative tutorial.
  • Copying files between Windows and Linux with SCP and PowerShell
    There are various mechanisms for copying files between Windows and Linux. A proven tool for this purpose is Secure Copy (SCP), and with the porting of PowerShell to Linux, it is suitable for this task, too. The connection runs over SSH in both cases, ensuring that files are transferred encrypted.
  • Using PowerShell to query your Ubiquiti UISP information
    Two days ago, I received my new Ubiquiti UISP Console, an eight-port switch/router with 10Gbit SFP+ slots managed by the Ubiquiti UISP software running on my VPS in Docker. In this blog post, I will show you a few examples of how to query it using PowerShell.
  • Automating Windows 365 part 2 – Using Graph X-Ray
    Introduction This is Part 2 of a new series of guides which will cover managing Windows 365 Cloud PC’s using PowerShell and Microsoft Graph. This mini series should help you get started with automatingContinue reading
  • Uninstall any application in a jiffy using PowerShell and Microsoft Intune
    Introduction This post is a just a quick follow up on my previous post: Uninstall any application in a jiffy using PowerShell and Configuration Manager I received a few questions whether the PowerShell script can be used with Microsoft Intune instead of Microsoft Configuration Manager. And sure! This post will explain one of many approaches available with Intune.
  • How to create a maintenance mode in Azure Automation
    An emergency button to ensure that your runbooks stop running without disconnecting the schedule in Azure Automation Disclaimer: This post can be seen as satire. There are probably better ways, but because we were so limited with the customer at the time, we opted for a hobby approach: Maintenance mode the creative way.

Projects, Scripts, and Modules

  • Reporting Entra ID Admin Consent Requests
    A question came in about how to report admin consent requests as viewed through the Entra ID admin center. PowerShell does the trick, once you know how. The key thing is to find the right cmdlet to use. Once you know that, the rest is pretty easy as we explain in this article.
  • Audit & Report Microsoft 365 Admin Activity using PowerShell
    As a Microsoft 365 admin, ever pondered how your sub-admins wield their privileged powers? We get it – managing multiple admins is no small feat. Microsoft 365 administrators hold significant responsibilities like getting users on board, handling passwords, overseeing various

Books, Media, and Learning Resources

  • PowerCLI Tutorial: Boost Your VMware Management Skills
    Begin your journey with our PowerCLI tutorial and elevate your VMware infrastructure management to expert levels. Learn essential tips and tricks today!
  • PowerShell for Linux admins
    During the Cloud Expo convention in the Netherlands last month, I spoke to someone who said that learning all the PowerShell commands as a Linux admin was difficult. PowerShell was built to make it easier for Linux admins to transition to it. In this blog post, I will show you how aliases work and how they help Linux Admins get started with basic PowerShell tasks.
  • What's in Windows Terminal 1.19 Preview
    In this video, Christopher Nguyen (PM on Windows Terminal) and Mike Griese (Senior Software Engineer on Windows Terminal) will highlight some features from the Windows Terminal 1.19 Preview release—Including community favorites!

Community

  • From Engineer to Manager: Mike Kanakos on Transition, Lessons, and Community
    In this episode of the PowerShell Podcast, we sit down with Microsoft MVP Mike Kanakos to explore his journey transitioning from an engineer to a manager. Mike candidly shares the valuable lessons learned, from navigating newfound responsibilities to embracing a mentoring role. We delve into the pivotal role community involvement played in his managerial growth, touching on how insights from successful teams and best practices informed his approach. The discussion also unveils exciting changes ahead for the Research Triangle PowerShell User Group, which Mike leads. As a bonus, we get an insider's look into Mike's favorite PowerShell modules. Join us for an insightful conversation packed with lessons, community impact, and a sneak peek into the evolving PowerShell landscape.
  • Farewell to Jordan: MVP Chrissy LeMaire Unleashes AI Wisdom
    In this special episode of the PowerShell Podcast, the hosts are joined by the esteemed Chrissy LeMaire, a double Microsoft MVP and GitHub star as we bid a fond farewell to Jordan. Chrissy's wealth of expertise in the PowerShell, GitHub, and AI realms adds a unique perspective to the discussion. We talk about creating personalized chatbots with ChatGPT, uses for AI. Chrissy shares news about her upcoming AI book and the life-changing moment that got her to embrace AI. All that, and more! Don't miss this insightful conversation with a true powerhouse in the tech community.
  • Unlocking Secrets: Sam Erde on Open-Source Contributions and the Locksmith Module
    In this episode of the PowerShell Podcast, featuring guest Sam Erde, we delve into a myriad of topics starting with Andrew's successful acceptance of his talk at PowerShell Summit. The episode unfolds with a spotlight on community resources. Sam Erde, our esteemed guest, shares insights into his blogging journey and his contributions to open-source projects, with a particular focus on the Locksmith module designed to uncover misconfigurations in ADCS Certificate Services. Sam also provides his unique perspective on leveraging PowerShell for various tasks. The hosts engage in a discussion about the community ethos, underscoring the importance of creating more value than capturing, and Sam shares personal experiences that have shaped his approach to community involvement. Tune in for an episode packed with valuable insights, community highlights, and the power of PowerShell in action.

Fun

  • Which naming convention for internal variables?
    Hi guys, I'm new to PowerShell and Microsoft has a guide for Approved Verbs for PowerShell Commands and Strongly Encouraged Development Guidelines, but which naming convention do you use for internal variables?

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

32
7

Check out my review of the past 12 months of PowerShell and the PowerShell Weekly newsletter.

I'd also love to hear what others have to say about the past year as well.

33
5

Blogs, Articles, and Posts

  • Exchange Online: How to set Junk Settings for Shared Mailboxes
    When working with shared mailboxes, there is a problem: the user connected to this mailbox cannot configure the Junk Mail Settings for this shared mailbox in Outlook itself.
  • Entra ID Improves Registered App Security
    The preview app instance property lock feature designed to improve the security of Entra ID registered apps is becoming the default for new apps. In this article, we describe how to update the app instance property lock to reflect the new default setting using cmdlets from the Microsoft Graph PowerShell SDK, including a script you can download and run.
  • Microsoft Graph API Endpoint Adds Last Successful Sign-In Date Time
    Previously, if you wanted to find a user’s last successful sign-in to your Microsoft 365 tenant using the Microsoft Graph REST API, you would have to iterate through Entra ID sign-in logs. With new recent additions to the Microsoft Graph API Beta Endpoint, you can now return the UTC value just by parsing the user details and properties. The Microsoft documentation regarding the signInActivity resource type can be found here.
  • Automating cleanup Entra Joined AVD hosts
    This post is about automating the cleanup for Entra Joined Azure Virtual Desktop (AVD) hosts.
  • Microsoft Intune PowerShell Additional Requirement Rules
    In my last blog post, I showed you how to use Detection scripts in Intune. In this blog post, I will show you how the additional requirement rules work and how you can use PowerShell for those.
  • Using GitHub Copilot to Upgrade PowerShell Scripts to the Microsoft Graph PowerShell SDK
    In this blog, Andy Scheider deep dives into GitHub Copilot and how it can be used to upgrade PowerShell Scripts to the Microsoft Graph PowerShell SDK.
  • Send Telegram Messages from a PowerShell Script
    You can use your Telegram messenger as a notification tool to get instant reports on various infrastructure events, script execution results, or scheduler tasks. This article shows you how to…
  • Powershell Global Variable: Mastering Scope and Usage with Examples
    PowerShell global variables are an essential aspect of scripting in Windows PowerShell. They offer a way to store and manipulate data across functions, scripts, and cmdlets. In this tutorial, I will explain to you how to define, set, and use global variable in PowerShell.
  • Recurring PowerShell Update Issue Easily Fixed - Ed Tittel
    Deja vu! With the introduction of version 7.4.0, MS once again changed the PowerShell (PS) installer. That means Winget won’t update PS directly; one must visit the GitHub PS page and grab a new installer from there. Afterward, as shown in the lead-in graphic, old(er) version(s) of PS still show up when WinGet upgrade is … Continue reading Recurring PowerShell Update Issue Easily Fixed →

Projects, Scripts, and Modules

  • PSEtw
    PowerShell module for capturing ETW events in realtime. Currently this supports Manifest and Trace Logging ETW providers
  • Credential Harvesting with PowerShell and SpecterInsight
    Credential harvesting, also known as credential theft or credential stealing, refers to the collection sensitive authentication information from individuals or systems. The goal of credential harvesting is to obtain usernames, passwords, or other authentication tokens that allow access to protected resources. This post will cover a variety of different credential harvesting techniques, how to leverage those techniques using SpecterInsight, and how to view the data in Kibana.

Books, Media, and Learning Resources

Community

  • Code in Action: Embracing Hands-On Learning with Jeff Hicks
    In this episode of the PowerShell Podcast, guest Jeff Hicks leads a dynamic discussion on the power of hands-on learning with PowerShell and the numerous benefits of learning by doing. Jeff challenges the community with a scripting challenge, encouraging active participation. The episode also features a showcase of some outstanding community blogs, including topics like PowerShell performance testing, web scraping, and module development. Jeff shares insights into his own remarkable modules, and the hosts delve into noteworthy community projects. Don't miss Jeff's scripting challenge and be sure to check out the community blogs and links discussed in this episode!

Fun

Events

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

34
7

Announcements!

Blogs, Articles, and Posts

  • Using PowerShell and Twilio API for Efficient Communication in Contact Tracing
    Learn to integrate PowerShell with Twilio API and streamline communication for COVID-19 contact tracing initiatives.
  • Automate Text Summarization with OpenAI and PowerShell
    This easy-to-follow guide shows you how to use PowerShell to summarize text using OpenAI's GPT-3.5 API.
  • Terminal Chat in Windows Terminal Canary
    At Build 2023, we announced that Windows Terminal users will be able to take advantage of natural language AI to recommend commands, explain errors and take actions within Windows Terminal. Since then, we have been listening to customer feedback and iterating on our AI chat experiments in Windows Terminal.
  • Streamlining Security: Converting CRT Certificates to PEM
    Dive in and learn how to use and to convert CRT certificates to PEM via PowerShell scripts in this ATA Learning tutorial!
  • Reporting User and Group Assignments for Enterprise Applications
    A reader asked how to report user and group assignments for enterprise apps. As it turns out, this isn't particularly difficult, if you know where to look. Our script uses the Graph SDK to check service principals, filters out the apps to check, and extracts the user and group assignments before reporting what it finds.
  • Generating PowerShell module documentation with platyPS
    Creating accurate and efficient documentation is paramount in technical writing, especially for PowerShell modules. platyPS, an open-source module, emerged as a solution for generating Markdown-based reference content for PowerShell modules. This article provides a comprehensive guide for using platyPS to create and maintain high-quality reference documentation for your PowerShell module, enhancing the experience for both module authors and users.
  • Microsoft Intune PowerShell Detection scripts
    When I deploy Win32 packages in Intune, I use PowerShell detection scripts to detect if the software is installed on a system. In the blog post, I will show you how they work and why they are more flexible than file and registry checks. What are detection scripts in Intune?
  • Where the heck is the PowerShell Module loading from?
    If you’re anything like me you always have PowerShell open, and often both PowerShell and Windows PowerShell. And PowerShell in VSCode and Terminal (and sometimes Jupyter Notebook, and WSL – Windows Subsystem for Linux).
  • Using a specific PowerShell profile for a Console session, Windows Terminal, PowerShell ISE, or Visual Studio Code
    I ran into this somewhere during this week. I wanted to have different PowerShell profiles for other applications. (I don't need all my functions and scripts being loaded in every PowerShell session or by a Scheduled Task) In this blog post, I will show you how to change your PowerShell profiles and make them specific for an application.
  • PowerShell Perfomance-Test: Get the Maximum
    Efficiency is key when working with PowerShell, and maximizing performance is a common goal for script developers. In this post, we'll explore various techniques for retrieving the maximum number from arrays of different sizes, comparing well-known approaches like Measure-Object, Sort-Object and a more mathematical method.
  • Ask Jeff November 2023
    I am amazed at how quickly the year is flying by, and there is so much left on my to-do list for 2023. I guess we’d better get right to the monthly wrap-up.
  • Getting Download Links from Webpages using PowerShell
    Introduction I recently had the need to update the Microsoft ODBC Driver for SQL Server on a collection of Windows servers.

Projects, Scripts, and Modules

  • Wingetposh v1.0.1
    Winget helper written in Powershel
  • PowerShell-ALC
    Example ALC structures to use with in a PowerShell module - GitHub - jborean93/PowerShell-ALC: Example ALC structures to use with in a PowerShell module

Books, Media, and Learning Resources

Community

  • In Code We Trust: Being Thankful for PowerShell
    In this special gratitude-filled episode of the PowerShell Podcast, we take time to appreciate the wonderful world of PowerShell - where tech and community coalesce. We highlight some splendid community projects, highlighting their large impacts and innovative approaches. As we recall our podcast journey, we revel in a nostalgic look back while also envisioning a powerful future. From personal anecdotes revealing how PowerShell has shaped our tech lives to a thought-provoking expose on error handling, the episode is a wholesome tableau of learning, reflection, and connection. It's a delightful mix of the cerebral and the personal - with plenty to be thankful for!
  • PowerShell Summit & More: A Chat with James Petty
    In this episode of the PowerShell Podcast, we were joined by Microsoft MVP and PowerShell.org CEO James Petty. We dove into the core of what PowerShell.org brings to the community and James' instrumental role in driving this platform forward. James shared insightful details about the future of the eagerly awaited PowerShell Summit, highlighting the significant and welcome changes in store for next year. The conversation also hailed his latest literary creation, 'Learn PowerShell Scripting in a Month of Lunches,' as we explored the evolution in content and approach compared to its predecessor. Adding to this rich mix were James' anecdotes from his time as a professor teaching PowerShell at a college, providing a truly riveting podcast that celebrates the wide-reaching influence of PowerShell.
  • OnRamp2024 Program Unveiled
    The PowerShell + DevOps Global Summit proudly announces the OnRamp Program for 2024 to foster inclusivity and provide opportunities for aspiring IT professionals.
  • PowerShell Pulse: Monthly Tech Talks & Community Showcase
    Welcome to PowerShell Pulse, a monthly virtual gathering that brings the vibrancy and innovation of the PowerShell community right to your screen! Call for speakers now open.

Fun

  • Automating life tasks
    Been automating a lot of my task at work away with powershell. What are some things in your daily life that you could use powershell to automate away?
  • Let's have a look at what commands we use
    Let's have a look at what commands we use. GitHub Gist: instantly share code, notes, and snippets.

Events

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

35
17
36
8

Announcements!

Blogs, Articles, and Posts

Projects, Scripts, and Modules

  • PSZoom v 2.0.4.2
    A collection of Powershell tools to interface with the Zoom Api.
  • Get Microsoft 365 License Usage Count Using PowerShell
    Keeping an eye on the available licenses in your Microsoft tenant is essential to ensuring you and your users have what is needed to keep the business running. Whether you assign licenses directly or you use Group Based Licensing

Community

  • Emil Larsson: Creating Communal Tech Waves with PowerShell
    In this episode of the PowerShell Podcast, we had Emil Larsson join us! We had a healthy amount of community blogs in this episode, with lots of great conversation all throughout. We discussed how helpful contributing to PowerShell docs can be. We learned about Emil's evolution with PowerShell and how the industry has changed in his 10+ years of experience. Emil and Andrew revisited their early IT days of grappling with upgrades from Windows XP to Windows 7, making all of us a bit nostalgic. We also had a fair bit of discussion around what the PowerShell community is all about.

Fun

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

37
3
38
5

If you are like me and have multiple machines you work on with different profiles, it can be difficult to remember which profile contains which functions. So, I wrote a quick function that will display all the functions for me on start up.

39
16

I've always developed and ran scripts locally through VS Code. I'm just getting started with Azure Automation and am not a fan of waiting for the job to complete before seeing my results. In fact, it's very frustrating. I'd rather develop and test my script locally first before running it in Azure Automation.

I'm using a user-managed identity to run scripts against Exchange Online. VS Code has an Azure Automation plugin that provides an option to run script locally, but the script bombs out when attempting to use the user-managed identity, as the user-managed identity may only be run in Azure.

For those of you who use Azure Automation, I can't imagine that you develop significant portions of the script and wait for automation jobs to complete each time to verify changes.

How do you develop locally? Do you use an app registration w/ client secret in key vault and call that from your local machine? Do you have a process for developing locally for scripts that specify managed identities?

Thanks everyone!

40
6

Azure Automation Run As Account will retire on September 30, 2023 and will be replaced with Managed Identities. Before that date, you'll need to migrate your runbooks to use managed identities.

However, just the presence of a Run As account doesn’t mean a it is being used. Often these were just created during the automation account provisioning. This script help to determine if you are using the Run As account by search through the runbooks to find references to the Run As Account actually being called. Then finds the last time the runbook was executed. If no date is returned, then the runbook has not executed in the last 30 days.

41
8

Enums were introduced to PowerShell in version 5.0 and can be used as a simple way to validate script and parameter input.

42
6
How to create PowerShell docs (mikefrobbins.github.io)

Go beyond comment-based help. Bring your own module and learn how to create the documentation to support it.

43
9

Announcements!

Blogs, Articles, and Posts

  • Find enabled local Group Policy settings with rsop.msc and PowerShell
    When it comes to GPO troubleshooting, you might want to find settings that are configured by local Group Policy. With rsop.msc, a graphical tool is available for this purpose. However, it is generally more efficient to generate a report using gpresult.exe and evaluate it with PowerShell.
  • Your Getting Started Guide to PowerShell Approved Verbs
    Discover how to get started with PowerShell Approved Verbs to make sure your scripts and code is top-notch in this ATA Learning tutorial!
  • How to optimize and speed up your PowerShell scripts
    My best practices, tips and tricks working with PowerShell This is a blog post that is not deeply technical. I will not go deep into the tips and tricks, because you will learn this automatically when you have more experience & when you are ready. I have a seperate blog post about best practices, tips … Continue reading How to optimize and speed up your PowerShell scripts
  • PowerShell Advanced Functions: Cmdlet Bindings and Parameters
    Part 1 of this series on advanced PowerShell functions introduces the key concepts, including cmdlet bindings and common parameters like ErrorAction.

Projects, Scripts, and Modules

  • Announcing PowerShell Crescendo 1.1.0-RC1
    This RC contains several community requested features and fixes including improved support for PSScriptAnalyzer, improvements to error handling, and the addition of ExcludeAsArgument property.
  • Using the Microsoft Graph PowerShell SDK to Generate a Mailbox Traffic Report
    Microsoft 365 makes it easy for administrators to get mail activity usage data for users. However, if you want to know which domains are sending most mail, you need to do some work. In this article, we cover how to use cmdlets from the Microsoft Graph PowerShell SDK to create reports about user mail activity over time and the traffic sent by different domains.
  • ServerCertificateValidationCallback (or rather, collector) for .NET Core
    ServerCertificateValidationCallback (or rather, collector) for .NET Core - Get-WebCertificate.ps1
  • About Colors.md
    When I'm having a bad day, I can spend hours just fiddling with colors and recursion. Today I wrote an HslEnumerator class which is fun because if you output it to the PowerShell terminal it just goes on producing colors forever:
  • Get-AadJoinInformation.ps1
    Get Azure AD (Entra ID) Join Information without dsregcmd

Books, Media, and Learning Resources

  • From Cloud to Console: Harm Veenstra’s PowerShell Perspectives
    We had a cool chat with Harm Veenstra, the guy behind powershellisfun.com. We got into some neat PowerShell stuff like Out-ConsoleGridView and the -PassThru parameter. Harm also gave us the lowdown on when to quit the cloud and spilled the beans on running his blog. Plus, he shared how he keeps up with the quick mojo of the tech world. Tune in for a fun and laid-back tech talk!

Community

Fun

  • PSQuizMaster
    A module for creating and running quizzes to learn PowerShell - GitHub - jdhitsolutions/PSQuizMaster: A module for creating and running quizzes to learn PowerShell

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

44
10

Hi everyone, I created this little tool in Rust to generate obfuscated looking glob patterns for paths by utilizing the default environment variables in Windows PowerShell.

You can check it out here: https://github.com/lavafroth/envy-rs

This can probably be used in conjunction with some other tools to bypass AV/EDR.

As you can guess, I'm not a PowerShell ninja. I did not come up with the idea. I learned about it from this video by John Hammond. I merely implemented the code.

45
10

Blogs, Articles, and Posts

  • Create a Hyper-V VM to run pfSense with a PowerShell script
    In this blog post, you’ll learn how to use a PowerShell script to create a Hyper-V virtual machine (VM) toContinue Reading
  • Function cannot be created because function capacity 4096 has been exceeded for this scope
    I had a long day today when my long-running script (10 hours) gave me weird errors with Microsoft Graph for Teams. Finally, I solved my mistakes and reran the hand to see if the report would be complete this time. Surprisingly, it gave me an error I'd never seen before. "Function cannot be created because function capacity 4096 has been exceeded for this scope". The error is at least weird because it's shown on a production server where I've just a handful of PowerShell modules installed, and I've never seen it on my development machine where I've over 200 modules.
  • Things I use most in my PowerShell scripts
    Looking back at the scripts I created the last year, certain things always come back in most of them. In this blog post, I will show you a few and explain them.
  • Find Who Created a User Account in Microsoft 365 | Audit User Creations 
    In Microsoft 365, user accounts act as gateways to access resources. Unauthorized or suspicious user creations can lead to severe consequences, such as data breaches and compromises in sensitive information. Admins play a critical role in safeguarding organizational data by […]
  • Ask Jeff July 2023
    Well, this has been a whirlwind month. I hope you accomplished much and still had time to learn a thing or two. As has been the custom here, let’s wrap up with grab bag of tips and suggestions.

Projects, Scripts, and Modules

Community

  • Björn Sundling. From PowerShell Developer to MVP: An Unfiltered Journey
    In our latest PowerShell Podcast, we invited Microsoft MVP Björn Sundling,  on a riveting journey from being a PowerShell developer to securing Azure DevOps repositories. With a passion for speaking seeded from his first year at PSConfEU 2015, his road to the podium wasn’t easy. The podcast was peppered with a detailed discussion on the automated scanner project PSSecretScanner. Offering insights into development technologies, this episode is a whirlwind tour of community involvement and encompasses his love of sharing knowledge.

Fun

  • Become the TEC 2023 PowerShell Script-Off Champion
    The TEC 2023 PowerShell Challenge Champion will be known after three rounds of frenetic script coding at The Experts Conference in Atlanta on September 19, 2023. Competitors will need a working knowledge of Microsoft 365 PowerShell, including Exchange Online, Teams, and Azure AD. Being able to think on your feet and come up with working solutions to problems is possibly a more important attribute than coding genius.

Events

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

46
6

Blogs, Articles, and Posts

Projects, Scripts, and Modules

Books, Media, and Learning Resources

Community

  • Culture, Mentoring, and Tech: A Talk with Glen Sarti
    In this episode of the PowerShell Podcast, Glen leads us on the journey of his wide-ranging career, sharing stories about his beginnings in the Powershell world and addressing his brave decision to move across the globe for his dreams. He unravels the complex world of DevOps, recounts experiences from his first talk on “DevOps, Desktop, and Odd Socks,” and offers valuable insights into building effective mentoring relationships. At the heart of the episode is his take on driving cultural change within organizations and his compelling comparison of technical versus social skills in the tech industry. This episode encapsulates numerous nuggets of wisdom from Glen, adding value and insights for listeners at all stages of their tech career.

Fun

  • Posh v0.1.1
    Posh is a PowerShell module that makes PowerShell more fun to work with.

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

47
10
48
8

Like the title says. Have you got powershell 7 installed on the machines you connect to or not?

49
11
50
9
view more: ‹ prev next ›

Powershell

939 readers
1 users here now

PowerShell (POSH) is a a task automation command-line shell and scripting language created by Microsoft. It became part of the FOSS community in 2016 and is now available across Windows, Linux, and macOS

Resources:


Rules:

Self-promotion rules:


founded 1 year ago
MODERATORS