How To Install & Work With Microsoft Graph

Microsoft Graph

Microsoft is retiring the Azure AD Graph endpoint by Dec 2022, it is high time that admins learn how to install & connect to Microsoft Graph PowerShell SDK and start to modify all the existing scripts with the new module. Out goes Get-AzureADUser and we need to get familiar with Get-MgUser.

The whole process starts with installing the Microsoft Graph PowerShell SDK on your machine. In this article, we will have a look at how to install the new SDK, connect to the Graph endpoint and get some output.

Why Microsoft Graph?

For once, because Microsoft says so! And they are pulling the plug on Azure AD & MSOL endpoints. Below are the main reasons why Microsoft moved to Graph API.

Graph API has a single endpoint (https://graph.microsoft.com) and we can connect to all the services in Microsoft 365 using that endpoint. Comparing that to the Azure AD & MSOL modules, you had to connect to various services one by one, say Exchange Online, SharePoint Online etc.

MS Graph will work with PowerShell, Power Automate, .NET etc & it is the ‘modern’ way to interact with Microsoft 365. The ability to set granular permissions is another big win.

Prerequisites for Graph SDK

It is recommended to have PowerShell 7 on the machine. Run the command below to install PS 7.

winget install --id Microsoft.PowerShell
Install PS 7 Winget Progress

You can confirm the version of the PowerShell by running $PSVersionTable

Check PS version

You also need to make sure that the PowerShell execution policy is set to RemoteSigned. The command below will achieve that.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Change PS execution policy

You don’t need the scope parameter if you have admin rights on the machine.

How To Install Microsoft Graph PowerShell SDK?

Installing the main SDK module of Graph will also install all 38 sub modules. It is recommended that you only install the necessary modules, unless you work in a small to medium organization and is responsible for all things in the Microsoft cloud platform. The Microsoft.Graph.Authentication module is mandatory if you choose to install sub modules individually.

Launch PowerShell (as an admin if you want to install for all users) or Windows terminal (Windows 11).

Run the command below to install the SDK in PowerShell Core or PowerShell, if you don’t have local admin rights on the machine.

Install-Module Microsoft.Graph -Scope CurrentUser

You can change the scope in the command above so that all users on the machine can use the modules. Run the command below if you have local admin rights.

Install-Module Microsoft.Graph -Scope AllUsers

Accept the installation from the untrusted repository by typing ‘A’ & press the enter key.

Install Microsoft Graph Module 1

It will take a few minutes for it to download all the modules.

You can run the command below if you want to verify the version of the SDK installed.

Get-InstalledModule Microsoft.Graph
Get installed version MS Graph

How To Connect To MS Graph API?

Connecting to Graph endpoint requires the API version you are trying to connect to (stable version or beta) and the required scope. The scope is the set of permissions that you will have in the session. For example, if you are trying to read the user information, you need the User.Read.All scope (permission).

If you want to connect to the beta endpoint (as you will have preview features, but not supported), run the command below.

Select-MgProfile -Name "Beta"

If you want to flip to the stable supported version, run

Select-MgProfile -Name "V1.0"
Selecting beta and stable profile

Now that we have picked the stable version, we need to define the scope. This depends on what we are trying to achieve. For example, If we are trying to get some information about the Azure AD groups (Get-MgGroup), we need to know what permissions are available. Running the command below lists the permission scopes.

Find-MgGraphCommand -command Get-MgGroup | Select -First 1 -ExpandProperty Permissions
Permission scopes Get MgGroup

So if you want to update a group, the scope we need is Group.ReadWrite.All, you get the idea.

The command we need to connect to the MS Graph API is Connect-MgGraph. If you want to read user data and read & write group information, you can define multiple scopes. Run the command below to achieve that.

Connect-MgGraph -Scopes "Group.ReadWrite.All", "User.Read.All"
Connect MGGraph Command

You will be asked to login if you don’t already have a session with M365. Some scopes will need you to consent on behalf of the organization if you are connecting for the first time.

User login prompt MS Graph

You can run a command like Get-MgGroup | select Id, GroupTypes to verify that everything is working as expected and that you have some output from your tenant. Yes, you can pipe the info like in PowerShell.

Get MgGroup to verify connectivity

Figuring Out the Graph Commands

It is a bit of a challenge to find the correct command when you start using a new API like Graph. This is where the good old Get-Command comes in. If you want to know the commands that are available under the Microsoft.Graph.Users module, run the command below.

Get-Command -Module Microsoft.Graph.Users
Get command for Graph Users module

The command below will give you a list of all cmdlets that you can use with Graph API. It will be a big list for sure, about 21,000+ at the time of writing.

Get-Command -Module Microsoft.Graph.*

Once you have finished with your work with Graph API, you can disconnect using the command below (you guessed it right)!.

Disconnect-MgGraph

If you manage multiple tenants and want to connect to the second tenant (after disconnecting from the first one), it is best to use the -TenantId parameter to avoid using the token cache from the previous session.

Connect-MgGraph -TenantId <tenantid>

In short, we have learned

  • how to install PowerShell 7 & MS Graph PowerShell SDK,
  • about API versions and how to find the scope,
  • connect to the Graph endpoint using scopes & API version,
  • how to find cmdlets available within a module and
  • to disconnect & connect to a different tenant.

Let me know if you have any questions in the comment below.

Other Popular Articles


How To Install Microsoft Graph Beta Module

Error – Select-MgProfile is not recognized as the name of a cmdlet, function or script file

Microsoft Graph

Build Microsoft Graph Scripts With Azure AD App – Detailed Guide

Microsoft Graph

How To Work With Microsoft Graph Explorer

Leave a Comment

Disable Windows Copilot Using Intune

Windows Copilot is Microsoft’s take on making life easier for Windows users using the power of AI. This article explains how to disable the feature using Intune, if your organization is not ready yet to walk into the AI world.

Disable Windows Copilot Using Intune

We need to create a Configuration Profile for Windows devices in the Intune portal to disable Windows Copilot. Below are the steps that we need to create the profile.

Launch the Intune Portal and login as a Global Admin or Intune Admin.

Navigate to Devices -> Windows -> Configuration Profiles.

Windows Configuration Profile Intune

Click on Create -> New Policy.

Select Windows 10 & later as the platform and Settings Catalog as the profile type & click on the Create button.

Settings Catalog Intune CoPilot

Give the policy a meaningful name & description and click Next.

Policy Name Disable CoPilot

Within the configuration settings, click on the Add Settings option.

Add Settings Disable CoPilot

Search for ‘copilot’, Windows AI will come up as the category. Click on Windows AI and the Turn off Copilot in Windows (User) setting will come up. Check the box and click Next.

Turn off CoPilot Setting Intune
Turn off CoPilot Setting Intune Summary 1

Specify scope tags if required and click Next.

Select tags CoPilot Intune

Select who this policy should apply to in the Assignments section. I have selected to add all users. If you want to test the setting, you can create a test group and select that group here.

Similarly, you can also exclude certain group from disabling AI (say IT team) if required.

Add all users disable copilot intune

A summary of selected settings will be displayed. Click on the Create button to setup the policy to disable Windows Copilot.

Create configuration policy disable CoPilot Intune 1

Wait for the replication to complete in the cloud backend and login to your machine. Your chatty Copilot should now be disabled.

Disable Windows Copilot On Windows 11 Pro

Follow the steps below to disable Copilot on a personal Windows 11 Pro machine (say your own laptop).

Search for ‘group’ in Windows 11 and click on Edit Group Policy option.

Group Policy Windows 11 Disable Copilot

Navigate to User Configuration -> Administrative Templates -> Windows Components -> Windows Copilot.

Windows Copilot GPO setting

Double click on Turn off Windows Copilot setting on the right pane.

Select Enabled and click OK.

Turn off copilot gpo Windows 11 Pro 1

Close the Group Policy Editor. This will disable Windows Copilot on a Windows 11 Pro machine.

Summary

We have learned to disable Windows Copilot using Intune and Group Policy on Windows 11 machines.

Please let me know if you have any questions in the comments section.

Promote Windows Server 2025 To Domain Controller

Domain controllers are the backbone of any Active Directory domains in the Microsoft world. Any Windows server can be promoted to be a domain controller. In this article, we will go through the steps of promoting a Windows 2025 Server to be a domain controller.

Windows Server 2025

The latest version of the server operating system has been named Windows Server 2025. You can start with a 2025 Server & create an AD domain or you can promote a member server that is already a part of a domain.

The Windows Server 2025 needs to be installed on a machine before it can be promoted to be a domain controller.

Promote Windows Server 2025 To Domain Controller

If you have been working with Windows servers long enough, everything starts with the Server Manager app. Promoting a server to a domain controller is no different.

Launch ‘Server Manager’ & click on Add roles and features.

Windows 2025 Server Manager

You land on the summary page that explains what is required to run this wizard successfully. Click Next.

Windows Server 2025 Add Remove Roles

Select Role-based or Feature-based installation and click Next.

Windows Server 2025 Role Based Install

Select the server that needs to be promoted and click Next.

Windows Server 2025 Destination Server

Select Active Directory Domain Services (second option) and click on Add Features.

Windows Server 2025 AD Domain Services

Go with the default options for features that need to be installed.

Windows Server 2025 AD Domain Services Features

A summary of AD DS pops up next, click next to continue.

Windows Server 2025 AD DS

Select Restart the server automatically if required and click Install.

Windows Server 2025 AD Restart Server

You get to keep an eye on the progress of the installation.

Windows Server 2025 AD Install Progress

Once the role has been installed, you will find an exclamation mark on the top right corner of the Server Manager. Click on that and select Promote this server to be a domain controller.

Windows Server 2025 AD Install Continue

You get an error straight away (which you have never seen before) – Error determining whether the target server is already a domain controller. Role change is in progress or this computer needs a restart.

Windows Server 2025 Domain Controller Setup Error

We never needed to restart the server after installing the role in the DC promotion process. Given that it is an insider build of Server 2025, I am hoping that this will get fixed before the public release.

Restart the server, launch Server Manager and click on the Promote this server to be a domain controller option again.

Windows Server 2025 AD Install Continue 1

I am setting up a brand new AD forest and hence I select the third option (Add a new forest) and enter my root domain name.

Windows Server 2025 Add a forest

Next window brings the option to set your forest & domain functional level and the DSRM password. In the insider build, it shows what looks like a variable (the Windows server version on which the you are working).

Windows Server 2025 Forest Functional Level

You can leave the default options in the DNS options wizard and click next.

Windows Server 2025 DNS Options

Enter the netbios name of the domain in the next window and click next.

Windows Server 2025 Netbios Domain Name

You can stick with the default paths for the AD database, log & sysvol folder or pick a location of your choice.

Windows Server 2025 AD Paths

Review the selections that you have made so far and click next.

Windows Server 2025 Options Review

Wait for the green check mark on the prerequisites page and click next.

Windows Server 2025 Pre reqs Check

Click Install in the final window & wait for the magic to happen. Once the machine gets restarted (which it will do automatically), you will have a brand new domain controller based on Windows Server 2025.

Windows Server 2025 AD Snap In

Summary

Promoting a Server 2025 to a domain controller follows pretty much the same steps as previous operating systems. The Insider build has few errors that needs to be fixed, but hey, it is an insider build!

Please let me know if you have any questions in the comments section.

Install Windows Server 2025 – Full Guide

Microsoft has released an insider preview of it’s next server operating system named Windows Server 2025. We will have a look at the installation steps involved in setting up a 2025 server.

Windows Server 2025

Microsoft has gone with the same look and feel of Windows 11 operating system in it’s current server operating system – Windows Server 2025. As the product is in insider preview, there might be slight changes before it hits the public shelves.

It is refreshing to see a ‘modern’ feel in the installation process of a server operating system. Gone are the days where the installation of a consumer based OS felt much better compared to it’s server counterpart.

Installing Windows Server 2025

Let’s take a look at the steps involved in setting up a Windows Server 2025 machine. First step is to download the ISO from the Windows Insider portal.

Next step is to boot the virtual / physical machine from the ISO which will kick off the installation of Server 2025.

First option to select is the language settings. Pick the one based which relates to you and click next.

Windows Server 2025 language settings

Select the keyboard settings in the next screen and click next.

Windows Server 2025 keyboard

You get the option to select whether you want to Install Windows Server or Repair the installation. The bottom left corner also has the option to go to the previous version of setup.

Windows Server 2025 setup option

You are asked to enter the product key, which is available in the Windows Insider portal.

Windows Server 2025 product key

Next option to choose is the type of image you want to install – Windows 2025 core or full blown desktop experience.

Windows Server 2025 Desktop

You need to agree to the licensing terms to move forward in the next step.

Windows Server 2025 Agreement License

Select the partition on which the server OS should be installed and click next. You also have the option to slice the partitions the way you see fit in the same screen.

Windows Server 2025 Disk Partitions

The Ready to Install window comes up, click the install button.

Windows Server 2025 Install 1

Installation of Server 2025 is underway and you get to see the progress.

Windows Server 2025 Install Progress

Once the installation is complete, you need to enter an administrator password of your choice to finalize the setup.

Windows Server 2025 Password

And there you go! You see a Windows 11 login screen staring at you ;-)

Windows Server 2025 Login Screen

After logging in, you get to set the options around sending diagnostic data to Microsoft, which I always set as ‘required only’.

Windows Server 2025 Diagnostic Data

The Windows Server 2025 desktop looks similar, doesn’t it? ;-)

Windows Server 2025 Desktop Feel scaled

Now that the server is up and running, you can promote it to be a domain controller.

Summary

The Windows Server 2025 has the same look and feel as a Windows 11 operating system. The installation options also provide that modern ‘feel’ and makes it a bit soothing to the eyes!

Please let me know if you have any questions in the comments section.