---
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(349)
*   Active Directory(28)
*   Azure(12)
*   Microsoft Azure(11)
*   Windows(11)
*   PowerShell Language(9)
*   Security(8)
*   Microsoft DNS(6)
*   Microsoft Windows Server(6)
*   Pester(6)
*   File Management(5)
*   Windows 10(5)
*   windows server(5)
*   Azure DevOps(4)
*   Azure Virtual Machines(4)
*   IIS(4)
*   Office 365(4)
*   Windows Events(4)
*   Azure Automation(3)
*   Azure Functions(3)
*   Certificates(3)
*   Microsoft 365(3)
*   Microsoft Entra(3)
*   Microsoft Excel(3)
*   Microsoft Exchange(3)
*   Microsoft Graph(3)
*   Networking(3)
*   Python(3)
*   VmWare(3)
*   WMI(3)

See 10 more

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

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b81d9a96fd378dc47c60a/121705eb357e56699bca0c73e19055d636ddcfdd7418053591d9dbf69af050e2.jpg)](/audit-smb-share-permissions-powershell/)

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

[

## Audit Every SMB Share Permission with Get-SmbShareAccess

Audit SMB share permissions with Get-SmbShareAccess, flag Everyone and Full Control grants, and check the NTFS ACL before you revoke anything.

](/audit-smb-share-permissions-powershell/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b813190efe4fbf5ba49f1/01cf2782293526c501009180bd8555b6e73ab2cef8c62a48d76f7970916c3080.jpg)](/migrate-dhcp-server-export-dhcpserver/)

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

[

## Migrate DHCP Without Losing Leases with Export-DhcpServer

Move a DHCP server with Export-DhcpServer and Import-DhcpServer, keeping leases intact, then authorize the new server in Active Directory.

](/migrate-dhcp-server-export-dhcpserver/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b817aab5dca59f1ca0e14/38378bffb6e067df12a1bd90a3921833213a6e328f7d3baabd1fae698d38ddfd.jpg)](/fix-kerberos-clock-skew-w32tm/)

*   [Active Directory](/tag/active-directory/)
*   [PowerShell](/tag/powershell/)
*   [Windows](/tag/windows/)

[

## Fix Kerberos Clock Skew Logon Failures Using w32tm

Fix Kerberos clock skew logon failures by checking w32tm sources, pointing the PDC emulator at NTP, and resyncing drifted clients.

](/fix-kerberos-clock-skew-w32tm/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b81798ecbd4ce17ad4211/3af27311d4ef00790ee9d17c229fa6097b6ee8b242b0a21e0b024c9807f61639.jpg)](/event-id-1074-windows-server-restart/)

*   [Microsoft Windows Server](/tag/microsoft-windows-server/)
*   [PowerShell](/tag/powershell/)
*   [Windows](/tag/windows/)
*   [Windows Events](/tag/windows-events/)

[

## Who Really Restarted Windows Server? Event ID 1074 and 6008

Use one Get-WinEvent filter to find which account, process, and reason restarted a Windows Server, from Event ID 1074 and 6008 logs.

](/event-id-1074-windows-server-restart/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b81e69730da4c690758c2/4afeea42b7f854d23285b281664351779f042510f1e3a1d766d02cfa39b711a8.jpg)](/find-inactive-computers-active-directory/)

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

[

## Find and Disable Every Inactive AD Computer with PowerShell

Find inactive computer accounts in Active Directory with Search-ADAccount, then disable and quarantine them with PowerShell in steps you can undo.

](/find-inactive-computers-active-directory/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b814eba23fbf8d18b64a2/ade916ad78256face2456a10aacfbb82051f4957bf03d6f163193b25395e5183.jpg)](/backup-restore-gpos-powershell/)

*   [Backups](/tag/backups/)
*   [Group Policy](/tag/group-policy/)
*   [PowerShell](/tag/powershell/)

[

## Back Up and Restore Every Group Policy Object in PowerShell

Back up every Group Policy Object with Backup-GPO, restore one or all with Restore-GPO, and recover a deleted GPO with Import-GPO and New-GPLink.

](/backup-restore-gpos-powershell/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b8194adeee658911c3d7a/7f6a2f144374610925efe230aa9b7df588fbe316342ea3599805d58d8ef3616c.jpg)](/find-unsigned-powershell-scripts/)

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

[

## How to Find Every Unsigned PowerShell Script on a File Share

Use Get-AuthenticodeSignature to find unsigned or edited PowerShell scripts on a file share, then export every failed check to a CSV.

](/find-unsigned-powershell-scripts/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3f95d9c85b2b8181be1be294c37c6724/0ba6a36aaba4a30390fca48d395a19d38846d030302d345372b68b077c3a5cdc.jpg)](/dfs-replication-backlog-powershell/)

*   [DFS](/tag/dfs/)
*   [File Management](/tag/file-management/)
*   [PowerShell](/tag/powershell/)

[

## Find Stuck DFS Replication Backlogs with PowerShell

Find out whether DFS Replication is caught up. Get-DfsrBacklog reads the full file count past the 100-file limit, then a loop checks every group.

](/dfs-replication-backlog-powershell/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](https://adamtheautomator.com/wp-content/uploads/publisher/3ec5d9c85b2b8187987ee10bb8418c2e/df35045971c29173353726a0ebe22dbc4533b795b7b720908e572c5ba8ddeeb9.jpg)](/windows-laps-password-rotation-powershell/)

*   [Active Directory](/tag/active-directory/)
*   [Microsoft Entra](/tag/microsoft-entra/)
*   [Microsoft LAPS](/tag/microsoft-laps/)
*   [PowerShell](/tag/powershell/)

[

## Stop Missed Windows LAPS Password Rotations with PowerShell

Use PowerShell and Microsoft Graph to find every Windows LAPS device that missed its password rotation, then read the event log to learn why.

](/windows-laps-password-rotation-powershell/)

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

Adam Bertram3 min. read

](/author/adam-bertram/)

[![](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/)

## 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/)
