---
title: "Read all of the ATA Learning tutorials on PowerShell here!"
---

# Read all of the ATA Learning tutorials on PowerShell here!

---

# ATA Learning Adam the Automator

Tap to hide

[

ATA Learning

](/)

*   [Home](/)
*   [Tutorials](/tutorials/)
*   [Instructors](/author/)
*   [Advertising](/advertising/)
*   [Recommended Resources](/resources/)
*   [About Adam](/about-adam/)

Search for:  

*   [](https://twitter.com/adbertram)
*   [](https://github.com/Adam-the-Automator)
*   [](https://www.linkedin.com/company/adam-the-automator-llc)
*   [](/feed/)

Show FilterReset Filters

×

Reset Filters

## Tag Search

Search tags

## Tags

*   PowerShell(340)
*   Active Directory(24)
*   Azure(12)
*   Microsoft Azure(11)
*   PowerShell Language(9)
*   Windows(7)
*   Microsoft DNS(6)
*   Pester(6)
*   Security(6)
*   Windows 10(5)
*   windows server(5)
*   Azure DevOps(4)
*   Azure Virtual Machines(4)
*   File Management(4)
*   IIS(4)
*   Office 365(4)
*   Azure Automation(3)
*   Azure Functions(3)
*   Certificates(3)
*   Microsoft 365(3)
*   Microsoft Excel(3)
*   Microsoft Exchange(3)
*   Microsoft Graph(3)
*   Microsoft Windows Server(3)
*   Networking(3)
*   Python(3)
*   VmWare(3)
*   Windows Events(3)
*   WMI(3)
*   Automation(2)

See 10 more

No posts match those tags. Reset the filters and try again.

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b81178e9ac5b3109d7e40/a17dc7e937f939221a5e25aadd5f5749c67f0e262d984e9b032a40d083fe81f4.png)](/find-expiring-app-registration-secrets/)

*   [Microsoft Entra](/tag/microsoft-entra/)
*   [Microsoft Graph](/tag/microsoft-graph/)
*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)

[

## Find Expiring App Registration Secrets Before an Outage

Report expiring app registration secrets and certificates with PowerShell and Microsoft Graph, route each one to its owner, and rotate it safely.

](/find-expiring-app-registration-secrets/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram10 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b8183bec6e5cc0f0356c5/a323a4d03629188de1d5ed18ca60a64a65f94bef73d5390488bde5511859fa05.webp)](/az-800-vs-az-802/)

*   [Active Directory](/tag/active-directory/)
*   [Azure](/tag/azure/)
*   [Microsoft Windows Server](/tag/microsoft-windows-server/)
*   [PowerShell](/tag/powershell/)

[

## AZ-800 vs. AZ-802: Avoid the Wrong Windows Server Exam

See what the AZ-800 retirement means for your Windows Server certification path and how to re-weight your study plan around the current AZ-802 exam.

](/az-800-vs-az-802/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram13 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b811089d5d31807a89aa3/4f6fca0bf1e9083ef5217f16ceed8f939aa4f322e0b4be8d8e3dbb7be8ca3114.webp)](/automate-windows-11-context-menu-registry/)

*   [PowerShell](/tag/powershell/)
*   [Windows](/tag/windows/)
*   [Windows Registry](/tag/windows-registry/)

[

## Automate Windows 11 Context Menu Actions with Registry

Add custom right-click actions to Windows 11 context menus by editing registry verbs, deploying .reg files, and scripting with PowerShell.

](/automate-windows-11-context-menu-registry/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram13 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f35d9c85b2b8157af67cfe805737c4c/d87a8e3ffd5988406606bd14f49a16ebbed72206f31a33a1f24372061a22b0e9.webp)](/purview-missing-ai-prompts/)

*   [Microsoft 365](/tag/microsoft-365/)
*   [Microsoft Exchange](/tag/microsoft-exchange/)
*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)

[

## Troubleshoot Missing AI Prompts in Purview Activity Explorer

Find why Purview records AI activity without prompt text. Check audit settings, capture policies, and viewer permissions in a scoped test.

](/purview-missing-ai-prompts/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram9 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b8198b651eec70c447ee1/bc27e65fd261774769a0da850c0fe0f594bb2c6ba5bfcf317eadea5471382804.jpg)](/find-expired-certificates-powershell/)

*   [Certificates](/tag/certificates/)
*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)
*   [Windows](/tag/windows/)

[

## Find Expired Windows Certificates Instantly via PowerShell

Use PowerShell to scan every certificate store across a Windows fleet, report expired and expiring certificates, and alert before authentication breaks.

](/find-expired-certificates-powershell/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram11 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b81c8a7f8e65f33231fa4/606223a2505919db35cb97858e8eafa9a96eb8d297bab790394df6d592d2af99.webp)](/sysmon-detect-hidden-malware/)

*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)
*   [Windows](/tag/windows/)
*   [Windows Events](/tag/windows-events/)

[

## Sysmon: Detect Hidden Malware in Windows Event Logs

Deploy Sysinternals Sysmon with a tuned config, then use Get-WinEvent and Sysmon event IDs to catch process injection and C2 beaconing.

](/sysmon-detect-hidden-malware/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram13 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b81d9ab7cd5dbb6caf044/21b786d67f19d1813150edf9871e36ead78714b63880de8c6161c7fde11a9769.webp)](/pktmon-capture-windows-traffic/)

*   [Networking](/tag/networking/)
*   [PowerShell](/tag/powershell/)
*   [Windows](/tag/windows/)
*   [Wireshark](/tag/wireshark/)

[

## Pktmon: Capture Windows Traffic Without a Third-Party Driver

Use the in-box Windows Pktmon tool to capture packets and packet-drop reasons, then convert the ETL to pcapng and text for offline analysis.

](/pktmon-capture-windows-traffic/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram14 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/2e05d9c85b2b81c080b8d45ec1cdfbb3/71dd588b2369d52e1695c95c1493383c6c0ed2adb4aac7eba04c1ab324f3a6a6.webp)](/stop-service-principal-sprawl-entra-id-powershell/)

*   [Microsoft Entra](/tag/microsoft-entra/)
*   [Microsoft Graph](/tag/microsoft-graph/)
*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)

[

## Stop Service Principal Sprawl in Entra ID with PowerShell

Inventory every app registration and service principal, then automate ownership, rotation, and safe disablement with PowerShell and Microsoft Graph.

](/stop-service-principal-sprawl-entra-id-powershell/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram16 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/2e05d9c85b2b81feb24af1f04a889143/3eab14af9dabf46fbd333914ce6ccf46f84117d2394d3e7218c186cd249bb7e2.webp)](/powershell-vs-power-automate/)

*   [Automation](/tag/automation/)
*   [Azure Automation](/tag/azure-automation/)
*   [Power Automate](/tag/power-automate/)
*   [PowerShell](/tag/powershell/)

[

## PowerShell or Power Automate: Stop Automation Mistakes

Score six factors to choose between PowerShell and Power Automate: target system, complexity, data volume, team skills, cost, governance.

](/powershell-vs-power-automate/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram13 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2026/08/featured_image-3.webp)](/azure-home-lab-certification-practice/)

*   [Active Directory](/tag/active-directory/)
*   [Azure](/tag/azure/)
*   [hyper-v](/tag/hyper-v/)
*   [PowerShell](/tag/powershell/)

[

## Build an Azure Home Lab for Certs Without Overspending

Build a nested Azure Hyper-V home lab with budget alerts, a domain controller, and Azure Arc mapped to AZ-900, AZ-104, and AZ-305 exams.

](/azure-home-lab-certification-practice/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram12 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2026/06/featured_image-20.png)](/deploy-enterprise-powershell-modules-using-azure/)

*   [Azure](/tag/azure/)
*   [Azure Artifacts](/tag/azure-artifacts/)
*   [Azure DevOps](/tag/azure-devops/)
*   [PowerShell](/tag/powershell/)

[

## Deploy Enterprise PowerShell Modules Using Azure Artifacts

Build a private PowerShell repository using Azure Artifacts with automated CI/CD publishing, semantic versioning, code signing, and JEA integration for secure enterprise module distribution.

](/deploy-enterprise-powershell-modules-using-azure/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram7 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2026/06/featured_image-13.png)](/taming-ai-tool-sprawl-powershell-guide-auditing/)

*   [Microsoft 365](/tag/microsoft-365/)
*   [Microsoft Azure](/tag/microsoft-azure/)
*   [Microsoft Graph](/tag/microsoft-graph/)
*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)

[

## Taming AI Tool Sprawl: A PowerShell Guide to Auditing and Governing Unauthorized AI Applications

Detect and govern unauthorized AI tools with PowerShell, Microsoft Graph, Entra ID, and Defender for Cloud Apps.

](/taming-ai-tool-sprawl-powershell-guide-auditing/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram8 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2026/06/26995-troubleshoot-dns-issues-powershell-codex.webp)](/troubleshoot-dns-issues-powershell/)

*   [DNS](/tag/dns/)
*   [Networking](/tag/networking/)
*   [PowerShell](/tag/powershell/)
*   [windows server](/tag/windows-server/)

[

## Troubleshoot DNS Issues with PowerShell

Troubleshoot DNS issues with PowerShell by testing name resolution, DNS client settings, cache entries, and network connectivity in a repeatable workflow.

](/troubleshoot-dns-issues-powershell/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram6 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2026/04/featured_image-16.webp)](/microsoft-365-e7-99user-price-tag-worth-it/)

*   [Automation](/tag/automation/)
*   [Azure](/tag/azure/)
*   [Microsoft 365](/tag/microsoft-365/)
*   [PowerShell](/tag/powershell/)

[

## Microsoft 365 E7: Is the $99/User Price Tag Worth It?

Evaluate whether Microsoft 365 E7’s $99 price justifies Agent 365 governance using PowerShell scripts to assess Copilot usage and automation risk exposure.

](/microsoft-365-e7-99user-price-tag-worth-it/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram7 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2025/10/image_2025-10-24_095322075.png)](/migrating-powershell-6-to-7-5/)

*   [PowerShell](/tag/powershell/)

[

## Migrating from PowerShell 6 to 7.5: Breaking Changes/New Features

Migrate from PowerShell Core 6 to 7.5: breaking changes, features, and testing tips.

](/migrating-powershell-6-to-7-5/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram4 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2025/06/featured-image-6.png)](/pester-test-timeout-runspaces/)

*   [Pester](/tag/pester/)
*   [PowerShell](/tag/powershell/)

[

## How to Add Timeouts to Pester Tests with PowerShell Runspaces

Prevent Pester tests from hanging indefinitely using PowerShell runspaces. Learn to handle variable scoping, module loading, TestDrive access, and stream capture challenges with timeout protection.

](/pester-test-timeout-runspaces/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram6 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2025/06/featured-image-5.png)](/powershell-module-manifest/)

*   [PowerShell](/tag/powershell/)

[

## PowerShell 101: Creating a Module Manifest

Maybe you’ve put together some great functions but struggle to make them cohesive, intuitive, or shareable. Without a way to define your module’s

](/powershell-module-manifest/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram5 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/2025/03/featured-image.webp)](/powershell-functions-module/)

*   [PowerShell](/tag/powershell/)

[

## Creating a Real-World Module: Creating Functions

Learn how to create PowerShell functions that gather memory, storage, and processor information from remote systems, transforming raw output into readable formats.

](/powershell-functions-module/)

[![Adam Bertram Avatar](https://secure.gravatar.com/avatar/d0b9d42e21e5622713f8b693aa5c0f9244d5f7dd200ed29b8398f52dee5de337?s=192&d=mm&r=g)

Adam Bertram2 min. read

](/author/adam-bertram/)

## Categories

*   [IT Ops](/category/it-ops/)
*   [Cloud](/category/cloud/)
*   [DevOps](/category/devops/)
*   [Home Ops](/category/home-ops/)
*   [Information Security](/category/infosec/)
*   [Software Development](/category/software-development/)

## Site

*   [Home](/)
*   [Tutorials](/tutorials/)
*   [Instructors](/author/)
*   [Advertising](/advertising/)
*   [Recommended Resources](/resources/)
*   [About Adam](/about-adam/)

Copyright 2026© ATA Learning | [Privacy Policy](/privacy/)
