Categories: EnglishWindows Server

Clean-up MIM History in PowerShell

By default, you can see status of previous Management Agents executions in the History tab in Synchronization Service Manager. But, if you execute some Managent Agents very often it will necessarily increase the amount of logs that will be kept by MIM.

To clear and clean-up MIM history automatically in PowerShell, you can use the following function:

function CleanUpMimHistory ()
{
 $computerName = "."
 $MIMHistory = Get-Wmiobject -Class 'MIIS_RunHistory' -namespace “root\MicrosoftIdentityIntegrationServer”
 $MIMServer = Get-Wmiobject -Class "MIIS_Server" -Namespace "root\MicrosoftIdentityIntegrationServer" -ComputerName $computerName -ErrorAction SilentlyContinue

 # I configured the number of days in a separated XML file but for the example we will set up in the function
 $daysBeforeHistoryPurge = 15 #$XmlDocument.MIM.'global-settings'.daysBeforeHistoryPurge 

 $endingBefore = [System.DateTime]::UtcNow.AddDays(-$daysBeforeHistoryPurge).ToString("yyyy-MM-dd HH:mm:ss.fff")

 # Clear MA runs History
 try
 {
 Write-Host ("[DEBUG] - Clearing MIM run history older than " + $daysBeforeHistoryPurge + " days")
 $clearRunHistory = $MIMServer.ClearRuns($endingBefore) # Purging
 Write-Host ("[DEBUG] - Status of the clearing operation : " + $clearRunHistory.ReturnValue)
 }
 catch
 {
 # Problem : displaying the Exception and Breaking the execution if needed
 Write-Host $($_.Exception.Message)
 Write-Host ("[ERROR] - Problem during the clear of the MIM runs history")
 Break
 }
}

In the below example, I normally set up the number of days for which I will keep the logs in a dedicated XML files that containing all my MIM configuration depending on my Management Agents. But this is only for my configuration, so for the example I have set up the number of days directly in the function (up to you to change and adapt according to your needs).

After a short moment, you will notice the following in the PowerShell output:

The MIM history has been cleaned ! 🙂

To go further, it’s now up to you to automatically call this script on regularly basis (with Task Scheduler for example).

To clear thanks to the GUI, follow this link.

Available to download :

Share
Published by
thibault

Recent Posts

Cloudflare Bloque les Robots d’Exploration IA : un modèle Pay per Crawl révolutionnaire

Cloudflare Bloque les Robots d’Exploration IA : Un Modèle Pay per Crawl Révolutionnaire Cloudflare bloque…

5 jours ago

Let’s Encrypt : Fin des emails d’expiration des certificats pour réduire les coûts et améliorer la confidentialité

Let’s Encrypt : Fin des emails d’expiration des certificats pour réduire les coûts et améliorer…

6 jours ago

FaceTime sous iOS 26 : Interruption automatique en cas de nudité

FaceTime sous iOS 26 : Interruption automatique en cas de nudité FaceTime, l'application d'appel vidéo…

1 semaine ago

Où placer un kit plug and play pour une production solaire optimale ?

Le lieu où installer un kit plug and play est essentiel pour garantir une production…

2 semaines ago

Monocristallin ou polycristallin : quel type de panneau solaire choisir ?

Vous souhaitez installer de panneaux solaires, mais vous hésitez entre le monocristallin et le polycristallin…

2 semaines ago

Adieu à l’Écran Bleu : Microsoft Réinvente l’Expérience Utilisateur après 40 Ans

Adieu à l'Écran Bleu : Microsoft Réinvente l'Expérience Utilisateur après 40 Ans L'écran bleu, symbole…

2 semaines ago