Generated by All in One SEO v4.9.3, this is an llms.txt file, used by LLMs to index the site. # The Lazy Administrator Finding ways to do the most work with the least effort possible ## Sitemaps - [XML Sitemap](https://www.thelazyadministrator.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Using Dev Proxy to Identify Excessive Microsoft Graph Permissions in Your PowerShell Scripts](https://www.thelazyadministrator.com/2026/02/09/using-dev-proxy-to-identify-excessive-microsoft-graph-permissions-in-your-powershell-scripts/) - Objective The goal of this article is to show how Microsoft Dev Proxy can be used to audit Microsoft Graph permissions in PowerShell scripts and detect unnecessary scopes. Instead of manually mapping Graph endpoints to permissions, you’ll learn how to automate least-privilege analysis, uncover permission creep, and integrate these checks into your development workflow. With - [Stop Configuration Drift in Microsoft 365 Using the new Configuration Management API’s - A Deep Dive](https://www.thelazyadministrator.com/2026/01/27/stop-configuration-drift-in-microsoft-365-using-the-new-configuration-management-apis-a-deep-dive/) - Overview Microsoft has released into public preview a new set of APIs that enable administrators to monitor and alert on configuration changes across one or more tenants, spanning multiple Microsoft 365 workloads, including: Microsoft Entra Exchange Online Microsoft Intune Microsoft Defender Microsoft Purview Microsoft Teams This product is currently in Public Preview. Features and functionality - [How I Automated the Tracking of the Holiday Metra Train](https://www.thelazyadministrator.com/2025/12/17/how-i-automated-the-tracking-of-the-holiday-metra-train/) - Objective This post is a bit different from my usual content, as it may only be of interest to people living in the Chicagoland area. Chicago's regional commuter rail is called the Metra, and during the holidays they have several trains that are decked out in holiday lights and the inside is decorated with lights, - [Using PowerShell to Block GitLab Merges with Unchecked Issue Checkboxes](https://www.thelazyadministrator.com/2025/11/18/using-powershell-to-block-gitlab-merges-with-unchecked-issue-checkboxes/) - Objective This blog post demonstrates how to enforce acceptance criteria in GitLab merge requests using PowerShell pipelines. By validating that all checkboxes in linked issues are completed before a merge is allowed, development teams can ensure higher quality and consistency in their codebase. The solution leverages GitLab’s API to automatically check issue descriptions, report any - [Notify Requesters When GitLab Issues Move Through the Development Pipeline](https://www.thelazyadministrator.com/2025/11/10/notify-requesters-when-gitlab-issues-move-through-the-development-pipeline/) - Objective I use GitLab’s Customer Relationship Management (CRM) feature to track who requested each item. From there, I wanted a way for requesters to be automatically notified as their item moved through the development pipeline, from Backlog to In Progress, Testing/Review, and finally Done. GitLab supports webhooks that trigger on issue events such as creation, - [Building Event-Driven Automations in Microsoft 365 Using Graph Subscriptions](https://www.thelazyadministrator.com/2025/11/03/building-event-driven-automations-in-microsoft-365-using-graph-subscriptions/) - Objective This post demonstrates how to use Microsoft Graph Subscriptions to create event-driven automation in Microsoft 365. Graph Subscriptions allow applications to receive real-time notifications when specific changes occur within Microsoft 365 resources such as users, groups, or mailboxes, without the need for constant polling. By subscribing to these change events, we can build responsive - [Documentation as Code: Using YAML, GitHub Actions, and Azure to Power a Living Catalog](https://www.thelazyadministrator.com/2025/11/04/documentation-as-code-using-yaml-github-actions-and-azure-to-power-a-living-catalog/) - Objective More and more companies are moving into the world of DevOps and automation. As this grows, you begin to face a scaling problem. You now have dozens of automations interacting with different systems, each using its own API keys or managed identities. With so many moving pieces, you need a way to keep track - [Auto Deploy Progressive Web Applications (PWA) using Intune or PowerShell](https://www.thelazyadministrator.com/2025/08/20/auto-deploy-progressive-web-applications-pwa-using-intune-or-powershell/) - Objective In this article I will walk you through installing progressive web app’s, or PWA’s to endpoint machines using either PowerShell or Microsoft Intune. You may want to do this for users with frontline licenses that grant them web apps but not full desktop application's. What are Progressive Web Applications? Progressive Web Apps (PWAs) are - [Detect Modified SharePoint List Items and Retrieve Old Values in Sharepoint Using Logic Apps](https://www.thelazyadministrator.com/2025/03/13/detect-modified-columns-and-retrieve-old-values-in-sharepoint-using-logic-apps/) - Overview I currently have a SharePoint list with an identity (person or group) column called "Owners," where I can search for employees and add them to a list item. I then want to e-mail newly added people that they have been added to a list item so they can go and review the details of - [How The ConnectWise Manage API Handles Pagination with PowerShell](https://www.thelazyadministrator.com/2024/06/06/how-the-connectwise-manage-api-handles-pagination-with-powershell/) - If you have ever worked with the Microsoft Graph API, you may be familiar with how it handles pagination, which is returning an @odata.nextLink property in the response containing a URL to the following results page. I was initially confused when I started working with the ConnectWise PSA API. Although I could specify a pageSize and - [Automating Code Compliance: AI-Driven Code Style Enforcement for Pull Requests](https://www.thelazyadministrator.com/2025/01/31/automating-code-compliance-ai-driven-powershell-style-enforcement-for-pull-requests/) - Overview As teams increasingly rely on automation for code quality and compliance, ensuring consistent coding standards can be challenging during the pull request (PR) process. In this article, we explore how to build an AI-powered style enforcement pipeline using modern tools like GPT-4 and CI/CD workflows. You’ll learn how to: Enforce best practices and team-specific coding guidelines - [Automated Deployment of a Zero Trust Azure Automation Environment](https://www.thelazyadministrator.com/2024/12/30/automated-deployment-of-a-zero-trust-azure-automation-environment/) - Overview A common and recommended security practice is only allowing access to an Azure Storage Account via a whitelisted IP address. While this is generally a good idea, a problem arises when you need an Azure Automation Account to access one of these Storage Accounts. Currently, even if you whitelist an entire Azure region, your - [Automatically Detect and Prevent Secrets Leaked into Code within Azure DevOps](https://www.thelazyadministrator.com/2024/12/09/automatically-detect-and-prevent-secrets-leaked-into-code-within-azure-devops/) - Objective Security vulnerabilities introduced by hardcoded secrets, passwords, or tokens in your source code can significantly compromise the safety of your application and/or infrastructure. A single API key or database connection string committed to a repository can be a gateway for attackers. But how do you ensure sensitive information never enters your codebase? The answer - [Leveraging OpenAI to Enhance Pull Request Management in Azure DevOps](https://www.thelazyadministrator.com/2024/06/24/leveraging-openai-to-enhance-pull-request-management-in-azure-devops/) - Objective Our goal is to create an automation that significantly enhances the efficiency of our development process. A service hook is triggered when a new Pull Request is created in Azure DevOps, sending a webhook to an Azure Function. This function analyzes the request body, gets all commits in the Pull Request, and sends it - [Automate Azure DevOps Work Item Updates with Azure Functions and the Azure DevOps API](https://www.thelazyadministrator.com/2024/06/18/automate-azure-devops-work-item-updates-with-azure-functions-and-the-azure-devops-api/) - Objective I use Azure DevOps Boards for agile project management, allowing me to plan, track, and discuss automation and DevOps tasks. I also create reporting dashboards from the data within the work items. One such metric I report on is how much time we save when implementing a new automation. To do this, I have - [Upload a file to Connectwise and Attach it to a Service Ticket with PowerShell](https://www.thelazyadministrator.com/2024/05/09/upload-a-file-to-connectwise-and-attach-it-to-a-service-ticket-with-powershell/) - I have recently been automating a lot within Connectwise PSA. One of the items I set out to do is to upload a file and attach it to a service ticket. This led me to the following article, but after doing some testing, I found that some file types were not properly rendering on the - [Getting Started with GitHub Copilot in the CLI](https://www.thelazyadministrator.com/2024/03/22/getting-started-with-github-copilot-in-the-cli/) - It was announced recently that GitHub Copilot in the CLI has reached General Availablity for all Individual, Business, and Enterprise customers. In this post, I will show you how you can get download and install the CLI and Copilot extension, authenticate to use Copilot, and the available commands and use cases. Install the GitHub CLI - [View and Export your Intune Device Management Scripts Using the Microsoft Graph PowerShell SDK](https://www.thelazyadministrator.com/2024/03/15/view-and-export-your-intune-device-management-scripts-using-the-microsoft-graph-powershell-sdk/) - Introduction If you're familiar with Intune, you're likely aware of its capability to deploy platform or PowerShell scripts to your endpoint devices. Unfortunately, once you upload your script to the portal, there is (at the time of writing this) no easy way to view the script content or download it. Resolution To quickly and easily - [Automated Alerts on Azure (Entra ID) Application Secret Expirations](https://www.thelazyadministrator.com/2023/12/16/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 - [Automatically Schedule Microsoft Teams Do Not Disturb Presence Based on Outlook Calendar Events](https://www.thelazyadministrator.com/2024/01/03/automatically-schedule-microsoft-teams-do-not-disturb-presence-based-on-outlook-calendar-events/) - In this article I will be showing you how you can automatically have Microsoft Teams set its presence to Do Not Disturb, or any other presence, based on events in your Outlook Calendar. I also looked into leveraging Power Automate but it began to require premium connectors and at that cost, going the serverless automation - [The Microsoft Graph Command-Line Interface (CLI)](https://www.thelazyadministrator.com/2023/12/11/the-microsoft-graph-command-line-interface-cli/) - The Microsoft Graph Command Line Interface (CLI) is a powerful and versatile tool that enables developers and IT professionals to manage their Microsoft 365 services efficiently. Beta and v1.0. - [Microsoft Graph API Endpoint Adds Last Successful Sign-In Date Time](https://www.thelazyadministrator.com/2023/12/09/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 - [Getting Started with the IntuneCLI, an Automated Intune Management Solution](https://www.thelazyadministrator.com/2023/11/29/getting-started-with-the-intunecli-an-automated-intune-management-solution/) - Disclaimer: The IntuneAssistant is an ongoing project that is in development. The document below may be outdated in newer versions. The developer is very active on GitHub if you run into any issues. You should reference the GitHub Project: https://github.com/srozemuller/IntuneAssistant I would also recommend checking out their blog at: Sander Rozemuller | All about Identity, - [Centrally Manage Company Contacts and Deploy to Built-In Contacts App Using Intune, SharePoint, PowerShell and Graph API.](https://www.thelazyadministrator.com/2023/09/17/centrally-manage-company-contacts-and-deploy-to-built-in-contacts-app-using-intune-sharepoint-powershell-and-graph-api/) - [Windows LAPS Management, Configuration and Troubleshooting Using Microsoft Intune](https://www.thelazyadministrator.com/2023/04/22/windows-laps-management-configuration-and-troubleshooting-using-microsoft-intune/) - Windows Local Administrator Password Solution (Windows LAPS) is a Windows Feature that allows IT Administrators to secure and protect local administrator passwords. This includes automatic rotation of passwords as well as backing up the passwords to Azure Active Directory or Active Directory. You can configure Windows LAPS on your Windows endpoints using Microsoft Intune. Pre-requisites - [Modern Active Directory - An update to PSHTML-AD-Report](https://www.thelazyadministrator.com/2023/03/19/modern-active-directory-an-update-to-pshtml-ad-report/) - This is a guest blog by Mehdi Dakhama, you can check out his blog here. He has transformed and improved upon PSHTML AD Report. About This document presents the Modern Active Directory project, which aims to bring a more modern view on your Active Directory, whether to view key indicators or to perform advanced searches - [Set-ADUser: Dealing with Null Values when Importing a CSV; Working with Parameters and Properties that don't Accept Empty Strings](https://www.thelazyadministrator.com/2023/03/15/set-aduser-dealing-with-null-values-when-importing-a-csv-working-with-parameters-and-properties-that-dont-accept-empty-strings/) - Recently, I set out on populating a test Active Directory environment from a production environment. This included populating Active Directory Users and Computers with my users from production. I figured I could quickly export my users from production to a CSV file, include any properties I wanted to import over to the test environment, and - [Migrate your Runbooks in Azure Automation to Managed Identities](https://www.thelazyadministrator.com/2023/03/09/migrate-your-runbooks-in-azure-automation-to-managed-identities/) - Microsoft has recently announced that on September 30th, 2023, Azure Automation RunAs accounts, including Classic Run As accounts, will be retired so you will need to migrate your runbooks to managed identities for authentication. Managed Identities provide the same functionality as a RunAs accounts, plus: Secure authentication to any Azure service that supports Azure Active - [Enable Firefox Windows Single Sign-On using Intune](https://www.thelazyadministrator.com/2023/02/12/enable-firefox-windows-single-sign-on-using-intune/) - One reason you may want to enable Windows SSO within Firefox, is so that your users on Azure AD or Hybrid joined machines can log into Microosft 365 services, such as Outlook, without having to re-authenticate. In this post, I will show you how to leverage Intune and custom configuration profiles to configure Firefox to - [Allow Non-Admin Users to Manage Their Desktop Icons Using Intune](https://www.thelazyadministrator.com/2023/02/10/allow-non-admin-users-to-manage-their-desktop-icons-using-intune/) - Many IT organizations do not allow their end users to be local administrators on company endpoints, and for good reason. But one issue I have ran across is that some applications install an icon on the public desktop (C:\Users\Public\Desktop) and the end user is unable to delete the icon as it requires administrative rights. Using - [Fix Issue with Connecting Managed Google Play to Intune (We couldn't connect to that service)](https://www.thelazyadministrator.com/2023/02/09/fix-issue-with-connecting-managed-google-play-to-intune-we-couldnt-connect-to-that-service/) - Recently, I was connecting Google Play to Intune and ran across an issue that I did not see documented anywhere. I spent a great deal of time pulling my hair out trying to figure out where the disconnect was. I was at the intune portal (intune.microsoft.com) and went to Devices > Android > Android enrollment - [Get a New Computer's Auto Pilot Hash Without Going Through the Out of Box Experience (OOBE)](https://www.thelazyadministrator.com/2020/01/27/get-a-new-computers-auto-pilot-hash-without-going-through-the-out-of-box-experience-oobe/) - Follow up: With windows 11 - this can be done by default in a couple steps: https://learn.microsoft.com/en-us/mem/autopilot/add-devices#diagnostics-page-hash-export With Auto Pilot you need to import a machines Auto Pilot hash, or hardware ID, to register the device with the Windows Auto Pilot deployment service in Azure. Ideally, the process of getting the Auto Pilot hash would - [Set Google as Default Search Engine for Microsoft Edge using Intune](https://www.thelazyadministrator.com/2023/01/21/set-google-as-default-search-engine-for-microsoft-edge-using-intune/) - Using an Intune Settings Catalog we can change Microsoft Edge's default search engine from Bing! to Google Chrome. Navigate to the Intune admin portal at intune.microsoft.com On the left pane, click Devices In the Devices Overview page, click Configuration Profiles found under the Policy Click + Create Profile Under Platform, select Windows 10 and later. - [Improve your Azure Multi-Factor Authentication Notifications](https://www.thelazyadministrator.com/2022/09/26/improve-your-azure-multi-factor-authentication-notifications/) - Recently, Uber appeared to be hacked in what is called a MFA Fatigue attack. The attacker continuously sent MFA requests to an end user hoping they would accidentally approve one of them. Microsoft has several items to help prevent MFA fatigue attacks that you can configure and enable for your end users. Traditionally, MFA notifications - [Block Outdated Operating Systems with Microsoft Defender for Cloud Apps (Cloud App Security)](https://www.thelazyadministrator.com/2022/09/12/block-outdated-operating-systems-with-microsoft-defender-for-cloud-apps-cloud-app-security/) - In this write up I will be configuring Microsoft Defender for Cloud Apps (old name is Cloud App Security) and Conditional Access to block outdated operating systems from accessing Microsoft 365 services within my tenant. Licensing First thing you want to figure out, is licensing. You must have a license that enables "Microsoft Defender - [Connect to Exchange Online PowerShell with an Azure Managed Identity](https://www.thelazyadministrator.com/2022/09/09/connect-to-exchange-online-powershell-with-an-azure-managed-identity/) - Recently the Exchange Online Module v2 came out with support for connecting to Exchange Online via a managed identity. The module has several parameters: ManagedIdentity ManagedIdentityAccountId Organization When using the ManagedIdentity parameter you must also call the Organization parameter which is the initial, or '.onmicrosoft' domain. What You Will Need PowerShell Az PowerShell Module (install-module - [Creating a Microsoft 365 Automated Off-boarding Process with SharePoint, Graph API, and PowerShell](https://www.thelazyadministrator.com/2022/09/08/creating-a-microsoft-365-automated-off-boarding-process-with-sharepoint-graph-api-and-powershell/) - In this write-up I will be creating a basic off-boarding automation that uses SharePoint as the front end, and PowerShell, the Graph API, and Azure Runbooks as the back-end. HR will input the users UPN or Email, offboard date/time, and a forwarding address to forward email to. Once the off-boarding datetime is within 1hr the - [Office 365 / Exchange Online Mailbox Size Report Including Mailbox Free Space with PowerShell](https://www.thelazyadministrator.com/2022/08/27/office-365-exchange-online-mailbox-size-report-including-free-space-with-powershell/) - I wanted to create an automated alert that would notify me of Office 365 mailboxes that were approaching full, and found a terrific PowerShell reporting script by Ruud (LazyAdmin.nl). If you have not checked out his blog, stop reading now and head on over there. There is a ton of great scripts and write ups! - [Auto Delete Message From Yammer Community with PowerShell](https://www.thelazyadministrator.com/2022/08/25/auto-delete-message-from-yammer-community-with-powershell/) - I was recently tasked with clearing out a Yammer Communities auto-welcoming posts. If you are not familiar with auto-welcoming posts, Yammer used to automatically post a message whenever someone joined a community. It looked something like this, "Bradley Wyatt joined the Lazy Administrator network. Take a moment to welcome Brad." Thankfully, Microsoft removed this feature - [Improved External Email Tagging in Office 365](https://www.thelazyadministrator.com/2022/08/25/improved-external-email-tagging-in-office-365/) - With the rise of Phishing emails, a popular method to help your users not get phished is to append warnings to emails that either originate outside the organization or if they originate outside the organization and the display name matches that of a internal user. I myself have posted a blog on how to do - [In-Depth Look at Azure Bicep Syntax](https://www.thelazyadministrator.com/2022/02/21/in-depth-look-at-azure-bicep-syntax/) - If you have not checked out my other series, "Getting Started with Bicep" then I would highly suggest starting there so you can familiarize yourself with Azure Bicep including some basic syntax and how to write your first template. This article will walk you through more advanced syntax topics including output variables, loops and more! - [Getting Started With Bicep: Compiling, Deploying, and Decompiling](https://www.thelazyadministrator.com/2022/02/11/getting-started-with-bicep-compiling-deploying-and-decompiling/) - In the first post of the 'Getting Started with Bicep' series we learned what is Azure Bicep and how to install it and begin working with it. Next, we learned how to create our first Bicep template and user parameters and variables and the different data types there are. Now, in this section we will - [Getting Started with Bicep, an ARM DSL for Azure](https://www.thelazyadministrator.com/2022/02/10/getting-started-with-bicep-an-arm-dsl-for-azure/) - Note: This is one part of a several part blog series that goes through Azure Bicep What is Azure Bicep Bicep is a Domain Specific Language or DSL, for deploying Azure resources in a declarative manner. It 'aims to drastically simplify the authoring experience with a cleaner syntax and better support for modularity and code - [Getting Started with Bicep: Building Your First Bicep Template](https://www.thelazyadministrator.com/2022/02/11/getting-started-with-bicep-building-your-first-bicep-template/) - In the first section, Getting Started with Bicep, an ARM DSL for Azure, we went through what is Azure Bicep, and how to install Bicep on your machine. Now, we will learn how to build our first Bicep Template. Bicep Declaration Overview First, lets look at a Bicep declaration in a basic form: The highlighted Resource - [A PowerShell Game you can Compete with People Online - Feature Update to PSWordle](https://www.thelazyadministrator.com/2022/01/11/powershell-game-you-can-compete-with-people-online-feature-update-to-pswordle/) - Usually, when I update items such as modules, functions, and other projects, I don't make a new post but rather adjust the original post. But, in this case there are so many changes and new features, I felt that I had too. I will still be updating the original post so if anyone stumbles upon - [Play Wordle, the Puzzle Game Using PowerShell](https://www.thelazyadministrator.com/2022/01/04/play-wordle-the-puzzle-game-using-powershell/) - I recently came across a NYTimes article talking about a new game called, 'Wordle.' If you are not familiar with the game, its a text-based game where you have 6 tries to guess the word. Letters in a Gray box are not letters found in the word. Letters in a Yellow box are found in - [From Standard User to Elevated Administrator: Run Elevated PowerShell Commands with PowerShell Studio and Impersonation](https://www.thelazyadministrator.com/2021/10/10/from-standard-user-to-elevated-administrator-run-elevated-powershell-commands-with-powershell-studio-and-impersonation/) - I recently had a request to create a small applet/windows form that would allow regular end users to perform an administrative task. For example, restart the Print Spooler service. We did not want to grant the user any elevated rights, only to give them a program that would allow them to perform the single task - [Uninstall the built-in Chat from Microsoft Teams in Windows 11 with Intune](https://www.thelazyadministrator.com/2021/10/09/uninstall-the-built-in-chat-from-microsoft-teams-in-windows-11-with-intune/) - Windows 11 comes with Chat from Microsoft Teams which is 'a signature, lightweight experience brought right to the Taskbar to let Teams personal account users quickly start a video call or chat with friends and family.'1 The problem with this is that it is only available for Personal accounts and not for Work or School accounts. The new - [Easily Enable End Users to Manage Active Directory Users with PowerShell GUI](https://www.thelazyadministrator.com/2021/01/18/easily-enable-end-users-to-manage-active-directory-users-with-powershell-gui/) - Recently I got a request to find a way to let managers or Human Resources the ability to modify basic user attributes in Active Directory. Like anyone else, I presented the idea of using RSAT to let them modify users in ADUC or ADAC. This was not an ideal solution because ADUC can become overwhelming - [Get Early Voting Locations, Drop Off Ballot Sites, and Election Polling Places with PowerShell](https://www.thelazyadministrator.com/2020/10/23/get-early-voting-locations-drop-off-ballot-sites-and-election-polling-places-with-powershell/) - The 2020 Election is happening on November 3rd, and many people have been lining up to vote early due to COVID-19. Now using PowerShell, you can get your registered polling places based on your address, all early voting locations around you, and drop off ballot locations. All of the information is retrieved using Google's Civic - [Text your Azure Infrastructure with Serverless Computing and PowerShell](https://www.thelazyadministrator.com/2020/10/23/text-your-azure-infrastructure-with-serverless-computing-and-powershell/) - Due to COVID-19 and social distancing, I have found myself camping a lot more than in previous years. One problem that has brought with it is the high probability of being somewhere with no cell phone data service or poor cell phone data. Couple with my incredibly poor memory, I have often forgotten to turn - [Office 365 Anti-Impersonation Email Banner with PowerShell & Azure for Large Enterprises - No More Mailbox Limit](https://www.thelazyadministrator.com/2020/06/30/office-365-anti-impersonation-email-banner-with-powershell-azure-for-large-enterprises-no-mailbox-limit/) - The Problem E-mail spoofing/impersonation is a huge threat to many companies today. A very common approach by scammers is to send your users an email using the display name of a real person within your company. Many users will glance at the email and see the display name and be none the wiser. A popular - [Deploy and Manage Azure Infrastructure Using Terraform, Remote State, and Azure DevOps Pipelines (YAML)](https://www.thelazyadministrator.com/2020/04/28/deploy-and-manage-azure-infrastructure-using-terraform-remote-state-and-azure-devops-pipelines-yaml/) - Overview In this article, I will be showing you how to create an Azure DevOps CI/CD (continuous integration / continuous deployment) Pipeline that will deploy and manage an Azure environment using Terraform. Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Configuration files (In our case, it will be named 'Main.tf') - [Connect and Navigate the Microsoft Graph API with PowerShell](https://www.thelazyadministrator.com/2019/07/22/connect-and-navigate-the-microsoft-graph-api-with-powershell/) - Graph is Microsoft’s RESTful API that allows you to interface directly with Azure AD, Office 365, Intune, SharePoint, Teams, OneNote, and a whole lot more. By using the Invoke-RestMethod PowerShell cmdlet we can connect and interact directly with the Graph API. The Invoke-RestMethod cmdlet sends HTTP and HTTPS requests to Representational State Transfer (REST) web - [Intune + Chocolatey: A Match Made in Heaven](https://www.thelazyadministrator.com/2020/02/05/intune-chocolatey-a-match-made-in-heaven/) - Recently, I have been doing a lot of Microsoft Intune deployments and write up's. One of the most time-consuming tasks with Intune is the application portion, where you package applications up to deploy to your end-user machines. Currently, if the application is bundled as an executable (exe), the steps to get it into Intune is - [Deploy Intune Applications with PowerShell and Azure Blob Storage](https://www.thelazyadministrator.com/2020/01/26/deploy-intune-applications-with-powershell-and-azure-blob-storage/) - Intune is a great way to deploy applications to your managed devices, couple that with Auto Pilot and its a quick and easy way to deploy new end-user machines as well. With Intune you can deploy applications like MSI, Win32, Microsoft Store, etc. The application files are cached on your local machine via Intune, and - [Configure Autopilot Hybrid Azure-AD and ADDS Domain Join](https://www.thelazyadministrator.com/2020/01/16/configure-autopilot-hybrid-azure-ad-and-adds-domain-join/) - Prerequisites Hybrid Azure AD join requires devices to have access to the following Microsoft resources from inside your organization's network. These addresses must be accessed using the SYSTEM context. If you are using Auto Pilot this will be accessed during the enrollment status part: https://enterpriseregistration.windows.net https://login.microsoftonline.com https://device.login.microsoftonline.com https://autologon.microsoftazuread-sso.com (If you use or plan to use seamless - [Homeland Security's Trusted Travelers API and PowerShell - Getting a Better Global Entry Interview Using PowerShell](https://www.thelazyadministrator.com/2019/12/23/homeland-securitys-trusted-travelers-api-and-powershell-getting-a-better-global-entry-interview-using-powershell/) - I am flying out of the country in February and I recently decided to enroll in TSA Pre-Check as well as Global Entry. With Global Entry you automatically get TSA Pre-Check, but Global Entry works for international flights as well and is only a few extra dollars more than TSA Pre-Check. Once you get your - [Backup and Restore your Intune Configuration using PowerShell](https://www.thelazyadministrator.com/2019/11/26/backup-and-restore-your-intune-configuration-using-powershell/) - I found this fantastic PowerShell module from jseerden that queries Microsoft Graph, and allows for cross-tenant Backup & Restore of your Intune Configuration. The Intune Configuration is backed up as JSON files in a given directory. The module allows an administrator to backup, restore and even compare different Intune backup sets. Pre-Requisites The module requires - [Office 365 Email Address Policies with Azure Automation](https://www.thelazyadministrator.com/2019/11/20/office-365-email-address-policies-with-azure-automation/) - Email address policies (EAP) define the rules that create email addresses for recipients. By setting up policies you can guarantee your users will have certain email address that follow the rules you have set in place. Unfortunately, in Office 365 Exchange Online there are no email address policies you can set for your users. In - [ChatOps: Setting up PoshBot for Microsoft Teams](https://www.thelazyadministrator.com/2019/08/19/chatops-setting-up-poshbot-for-microsoft-teams/) - PoshBot is a chat bot written in PowerShell and created by DevBlackOps. 'It makes extensive use of classes introduced in PowerShell 5.0. PowerShell modules are loaded into PoshBot and instantly become available as bot commands.'1 PoshBot can do pretty much anything you configure it to do. You can have it create Azure servers, reset Active - [Post Notifications About Unused Office 365 Licenses to Teams using Azure Runbooks](https://www.thelazyadministrator.com/2019/09/18/post-notifications-about-unused-office-365-licenses-to-teams-using-azure-runbooks/) - I have written several articles on using PowerShell to send alerts and notifications to Microsoft Teams, but up until now they were set up using only the task scheduler. As more and more companies move to the cloud I wanted to see how I could do cloud infrastructure alerting as well. In this article I - [Deploy Web Link Shortcuts to the Desktop and Start Menu Using Intune](https://www.thelazyadministrator.com/2019/11/14/deploy-web-link-shortcuts-to-the-desktop-and-start-menu-using-intune/) - I am currently doing a Auto Pilot / Intune deployment and was asked how we could deploy web link shortcuts to the users desktop as well as the start menu. Currently when you do a web link app deployment in Intune it will only 'install' it in the users Start menu and not the users - [Configure Windows 10 Accent Color with Intune and PowerShell](https://www.thelazyadministrator.com/2019/08/08/configure-windows-10-accent-color-with-intune-and-powershell/) - My last two articles showed you how you can set a computers desktop wallpaper and lock screen wallpaper without having Enterprise or Education by using a PowerShell script and Intune. Now I wanted to figure out how to configure the Windows accent color to also match my corporate branding. Get Color Values The first thing - [Set Corporate Lock Screen Wallpaper with Intune for Non Windows 10 Enterprise or Windows 10 Education Machines](https://www.thelazyadministrator.com/2019/08/08/set-corporate-lock-screen-wallpaper-with-intune-for-non-windows-10-enterprise-or-windows-10-education-machines/) - In my previous article I showed you how you can leverage PowerShell and Intune to set a computers wallpaper even if the OS was not Enterprise or Education. Currently, If you want to set the wallpaper or lock screen wallpaper via Intune Policies, you must be on either Enterprise or Education. In this article I - [Set Corporate Wallpaper with Intune for Non Windows 10 Enterprise or Windows 10 Education Machines](https://www.thelazyadministrator.com/2019/07/30/set-corporate-wallpaper-with-intune-for-non-windows-10-enterprise-or-windows-10-education-machines/) - By default, there is an Intune device configuration property that can set a devices wallpaper (Profile Type: Device Restrictions > Personalization) BUT this is only applicable on devices running Windows 10 Enterprise and Windows 10 Education. Luckily, using PowerShell we can download a image from the web, save it locally, and set it as our - [Connect to the Microsoft Graph API with PowerShell](https://www.thelazyadministrator.com/2018/03/20/connect-to-the-microsoft-graph-api-with-powershell/) - This article will show you how to work with the Graph API using a PowerShell module. If you want to learn how to work with the API with only PowerShell please visit this article: https://www.thelazyadministrator.com/2019/07/22/connect-and-navigate-the-microsoft-graph-api-with-powershell/ The Microsoft Graph API is a REST API provided by Microsoft for integrating and managing Office 365 Exchange Online, OneDrive for - [Getting Started With the Office 365 CLI](https://www.thelazyadministrator.com/2019/06/21/getting-started-with-the-office-365-cli/) - Using the Office 365 CLI, you can manage your Microsoft Office 365 tenant and SharePoint Framework projects on any platform. No matter if you are on Windows, macOS or Linux, using Bash, Cmder or PowerShell, using the Office 365 CLI you can configure Office 365, manage SharePoint Framework projects and build automation scripts. Office 365 - [Find Un-Migrated Phone Numbers in Cisco Call Manager to Port to Skype for Business / Teams](https://www.thelazyadministrator.com/2019/06/17/find-un-migrated-phone-numbers-in-cisco-call-manager-to-port-to-skype-for-business-teams/) - Currently I am doing a Skype for Business migration for a large enterprise. The current phone system is Cisco Call Manager and I am migrating everything to Skype for Business / Microsoft Teams in Office 365. I am at a point where I have migrated a majority of my local users but I want to - [Deploy ConnectWise Automate (Formerly LabTech) Agent Remotely and Quietly with PowerShell](https://www.thelazyadministrator.com/2019/04/30/deploy-connectwise-automate-formerly-labtech-agent-remotely-and-quietly-with-powershell/) - There are many different ways to deploy an RMM agent to monitor end-user machines and servers. A popular option is Group Policy, also some RMM tools have the ability to do a subnet scan, but I wanted to try and do it with PowerShell while also ensuring I do not have any false positives. I - [Get Friendly License Name for all Users in Office 365 Using PowerShell](https://www.thelazyadministrator.com/2018/03/19/get-friendly-license-name-for-all-users-in-office-365-using-powershell/) - When you want to look up a users license in Office 365 using PowerShell you are presented with a unfriendly Sku. Sometimes the Sku and the actual license name are similar but sometime it's hard to distinguish the name from the Sku. Using a hash table we can convert the Sku to its friendly name - [Master User Creator [PowerShell GUI Software] v2 Update](https://www.thelazyadministrator.com/2019/04/01/master-user-creator-powershell-gui-software-v2-update/) - I usually do not post articles on updates to software that I write but there are so many great updates in Master User Creator V2 that I had to make another write up. Master User Creator (MUC) is a piece of software that makes creating Active Directory and/or Office 365 users easier and more efficient. - [PowerShell Function to Connect to All Office 365 Services With Support for MFA](https://www.thelazyadministrator.com/2019/02/05/powershell-function-to-connect-to-all-office-365-services-with-support-for-mfa/) - I usually have to connect to Office 365 via PowerShell at least once per day. I had the following function stored in my PowerShell Profile: function Connect-O365 { $UserCredential = Get-Credential $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.outlook.com/powershell/" -Credential $UserCredential -Authentication Basic -AllowRedirection Import-PSSession $Session Connect-MsolService -Credential $UserCredential } This allowed me to just open - [Get a Teams Notification the Moment an Active Directory User gets Locked Out with PowerShell Using Webhooks](https://www.thelazyadministrator.com/2018/12/13/get-a-teams-notification-the-moment-an-active-directory-user-gets-locked-out-with-powershell-using-webhooks/) - I have been recently using Teams as a central location for my organizations technical notifications instead of email as it provides a way for an entire Help Desk team to openly collaborate on the message and its contents. I recently got a request to get a Teams notification when a user gets locked out of - [Email Users If Their Active Directory Password is set to Expire Soon](https://www.thelazyadministrator.com/2018/03/28/email-users-when-their-active-directory-password-is-set-to-expire-soon/) - In this article I will show you how PowerShell can automatically send an e-mail notification to end users when their Active Directory password is set to expire soon. I looked over several other similar scripts on TechNet but ended up writing one from scratch to incorporate several features I needed, as well as improve on - [Post Inactive Users as a Microsoft Teams Message with PowerShell](https://www.thelazyadministrator.com/2018/12/11/post-inactive-users-as-a-microsoft-teams-message-with-powershell/) - In my previous post I went through setting up a Team's webhook to send a daily message / notification of all your Active Directory users that have their password expiring in a week or less. This is valuable for an IT team as they can review users and work together on the within the same - [Post Users with Expiring Passwords as Microsoft Teams Message with PowerShell](https://www.thelazyadministrator.com/2018/12/07/post-users-with-expiring-passwords-as-team-message-with-powershell/) - Microsoft Teams has many connectors available including Incoming Webhook. "This provides an easy solution to post notifications / messages from any scripting language through JSON formatted web service call."1 In this post I will show you how you can gather all of your users who have passwords expiring within a specified time range, and send a - [Create an Interactive Active Directory HTML Report With PowerShell](https://www.thelazyadministrator.com/2018/12/04/get-an-active-directory-interactive-html-report-with-powershell/) - I have covered the PowerShell module, "ReportHTML" in a previous article (Create an Interactive HTML Report for Office 365 with PowerShell) where I used it to generate Office 365 tenant reports. The module takes a little bit to learn the syntax and formatting but it's great if you are not familiar with CSS/HTML as it - [Sync Office 365 / AzureAD down to ADDS](https://www.thelazyadministrator.com/2018/11/21/sync-office-365-azuread-down-to-adds/) - I recently found myself needing to build out an on premise Active Directory environment and populate it from objects found in Office 365 (AzureAD). The local Active Directory would then be configured as the identity source and would sync up to AzureAD using Azure AD Connect. Unfortunately, Azure AD Connect is currently a one way - [Configure and Deploy Intune MDM](https://www.thelazyadministrator.com/2018/11/19/configure-and-deploy-intune-mdm/) - Description In this article I will be configuring and deploying Intune as a stand-alone MDM solution. This article will walk you through deploying applications to devices, configuring your Company Portal, enrolling end user devices, creating policies and more. Solution Configure MDM Authority First we must configure Intune as my MDM authority. Since I am doing - [Customize your Office 365 Encrypted Messages with your Organizations Brand in Office 365](https://www.thelazyadministrator.com/2018/10/13/customize-your-office-365-encrypted-messages-with-your-organizations-brand-in-office-365/) - As an Office 365 administrator, you can apply your company branding to customize the look of your organization's Office 365 Message Encryption email messages as well as the contents of the encryption portal. You can customize the following aspects of the viewing experience for recipients of encrypted email messages: Introductory text of the email that - [Manage and Administer SharePoint using SharePointPnP.PowerShell](https://www.thelazyadministrator.com/2018/08/20/manage-and-administer-sharepoint-using-sharepointpnp-powershell/) - The SharePoint Development Community (also known as the SharePoint PnP community) is an open-source initiative coordinated by SharePoint engineering. This community controls SharePoint development documentation, samples, reusable controls, and other relevant open-source initiatives related to SharePoint development1 . The SharePointPnP.PowerShell module is quite vast when it comes to managing and administrating your on-premise or SharePoint - [[Tool] Create and Configure Active Directory and Office 365 Users at Once.](https://www.thelazyadministrator.com/2018/07/11/tool-create-and-configure-active-directory-and-office-365-users-at-once/) - One of the things IT Administrators look to automate first is the new user creation process. I recently was going through the process of creating a new hires Active Directory login, Office 365 mailbox, and their Office 365 user account, and I wondered how I could make the process easier and quicker. My focus was geared - [Create an Interactive HTML Report for Office 365 with PowerShell](https://www.thelazyadministrator.com/2018/06/22/create-an-interactive-html-report-for-office-365-with-powershell/) - From time to time you may get clients or even managers requesting reports about their Office 365 environment. Another popular reason to compile a report on an Office 365 tenant would be when you take over a new client and you are auditing their environment trying to figure out what exactly is going on. Click - [[Function] Export Report of Unused Office 365 Licenses Across Multiple Tenants or a Single Tenant Using Friendly License Names](https://www.thelazyadministrator.com/2018/03/26/function-export-report-of-unused-office-365-licenses-across-multiple-tenants-or-a-single-tenant-using-friendly-license-names/) - Even if a license is not assigned to an Exchange Online object does not mean it's not being charged back to the tenant. If you work for a MSP or IT Consultant you may want to audit your clients Office 365 tenant for any licenses that are not assigned so they are not paying for - [Create Bulk Office 365 Compliance Searches with PowerShell](https://www.thelazyadministrator.com/2018/03/18/create-bulk-office-365-compliance-searches-with-powershell/) - Recently I wanted to find a way to get PowerShell to create compliance searches that followed keyword queries and search conditions. This means I could have multiple values in one search query. For example, "TO brad wyatt AND FROM administrator@microsoft.com". This query would search for e-mails sent to Brad which only from administrator@microsoft.com. To get - [Office 365 Report Using Excel COM Interface with PowerShell](https://www.thelazyadministrator.com/2018/04/12/office-365-report-using-excel-com-interface-with-powershell/) - I set out to explore a way to generate a nice, multi-sheet, Office 365 report that I could give to end-user's or Office Manager's using PowerShell. Unfortunately, I read about the Excel COM interface before reading about the Excel PowerShell module created by Doug Finke. If you are starting from scratch, I would recommend reading - [Create a Real Time Interactive Dashboard for Office 365 Using PowerShell Universal Dashboard](https://www.thelazyadministrator.com/2018/04/09/create-a-real-time-interactive-dashboard-for-office-365-using-powershell-universal-dashboard/) - If you have never heard of PowerShell Universal Dashboard you need to head on over to PoshUD right now and check out this awesome PowerShell Module. Using PowerShell Core, Material Design, ReactJS and ASP.NET Core, Universal Dashboard takes advantage of cutting-edge technology to provide cross-platform, cross-device dashboards that looks sleek and modern.1 While reading over some - [Auto License Office 365 Migration Users Prior to Completing the Migration](https://www.thelazyadministrator.com/2018/04/06/auto-license-office-365-migration-users-prior-to-completing-the-migration/) - When doing a migration to Office 365, one of the final steps prior to "flipping" the user in the migration batches, is to make sure to properly license them so once they flip they get an Exchange Online mailbox. One of the issues you will come across is you will have more users in Office - [Remotely Install Office ProPlus / Update Office Configuration on Client Computers with PowerShell](https://www.thelazyadministrator.com/2018/03/20/remotely-install-office-proplus-update-office-configuration-on-client-computers-with-powershell/) - There are some immediate perks for using PowerShell to either install an application on remote computers or update an applications configuration remotely. In this post I will do several things, Install Office 365 ProPlus to a remote computer, and update the configuration of Office 365 ProPlus on the remote machine, having it go from the - [Monitor Share and NTFS Permissions and E-Mail Changes](https://www.thelazyadministrator.com/2018/03/17/monitor-share-and-ntfs-permissions-and-e-mail-changes/) - Recently I set out to find a way to get PowerShell to monitor NTFS and File permissions on a folder and file share. I wanted to know when permissions changed, how they changed (Read permission changed to Write permission), keep historical permission data I can reference, and lastly e-mail me the changes when they changed. ## Pages - [About Me](https://www.thelazyadministrator.com/about-me/) - My name is Bradley Wyatt; I am a 4x Microsoft Most Valuable Professional in Cloud and Datacenter Management, a co-organizer of the Chicago PowerShell Users group and the lead-organizer of the Chicago PowerShell conference. I have given public talks to at the Global PowerShell Summit in Bellevue, WA. the Microsoft Technology Center in Chicago, IL., - [Contact](https://www.thelazyadministrator.com/contact/) - [Disclaimer](https://www.thelazyadministrator.com/disclaimer/) - Disclaimer: You are 100% responsible for your own IT Infrastructure, applications, services and documentation. TheLazyAdministrator.com owners, authors and contributors assume no liability or responsibility for your work. Please independently confirm anything you read on this blog before executing any changes or implementing new products or services in your own environment. Furthermore, authors and contributors are - [Sample Page](https://www.thelazyadministrator.com/sample-page/) - This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this: Hi there! I'm a bike messenger ## Categories - [Uncategorized](https://www.thelazyadministrator.com/category/uncategorized/) - [PowerShell](https://www.thelazyadministrator.com/category/powershell/) - [Office 365](https://www.thelazyadministrator.com/category/office-365/) - [Delegated Admin](https://www.thelazyadministrator.com/category/delegated-admin/) - [Permissions](https://www.thelazyadministrator.com/category/permissions/) - [Active Directory](https://www.thelazyadministrator.com/category/active-directory/) - [SharePoint](https://www.thelazyadministrator.com/category/sharepoint/) - [Intune](https://www.thelazyadministrator.com/category/intune/) - [Azure](https://www.thelazyadministrator.com/category/azure/) - [Microsoft Teams](https://www.thelazyadministrator.com/category/office-365/microsoft-teams/) - [LabTech](https://www.thelazyadministrator.com/category/labtech/) - [Skype for Business](https://www.thelazyadministrator.com/category/office-365/skype-for-business/) - [Graph](https://www.thelazyadministrator.com/category/graph/) - [AutoPilot](https://www.thelazyadministrator.com/category/autopilot/) - [DevOps](https://www.thelazyadministrator.com/category/devops/) - [Terraform](https://www.thelazyadministrator.com/category/terraform/) - [Bicep](https://www.thelazyadministrator.com/category/bicep/) - [Yammer](https://www.thelazyadministrator.com/category/office-365/yammer-office-365/) - [Defender for Cloud Apps](https://www.thelazyadministrator.com/category/defender-for-cloud-apps/) - [Security](https://www.thelazyadministrator.com/category/security/) - [AI](https://www.thelazyadministrator.com/category/ai/) - [Connectwise](https://www.thelazyadministrator.com/category/connectwise/) - [API](https://www.thelazyadministrator.com/category/api/) - [Microsoft 365](https://www.thelazyadministrator.com/category/microsoft-365/) ## Tags - [PowerShell](https://www.thelazyadministrator.com/tag/powershell/) - [Permissions](https://www.thelazyadministrator.com/tag/permissions/) - [Monitor](https://www.thelazyadministrator.com/tag/monitor/) - [Compliance](https://www.thelazyadministrator.com/tag/compliance/) - [Search](https://www.thelazyadministrator.com/tag/search/) - [Exchange](https://www.thelazyadministrator.com/tag/exchange/) - [Office 365](https://www.thelazyadministrator.com/tag/office-365/) - [Licenses](https://www.thelazyadministrator.com/tag/licenses/) - [Compliance Center](https://www.thelazyadministrator.com/tag/compliance-center/) - [Microsoft Office](https://www.thelazyadministrator.com/tag/microsoft-office/) - [API](https://www.thelazyadministrator.com/tag/api/) - [Graph API](https://www.thelazyadministrator.com/tag/graph-api/) - [Delegated Admin](https://www.thelazyadministrator.com/tag/delegated-admin/) - [Active Directory](https://www.thelazyadministrator.com/tag/active-directory/) - [Users](https://www.thelazyadministrator.com/tag/users/) - [Passwords](https://www.thelazyadministrator.com/tag/passwords/) - [Exchange Online](https://www.thelazyadministrator.com/tag/exchange-online/) - [Migration](https://www.thelazyadministrator.com/tag/migration/) - [Dashboard](https://www.thelazyadministrator.com/tag/dashboard/) - [REST](https://www.thelazyadministrator.com/tag/rest/) - [Reports](https://www.thelazyadministrator.com/tag/reports/) - [Reporting](https://www.thelazyadministrator.com/tag/reporting/) - [COM](https://www.thelazyadministrator.com/tag/com/) - [COM Objects](https://www.thelazyadministrator.com/tag/com-objects/) - [Excel](https://www.thelazyadministrator.com/tag/excel/) - [Office](https://www.thelazyadministrator.com/tag/office/) - [HTML](https://www.thelazyadministrator.com/tag/html/) - [ReportHTML](https://www.thelazyadministrator.com/tag/reporthtml/) - [Report](https://www.thelazyadministrator.com/tag/report/) - [Automation](https://www.thelazyadministrator.com/tag/automation/) - [SharePoint](https://www.thelazyadministrator.com/tag/sharepoint/) - [MetaData](https://www.thelazyadministrator.com/tag/metadata/) - [Keywords](https://www.thelazyadministrator.com/tag/keywords/) - [Security](https://www.thelazyadministrator.com/tag/security/) - [Encryption](https://www.thelazyadministrator.com/tag/encryption/) - [Azure](https://www.thelazyadministrator.com/tag/azure/) - [MDM](https://www.thelazyadministrator.com/tag/mdm/) - [MAM](https://www.thelazyadministrator.com/tag/mam/) - [Intune](https://www.thelazyadministrator.com/tag/intune/) - [AzureAD](https://www.thelazyadministrator.com/tag/azuread/) - [ADDS](https://www.thelazyadministrator.com/tag/adds/) - [WebHook](https://www.thelazyadministrator.com/tag/webhook/) - [Teams](https://www.thelazyadministrator.com/tag/teams/) - [Office365](https://www.thelazyadministrator.com/tag/office365/) - [Microsoft Teams](https://www.thelazyadministrator.com/tag/microsoft-teams/) - [JSON](https://www.thelazyadministrator.com/tag/json/) - [Multi-Factor Authentication](https://www.thelazyadministrator.com/tag/multi-factor-authentication/) - [MFA](https://www.thelazyadministrator.com/tag/mfa/) - [GUI](https://www.thelazyadministrator.com/tag/gui/) - [Windows](https://www.thelazyadministrator.com/tag/windows/) - [Server](https://www.thelazyadministrator.com/tag/server/) - [Connectwise](https://www.thelazyadministrator.com/tag/connectwise/) - [LabTech](https://www.thelazyadministrator.com/tag/labtech/) - [Skype](https://www.thelazyadministrator.com/tag/skype/) - [Skype for Business](https://www.thelazyadministrator.com/tag/skype-for-business/) - [Cisco](https://www.thelazyadministrator.com/tag/cisco/) - [CUCM](https://www.thelazyadministrator.com/tag/cucm/) - [PnP](https://www.thelazyadministrator.com/tag/pnp/) - [CLI](https://www.thelazyadministrator.com/tag/cli/) - [Graph](https://www.thelazyadministrator.com/tag/graph/) - [Application](https://www.thelazyadministrator.com/tag/application/) - [Token](https://www.thelazyadministrator.com/tag/token/) - [Endpoint Management](https://www.thelazyadministrator.com/tag/endpoint-management/) - [AutoPilot](https://www.thelazyadministrator.com/tag/autopilot/) - [Configuration Policy](https://www.thelazyadministrator.com/tag/configuration-policy/) - [Theme](https://www.thelazyadministrator.com/tag/theme/) - [Accent Color](https://www.thelazyadministrator.com/tag/accent-color/) - [ChatOps](https://www.thelazyadministrator.com/tag/chatops/) - [Runbook](https://www.thelazyadministrator.com/tag/runbook/) - [RunBooks](https://www.thelazyadministrator.com/tag/runbooks/) - [Modern Workplace](https://www.thelazyadministrator.com/tag/modern-workplace/) - [Shortcuts](https://www.thelazyadministrator.com/tag/shortcuts/) - [EAP](https://www.thelazyadministrator.com/tag/eap/) - [TSA](https://www.thelazyadministrator.com/tag/tsa/) - [Global Entry](https://www.thelazyadministrator.com/tag/global-entry/) - [Homeland Security](https://www.thelazyadministrator.com/tag/homeland-security/) - [ModernWorkplace](https://www.thelazyadministrator.com/tag/modernworkplace/) - [Chocolatey](https://www.thelazyadministrator.com/tag/chocolatey/) - [DevOps](https://www.thelazyadministrator.com/tag/devops/) - [Terraform](https://www.thelazyadministrator.com/tag/terraform/) - [YAML](https://www.thelazyadministrator.com/tag/yaml/) - [Pipelines](https://www.thelazyadministrator.com/tag/pipelines/) - [CICD](https://www.thelazyadministrator.com/tag/cicd/) - [IaC](https://www.thelazyadministrator.com/tag/iac/) - [CaC](https://www.thelazyadministrator.com/tag/cac/) - [Spoof](https://www.thelazyadministrator.com/tag/spoof/) - [Email](https://www.thelazyadministrator.com/tag/email/) - [Serverless](https://www.thelazyadministrator.com/tag/serverless/) - [Functions](https://www.thelazyadministrator.com/tag/functions/) - [Cloud](https://www.thelazyadministrator.com/tag/cloud/) - [Servers](https://www.thelazyadministrator.com/tag/servers/) - [SMS](https://www.thelazyadministrator.com/tag/sms/) - [Twilio](https://www.thelazyadministrator.com/tag/twilio/) - [Elections](https://www.thelazyadministrator.com/tag/elections/) - [2020 Election](https://www.thelazyadministrator.com/tag/2020-election/) - [ADUC](https://www.thelazyadministrator.com/tag/aduc/) - [Active Directory Users and Computers](https://www.thelazyadministrator.com/tag/active-directory-users-and-computers/) - [Windows 11](https://www.thelazyadministrator.com/tag/windows-11/) - [Chat](https://www.thelazyadministrator.com/tag/chat/) - [Messaging](https://www.thelazyadministrator.com/tag/messaging/) - [PowerShell Studio](https://www.thelazyadministrator.com/tag/powershell-studio/) - [Sapien](https://www.thelazyadministrator.com/tag/sapien/) - [Wordle](https://www.thelazyadministrator.com/tag/wordle/) - [Games](https://www.thelazyadministrator.com/tag/games/) - [Puzzle](https://www.thelazyadministrator.com/tag/puzzle/) - [PWSH](https://www.thelazyadministrator.com/tag/pwsh/) - [Puzzles](https://www.thelazyadministrator.com/tag/puzzles/) - [ARM](https://www.thelazyadministrator.com/tag/arm/) - [Bicep](https://www.thelazyadministrator.com/tag/bicep/) - [IaaC](https://www.thelazyadministrator.com/tag/iaac/) - [Syntax](https://www.thelazyadministrator.com/tag/syntax/) - [Yammer](https://www.thelazyadministrator.com/tag/yammer/) - [Spam](https://www.thelazyadministrator.com/tag/spam/) - [Phishing](https://www.thelazyadministrator.com/tag/phishing/) - [Offboarding](https://www.thelazyadministrator.com/tag/offboarding/) - [SDK](https://www.thelazyadministrator.com/tag/sdk/) - [Managed Identity](https://www.thelazyadministrator.com/tag/managed-identity/) - [MCAS](https://www.thelazyadministrator.com/tag/mcas/) - [Defender for Cloud Apps](https://www.thelazyadministrator.com/tag/defender-for-cloud-apps/) - [Conditional Access](https://www.thelazyadministrator.com/tag/conditional-access/) - [Cloud App Security](https://www.thelazyadministrator.com/tag/cloud-app-security/) - [Azure Active Directory](https://www.thelazyadministrator.com/tag/azure-active-directory/) - [Bug](https://www.thelazyadministrator.com/tag/bug/) - [Error](https://www.thelazyadministrator.com/tag/error/) - [Android](https://www.thelazyadministrator.com/tag/android/) - [Endpoint](https://www.thelazyadministrator.com/tag/endpoint/) - [Firefox](https://www.thelazyadministrator.com/tag/firefox/) - [MEM](https://www.thelazyadministrator.com/tag/mem/) - [Identity](https://www.thelazyadministrator.com/tag/identity/) - [Set-ADUser](https://www.thelazyadministrator.com/tag/set-aduser/) - [LAPS](https://www.thelazyadministrator.com/tag/laps/) - [Accounts](https://www.thelazyadministrator.com/tag/accounts/) - [Contacts](https://www.thelazyadministrator.com/tag/contacts/) - [AI](https://www.thelazyadministrator.com/tag/ai/) - [Entra](https://www.thelazyadministrator.com/tag/entra/) - [Copilot](https://www.thelazyadministrator.com/tag/copilot/) - [GitHub](https://www.thelazyadministrator.com/tag/github/) - [Zsh](https://www.thelazyadministrator.com/tag/zsh/) - [Azure DevOps](https://www.thelazyadministrator.com/tag/azure-devops/) - [Agile](https://www.thelazyadministrator.com/tag/agile/) - [Project Management](https://www.thelazyadministrator.com/tag/project-management/) - [Azure Functions](https://www.thelazyadministrator.com/tag/azure-functions/) - [OpenAI](https://www.thelazyadministrator.com/tag/openai/) - [Logic Apps](https://www.thelazyadministrator.com/tag/logic-apps/) - [Edge](https://www.thelazyadministrator.com/tag/edge/) - [Chrome](https://www.thelazyadministrator.com/tag/chrome/) - [PWA](https://www.thelazyadministrator.com/tag/pwa/) - [Static Site](https://www.thelazyadministrator.com/tag/static-site/) - [Web APp](https://www.thelazyadministrator.com/tag/web-app/) - [Git](https://www.thelazyadministrator.com/tag/git/) - [GraphQL](https://www.thelazyadministrator.com/tag/graphql/) - [Gitlab](https://www.thelazyadministrator.com/tag/gitlab/) - [Purview](https://www.thelazyadministrator.com/tag/purview/) - [Defender](https://www.thelazyadministrator.com/tag/defender/)