Configuring Microsoft 365 Group Privacy with PowerShell

Configuring Microsoft 365 Group Privacy with PowerShell


In the modern collaborative workspace, Microsoft 365 Groups play an integral role. They facilitate inter-departmental communications, project collaborations, and the seamless sharing of documents. However, as with all tools, their effective management is crucial, especially when it comes to data privacy and security.

The Challenge: Ensuring Group Privacy

A common challenge faced by many Microsoft 365 administrators is ensuring the right privacy settings for Microsoft 365 Groups. While creating groups, members might inadvertently leave them as ‘Public’, allowing any user within the organization to view the group’s content. This can pose a security risk, especially when these groups hold sensitive information.

So, the pertinent question arises: How can administrators efficiently change the visibility of these groups without navigating the maze of the Microsoft 365 admin center for each group individually?

PowerShell to the Rescue

PowerShell, a tool that every administrator should have in their arsenal, offers a solution. By utilizing specific cmdlets tailored for Microsoft 365, we can quickly and efficiently modify group settings en masse.

Here’s a simple yet powerful script to change the visibility of all ‘Public’ Microsoft 365 Groups to ‘Private’:

# Connect to Exchange Online
Connect-ExchangeOnline -UserPrincipalName <YourAdminUPN> -ShowProgress $true

# Retrieve all public Microsoft 365 Groups and change their visibility to private
$publicGroups = Get-UnifiedGroup -ResultSize Unlimited | Where-Object { $_.AccessType -eq "Public" }
foreach ($group in $publicGroups) {
    Set-UnifiedGroup -Identity $group.Identity -AccessType Private
    Write-Output "Updated group $($group.DisplayName) to private"

Breaking Down the Script

  1. Connect-ExchangeOnline: This cmdlet establishes a session with Exchange Online, a necessary step since Microsoft 365 Groups are mailbox-enabled objects in Exchange Online.
  2. Get-UnifiedGroup: This cmdlet fetches all Microsoft 365 Groups. The -ResultSize Unlimited parameter ensures we retrieve all groups without any default limitations.
  3. Where-Object: This filters out only the public groups from our fetched list.
  4. Set-UnifiedGroup: This cmdlet changes the visibility setting of each public group to private.


Data privacy and security are paramount, especially in today’s digital age. With tools like PowerShell and the right scripts in hand, Microsoft 365 administrators can ensure a more secure and streamlined collaborative environment. This particular script proves invaluable for organizations looking to bolster their data privacy practices without spending hours manually adjusting settings.

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *