---
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(350)
*   Linux(137)
*   Azure(86)
*   Active Directory(83)
*   AWS(71)
*   Ubuntu Linux(65)
*   Microsoft Azure(60)
*   Windows(60)
*   Command Line(59)
*   Docker(56)
*   Kubernetes(53)
*   Security(53)
*   DevOps(35)
*   Python(34)
*   Windows 10(33)
*   Automation(31)
*   Ansible(30)
*   windows server(29)
*   Terraform(28)
*   AI(25)
*   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/4065d9c85b2b81f8a4cbc18a260aacb3/bd0d0a4c7f5b174292f649a4165c834b4b5d5342386221679e5f76c92d5d3524.webp)](/azure-ai-service-key-rotation/)

*   [Azure](/tag/azure/)
*   [Azure CLI](/tag/azure-cli/)
*   [PowerShell](/tag/powershell/)
*   [Security](/tag/security/)

[

## Rotate Azure AI Service Keys with Zero Downtime

Rotate Azure AI service keys safely with Azure Key Vault, refresh every application instance, and verify the switch before retiring the old key.

](/azure-ai-service-key-rotation/)

[![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/publisher/4065d9c85b2b8191a472c3296ef0d282/e680d5ac1f0cde066996077d926999a4adf6d582b7266d915c0d1cdc3e77f938.webp)](/sysadmin-ai-agent-orchestration/)

*   [AI](/tag/ai/)
*   [Automation](/tag/automation/)
*   [career development](/tag/career-development/)
*   [Governance](/tag/governance/)

[

## Why Sysadmins Must Pivot to AI Agent Orchestration

Learn how sysadmins can govern AI agents with scoped identities, policy gates, approvals, telemetry, and rollback while building an orchestration career.

](/sysadmin-ai-agent-orchestration/)

[![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/3ec5d9c85b2b81eeafdaf1b3f54c3826/22cd9d312ca2537cdaa3f6259d8a9815c180f7755f9a093d180c377cb9555d5c.webp)](/automate-sharepoint-document-archiving/)

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

[

## Automate SharePoint Document Archiving via Power Automate

Archive aging SharePoint files with a scheduled Power Automate flow, then add a ledger, a dry run, and a restore flow that makes every move reversible.

](/automate-sharepoint-document-archiving/)

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

1…[78](/tutorials/page/78/)[»](/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/)
