Delete All Calendar Entries In An Exchange 2010 Mailbox

MS Exchange

A question came via email asking to help with deleting all calendar entries in an Exchange 2010 mailbox. Let’s find out how to do it.

The calendar in question had thousands of entries and hence the exchange admin wanted to clear it all using PowerShell. A one-liner will do the job, provided that you know how to filter the calendar entries alone in a mailbox ;)

This question came in response to my article about how to delete all items in the recoverable items folder in an Exchange 2010 mailbox. We will use the same cmdlet along with an advanced query syntax to filter only the calendar entries.

The command to run is as follows.

Search-Mailbox –identity username –SearchQuery kind:meetings –DeleteContent

You can get an estimate about the number of entries and size that will be freed up after deletion by running

Search-Mailbox –identity username –SearchQuery kind:meetings –EstimateResultOnly

Estimate meetings in a mailbox

Similarly, you can delete contacts, notes, tasks, im & emails by changing the search query.

Search-Mailbox –identity username –SearchQuery kind:contacts –DeleteContent

Search-Mailbox –identity username –SearchQuery kind:notes –DeleteContent

Search-Mailbox –identity username –SearchQuery kind:tasks –DeleteContent

Search-Mailbox –identity username –SearchQuery kind:im –DeleteContent

Search-Mailbox –identity username –SearchQuery kind:email –DeleteContent

Estimate im in a mailbox

Always use the EstimateResultOnly parameter first, before deleting the content. Just in case your query is not right ;)

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

How To Delete Contents In Recoverable Items Folder

  1. Hello,
    How can I delete one meeting event in share calendar in specific time and date?
    I run

    Remove-CalendarEvents -Identity “1017/1018 – Saint George (20 Seats)” -CancelOrganizedMeetings -QueryStartDate “07/28/2020 1:00 PM”

    But it didn’t accept it. I ran it in the my exchange server 2016.
    thank you

    Reply
  2. -DeleteContent parameter is not working or even avialable in the latest RU for Exchange 2010, is there any work around? I have a user with over 15,000 calendar items I wish to remove. Help!!!

    Reply
  3. Hi,

    Is this command possible for a group?
    everytime I receive an error that the groupname couldn’t be found on a DC. The group are on the DC’s.
    Search-Mailbox –identity username –SearchQuery Subject:”holidays” –DeleteContent

    Regards Wouter

    Reply
  4. Hi,

    this command delete a holiday for 1 user.
    How can I do it for all users? is it possible by user group?

    Search-Mailbox -identity ‘user’ -SearchQuery Subject:”holidayname” -DeleteContent

    Regard Wouter

    Reply
  5. Rajith, I have been trying to use Search-Mailbox –identity username –SearchQuery kind:contacts –DeleteContent to delete all contacts from a mailbox that has 606,325 contacts (duplicates)

    When I run the command I get the error ” A positional parameter cannot be found that accepts argument ‘-DeleteContent'”

    I have also run the command search-mailbox -identity alias -searchquery kind:contacts -targetmailbox myaddress -targetfolder inbox -logonly -loglevel full to see what would be found by the search query.

    I get the following error message from EMS “The search on mailbox CN=users name,OU=Users,DC=Mydomain did not complete because the search folder timed out.”
    The log also comes to my inbox as failed with no items found.

    could this be failing because of the large amount of contacts or am I doing something wrong?

    Reply
  6. Great! Thanks for this Rajith, it’s what I’ve been looking for. Can you tell me, are you able to modify the script so it only deletes Calendar entries older than 2 years say?

    Reply
    • Hi SJ,

      I am not in front of an Exchange server now, but you should be able to give a date range in the “Search Query”.

      Reply
      • Hi Rajith,

        Thank you for the replay, I appreciate your time. I must have tried a hundred combinations of this, with limited success.

        The following works sometimes but it wipes everything, the range seems to get ignored:

        [PS] C:\>Search-Mailbox -Identity e10test1 -SearchQuery “kind:meetings AND Received:> $(’12/09/2013 00:00:00′) AND Received: < $('20/09/2013 23:59:59')" -DeleteContent -force

        I tried the following but I get positional parameter errors:

        [DateTime]
        $DT = (Get-Date).AddDays(-30).ToString("d")
        Search-Mailbox e10test1 –SearchQuery kind:meetings, received:< $DT –DeleteContent -force

        Note: I use the dd/mm/yyyy format for Australia.

        Any advise would be welcome.

        Cheers!

        SJ

        Reply
          • Sure.
            For this one I’ve created a ps1 file and pasted:
            [DateTime]
            $DT = (Get-Date).AddDays(-30).ToString(“d”)
            Get-Mailbox e10test1 –SearchQuery “kind:meetings, received:.\caldelete2.ps1

            IsPublic IsSerial Name BaseType
            ——– ——– —- ——–
            True True DateTime System.ValueType
            A positional parameter cannot be found that accepts argument ‘-SearchQuery’.
            + CategoryInfo : InvalidArgument: (:) [Get-Mailbox], ParameterBindingException
            + FullyQualifiedErrorId : PositionalParameterNotFound,Get-Mailbox

            for this one:
            PS] C:\>Search-Mailbox -Identity e10test1 -SearchQuery “kind:meetings AND Received:> $(’12/09/2013 00:00:00′) AND Received: >

            This second one I’d prefer to get running so that I may specify a date range.

            Note: running exchange 2010 SP2 RU6

            Much appreciated!

            SJ

            Reply

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.