Purge Disconnected Or Soft-Deleted Mailboxes Using Remove-StoreMailbox In Exchange 2010 SP1…

MS Exchange

Purging disconnected mailboxes isn’t that straightforward in Exchange 2007 & 2010. You have to run multiple commands to purge the disconnected mailboxes, read more here. The option to remove disconnected mailboxes is still not available in 2010 SP1 Console.

Things have changed slightly in 2010 SP1, atleast in the Exchange Shell world. A new command “Remove-StoreMailbox” has been introduced to purge disconnected or soft-deleted mailboxes (new in 2010 SP1).

Info – When mailboxes are moved from a 2010 SP1 database to any other database, Exchange doesn’t fully delete the mailbox from the source database immediately upon completion of the move. Instead, the mailbox in the source mailbox database is switched to a “soft-deleted” state, known as soft-deleted mailboxes.

Let me explain the command based on my environment. I am disabling the mailbox of Chakka Rajith.

Disable Chakka Mailbox

The mailbox goes into a disconnected state and is visible in “Disconnected Mailboxes” node in the console.

Disconnected mailboxes

As is the case in Exchange 2007 & 2010 RTM, there is no button to remove the disconnected mailboxes in the 2010 SP1 console. We can use the “Remove-StoreMailbox” command to remove it in 2010 SP1. To remove Chakka’s mailbox permanently, I ran the following command

Remove-StoreMailbox –database “DB2” –identity “Chakka Rajith” –MailboxState Disabled

One thing to note is that that “database” parameter is required.

Remove chakka mailbox

Once the command was run, I had to run Get-MailboxDatabase | Clean-MailboxDatabase to refresh my console view. And for sure, the mailbox got deleted permanently.

Disconnected mailboxes

If you want to remove all disconnected mailboxes from a database, run the following command

Get-MailboxStatistics –Database “dbname” | Where-Object {$_.DisconnectReason –eq “Disabled”} | ForEach {Remove-StoreMailbox –Database $_.database –identity $_.mailboxguid –MailboxState Disabled

If you want to remove all soft-deleted mailboxes from a database, run the following command

Get-MailboxStatistics –Database “dbname” | Where-Object {$_.DisconnectReason –eq “Softdeleted”} | ForEach {Remove-StoreMailbox –Database $_.database –identity $_.mailboxguid –MailboxState Softdeleted

We can purge disconnected mailboxes using a one-liner in 2010 SP1. That’s an improvement!

Other Popular Articles

MS Exchange

Scripting Agent Initialization Failed: “File is not found” Error During Exchange 2016 Setup

MS Exchange

EAC Access While Co-Existing Exchange 2013 With 2010

MS Exchange

Delete All Calendar Entries In An Exchange 2010 Mailbox

  1. Hi, I have one mailbox neither disabled nor soft-deleted, the AD user does not exist and the mailbox can only be seen in powershell but not in EMC. It is not possible to remove it. I am getting crazy

  2. Exchange 2010 SP3 RU7. Ran commands and they seem to run, but the result is just “>>” in the command window. I had about 10 soft deleted mailboxes after moving from 1 database to another on the same server. Do I need to develop some patience or what? Refreshing with cleandatabase command on the >> doesn’t change anything

  3. I followed your instructions and everything went smoothly. However, after I ran the “Get-MailboxDatabase | Clean-MailboxDatabase” I did not see an increase in size on the drive the Mailstore resides on. Why would that be?

  4. I have moved some user’s online archives to another database but still these users online archive are shown in disconnected state mapped with first database, however users can access online archive moved to another database no issues .

    but why this message appears in disconnected state .
    do I need to clean this primary database so that users must not shown here .

    what is the syntax commands ….

  5. Good day sir,

    I have this problem after when our Active directory crashed and we need to raise a fresh AD to enable user to use exchange to read mails.

    Below is the error……

    Microsoft Exchange Error
    Action ‘Remove’ could not be performed on object ‘user name’.

    User Name
    The operation couldn’t be performed because object ‘example.com/OU/User Name’ couldn’t be found on system name.example.com’.
    Please what could I do to solve this problem ?


  6. Hi Rajith,
    i disable one user, and its purged after rentention period….
    Is there anyway to find the database name for one mailbox after its purged ??

  7. Any thoughts on stuck Disconnected mailbox? Can’t get rid of it for the life of me. One out of 200 is stuck. Can see the mailbox GUID and the Name. But every time I try to remove, stated that particular identity doesn’t exist in the particular database. It does, MMC see as disconnected and script shows up as well? Can get rid of.. Help?

    • Is this 2010?

      Run Get-MailboxDatabase | Clean-MailboxDatabase and see whether Exchange refreshes the mailboxes.

  8. Hello,

    Here my on line script, which i use when i moved out all Databases.

    $Mailboxes = Get-MailboxStatistics -Database Database01 | where {$_.DisconnectReason -eq “SoftDeleted”};$count = $Mailboxes.count; $i=0 ; $Mailboxes | foreach {$i+=1;$per = $i / $count * 100; write-progress -activity ” in Progress” -status “Complete: $i ($per %)” -PercentComplete $per;Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted -Confirm:$false}

    its with Progessbar. ;-)


  9. If you had the same issue I had after the local move in Exchange 2010 SP1 and it is not a Disabled mailbox below is the command…

    [PS] C:\Windows\system32>Remove-StoreMailbox -database “Administrators”
    -identity “Alert” -MailboxState SoftDeleted

    Are you sure you want to perform this action?
    Removing mailbox “Alert” on database “Administrators”.
    [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is “Y”): y

    Now just right click on the the “Disconected Mailbox” under the “Recipiant Configuration” and choose “Refresh” and poof they are now gone.

  10. Proper way of deleting/purging disconnected mailboxes on Exchange SP1.

    #Update the databases to show all disconnected mailboxes

    Get-MailboxDatabase | Clean-MailboxDatabase

    #List all disconnected mailboxes in a database and display DisconnectReason if its SoftDeleted or Disabled

    Get-MailboxStatistics -Database "Database-01" | Where-Object {$_.DisconnectDate -Notlike $NULL} | Format-Table DisplayName, DisconnectDate, MailboxGuid, DisconnectReason –Wrap

    #Remove all SoftDeleted disconnected mailboxes from a Database

    $Mailboxes = Get-MailboxStatistics -Database "Database-01" | where {$_.DisconnectReason -eq “SoftDeleted”}
    $Mailboxes | foreach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState SoftDeleted}

    #Remove all Disabled disconnected mailboxes from a Database

    $Mailboxes = Get-MailboxStatistics –Database “Database-01” | Where-Object {$_.DisconnectReason –eq “Disabled”}
    $Mailboxes | ForEach {Remove-StoreMailbox -Database $_.database -Identity $_.mailboxguid -MailboxState Disabled}

  11. Thnx Rahith for your feedback,

    Above command not working in Exchange 2010 Sp1
    but i have deleted all the disconnected mailbox.

    i did some changes in DB settings & run mentioned command in win shell.

    clean-mailbox -identity "DBNAME"

    Please update full command in a single line


  12. Thnx for your post.

    But i have a problem while purge disconnected mailbox on exhcnage 2010 SP1

    getting mentioned error on power shell:-

    [PS] C:Windowssystem32>Get-DisconnectedMailbox "LOGS" | Remove-DisconnectedMailbox -Confirm:$false
    The term 'Get-DisconnectedMailbox' is not recognized as the name of a cmdlet, function, script file, or operable
    m. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
    At line:1 char:24
    + Get-DisconnectedMailbox <<<< "LOGS" | Remove-DisconnectedMailbox -Confirm:$false
    + CategoryInfo : ObjectNotFound: (Get-DisconnectedMailbox:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException


  13. I tried to run your piped commands to remove all disconnected mailboxes, but I received the following error:

    Pipeline not executed because a pipeline is already executing. Pipelines cannot be executed concurrently.

    I am running Exchange 2010 SP1 with Rollup 2. Any thoughts?


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.


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


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.


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.