You might have encoutered one of these issues:


This means that sombody else has already opened this object and requested it for edit. But not only, this could also happen in cases when your CM console crashes, and you want to continue work on your object after you re-openend, but your lock is still active. Then the things might get annoying for you.

There are two ways to handle this: SQL and PowerShell

How to unlock configmgr object using SQL:

The main table that is concerned by the lock is the ‘SEDO_LockState’. If we take a look into the table, when something is beeing edited (read ‘locked’), you would see something simlar to this:


And to retrieve the one that currently actually locked you would use the following query

To get all the locks from a specefic user, you would use this query:

But what we are most interested in, is how to unlock a configmgr object, so let’s see how to that using SQL



How to unlock configmgr object using PowerShell?

Among all the PowerShell cmdlets that have been shipped with ConfigMgr 2012 sp1,  one of them was called “Unlock-CMObject”

It is pretty straight forward and easier to use then the SQL way. Basically, all that you need is the name of the object that is block and call the unlock-cmobject as followed:

Note: change the Get-Application command by the appropriate object you want to unlock.


How to unlock ConfigMgr Object using WMI and PowerShell?

To make this article complete, we needed to add WMI. In order to work on the

We can use the ReleaseAllLocks() method from the SMS_ObjectLock class.

I’ll point you to this function written by my fellow MVP Kaido Järvens