Delete all Microsoft 365 groups and SharePoint sites
Summary
Another example how you can delete all Microsoft 365 Groups and SharePoint Online sites in your development environment.
Warning
Please be aware this script contains a command that will remove or delete an artifact, ensure you test and understand the implications of running the script.
$AdminCenterURL="https://contoso-admin.sharepoint.com/"
#Connect to SharePoint admin url using PnPOnline to use PnP cmdlets to delete m365 groups and SharePoint sites
Connect-PnPOnline -Url $AdminCenterURL -Interactive
#retrieve all m365 group connected ( template "GROUP#0" sites to be deleted) sites beginning with https://contoso.sharepoint.com/sites/D-Test
$sites = Get-PnPTenantSite -Filter {Url -like https://contoso.sharepoint.com/sites/D-Test} -Template 'GROUP#0'
#displaying the sites returned to be deleted
$sites | Format-Table Url, Template , GroupId
Read-Host -Prompt "Press Enter to start deleting m365 groups and sites (CTRL + C to exit)"
$sites | ForEach-Object{
Remove-PnPMicrosoft365Group -Identity $_.GroupId
#allow time for m365 group to be deleted
Start-Sleep -Seconds 60
#delete the SharePoint site after the m365 group is deleted
Remove-PnPTenantSite -Url $_.Url -Force -SkipRecycleBin
#permanently remove the m365 group
Remove-PnPDeletedMicrosoft365Group -Identity $_.GroupId
#permanently delete the site and to allow a site to be created with the url of the site just deleted , i.e. to avoid message "This site address is available with modification"
Remove-PnPTenantDeletedSite -Identity $_.Url -Force
}
Check out the PnP PowerShell to learn more at: https://aka.ms/pnp/powershell
Contributors
Author(s) |
---|
Reshmee Auckloo |
Disclaimer
THESE SAMPLES ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.