---
title: "ATA Learning Tutorials"
description: "Learn from the best IT how-to tutorials from a range of experienced instructors comprising knowledge and skill from around the world!"
canonical: "https://adamtheautomator.com/tutorials/"
---

# ATA Learning Tutorials

> Learn from the best IT how-to tutorials from a range of experienced instructors comprising knowledge and skill from around the world!

Source: https://adamtheautomator.com/tutorials/

---

# 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)
*   Linux(137)
*   Azure(85)
*   Active Directory(83)
*   AWS(71)
*   Ubuntu Linux(65)
*   Microsoft Azure(60)
*   Windows(60)
*   Command Line(59)
*   Docker(56)
*   Kubernetes(53)
*   Security(52)
*   DevOps(35)
*   Python(34)
*   Windows 10(33)
*   Ansible(30)
*   Automation(29)
*   windows server(29)
*   Terraform(28)
*   AI(24)
*   Networking(24)
*   Azure Virtual Machines(22)
*   Specops(21)
*   VmWare(19)
*   File Management(18)
*   Office 365(17)
*   Azure DevOps(16)
*   macOS(15)
*   Powershell Administration(15)
*   Certificates(14)

See 10 more

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

[![](https://adamtheautomator.com/wp-content/uploads/publisher/4065d9c85b2b81fa8f07fcb190d60bd6/cb069ef52cd49af9b896cfac2ba510145d7ec0576d41d2297dad95219ab96f06.webp)](/github-copilot-agent-mode-vs-cloud-agent/)

*   [AI](/tag/ai/)
*   [DevOps](/tag/devops/)
*   [GitHub](/tag/github/)
*   [GitHub Actions](/tag/github-actions/)

[

## Copilot Agent Mode vs. Cloud Agent: Automate Your DevOps Backlog

GitHub Copilot agent mode vs the cloud agent: which backlog items to delegate, how to write async-ready issues, and how to cap the review queue.

](/github-copilot-agent-mode-vs-cloud-agent/)

[![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/3f25d9c85b2b813e8a0dea451dc89138/6fb0067ffdaeca7dafae4e68bbfde0f73ea197247f36bcc3d64e68dd24a4df0d.webp)](/build-a-slack-help-desk-with-notion-custom-agents/)

*   [AI](/tag/ai/)
*   [Automation](/tag/automation/)
*   [Notion](/tag/notion/)
*   [Slack](/tag/slack/)

[

## Build a Slack Help Desk with Notion Custom Agents

Connect Slack to Notion Custom Agents and build an answer library from pages your team trusts, with source lines, honest refusals, and a human queue.

](/build-a-slack-help-desk-with-notion-custom-agents/)

[![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/3f25d9c85b2b81adaabefac0bca5a4ae/55e11157df7f9c791afbd26ff75cebe00d49fbfd6a51ec905abb1e4dab0659b1.webp)](/close-notion-tasks-on-pr-merge/)

*   [Automation](/tag/automation/)
*   [GitHub](/tag/github/)
*   [Notion](/tag/notion/)

[

## Never Leave Notion Tasks Open After a GitHub Merge

Close Notion tasks when a GitHub pull request merges, verifying the HMAC signature, filtering unmerged closures, and deduping repeat events.

](/close-notion-tasks-on-pr-merge/)

[![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/3ec5d9c85b2b81b29048d1a79022bc78/f8fc0050abe42de0332a054b2c51b8a000144d26fcebb1a4a9aa57239a20f7af.webp)](/migrate-kubernetes-cluster-autoscaler-karpenter/)

*   [AWS](/tag/aws/)
*   [Cluster Autoscaler](/tag/cluster-autoscaler/)
*   [Helm](/tag/helm/)
*   [Karpenter](/tag/karpenter/)
*   [Kubernetes](/tag/kubernetes/)

[

## Migrate from Kubernetes Cluster Autoscaler to Karpenter

Migrate Cluster Autoscaler to Karpenter: design the Karpenter disruption budget, map node groups to NodePools, and drain legacy nodes in waves.

](/migrate-kubernetes-cluster-autoscaler-karpenter/)

[![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/3ec5d9c85b2b8166a0c8fe5c6a6e2cf0/02115bb49a2ca8bd82d69f35a6bd416a877bdf2ea5758c16798be49cd0933db8.webp)](/vendor-onboarding-power-automate-forms/)

*   [Automation](/tag/automation/)
*   [Microsoft 365](/tag/microsoft-365/)
*   [Microsoft Teams](/tag/microsoft-teams/)
*   [Power Automate](/tag/power-automate/)
*   [SharePoint](/tag/sharepoint/)

[

## Automate Vendor Onboarding with MS Forms and Power Automate

Build a vendor intake process with Microsoft Forms, a SharePoint list with unique vendor columns, and a Power Automate flow that blocks duplicates.

](/vendor-onboarding-power-automate-forms/)

[![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/3f25d9c85b2b817b9916e1d7c0ce0d01/9553685a308ab52c50530c8cc96e715bb8f2194da3d00a46fb09a3e8836a559a.webp)](/notion-worker-customer-lookup/)

*   [AI](/tag/ai/)
*   [API](/tag/api/)
*   [Notion](/tag/notion/)
*   [TypeScript](/tag/typescript/)

[

## Notion Workers: Stop Agents Guessing Customer Lookups

Build a read-only lookupCustomer tool in a Notion Worker, then attach it to a Custom Agent so it answers with a plan and status instead of a guess.

](/notion-worker-customer-lookup/)

[![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/3f25d9c85b2b81c4811ed7ed9b290871/d4ebe25fb13196c5dffbe9c4668d57fe178690406552541f4e2f3828e040cc6f.webp)](/notion-custom-agents-weekly-report/)

*   [AI](/tag/ai/)
*   [Automation](/tag/automation/)
*   [Notion](/tag/notion/)

[

## Notion Custom Agents: Automate Your Weekly Project Report

Build a Notion Custom Agent that writes a dated weekly project report from your task database, then test it against an empty week and a repeat run.

](/notion-custom-agents-weekly-report/)

[![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/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/3f35d9c85b2b812193d4cc7a6d4be13d/1daf00385836df44b470b450d81ec18105c2ccff55f54f2fd2f72592fca6e34c.png)](/identity-verification-onboarding/)

*   [Active Directory](/tag/active-directory/)
*   [Microsoft 365](/tag/microsoft-365/)
*   [Microsoft Entra](/tag/microsoft-entra/)
*   [Security](/tag/security/)
*   [Sponsored](/tag/sponsored/)

[

## Stop Impersonation: Verify Identity at Onboarding

Prevent impersonation by verifying identity during onboarding. Why identity proofing must happen before provisioning access to new hires.

](/identity-verification-onboarding/)

[![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/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/3ec5d9c85b2b815cacb1ece7c7ca9758/edff0257593a62603f4fae3b57f62db3fbe832f8af0bcc7638ea7ebd721274c7.jpg)](/nps-radius-windows-server-setup/)

*   [Active Directory](/tag/active-directory/)
*   [Certificates](/tag/certificates/)
*   [Networking](/tag/networking/)
*   [Windows](/tag/windows/)

[

## Set Up NPS RADIUS on Windows Server Without Silent Rejects

Install Windows Server NPS as a RADIUS server for Wi-Fi and VPN, build PEAP and EAP-TLS policies, and decode event 6273 before users complain.

](/nps-radius-windows-server-setup/)

[![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/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/3f35d9c85b2b811abe48f654e457f7e2/690ce33be28df06aba492262db9a7509c7621c624fe455abff00c8b5b3edb0b4.webp)](/retain-copilot-chats-purview-audit/)

*   [eDiscovery](/tag/ediscovery/)
*   [Microsoft 365](/tag/microsoft-365/)
*   [Microsoft 365 Copilot](/tag/microsoft-365-copilot/)
*   [Security](/tag/security/)

[

## Stop Copilot Audit Gaps: Retain Chats with Purview

Retain Copilot prompts and responses for an audit. Scope a Purview policy to Microsoft Copilot experiences, then prove the chats in eDiscovery.

](/retain-copilot-chats-purview-audit/)

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

1…[77](/tutorials/page/77/)[»](/tutorials/page/2/)

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