Managing UCM users en masse

One of the handiest tools that I use with UCM is the Mass Metadata Update Excel spreadsheet. It lets you run searches against UCM and update content metadata in an Excel spreadsheet through web services. It was first created by Bex and then later enhanced by Jason Stortz.

For demonstration purposes, it's a great way to show how open and easy it is to do integrations with UCM. Just a few lines of VB script in an Excel macro and you've got an incredibly useful client tool.

In thinking about other tasks that you may need to do in bulk in UCM besides dealing with content is managing users. Even with external user stores, information is captured and stored in UCM. So one of the first things I did with the spreadsheet was to modify it to add and delete users. Then I made further changes to be able to get a list of the users and to do edits on the users.

Someone recently asked me the best way to mass delete users that had been cached their from their old LDAP schema. In the User Admin applet, it doesn't let you multi-select so that becomes a very slow process. One alternative is to get the DBA involved and deal with the data directly in the database tables which isn't ideal either.

But with this spreadsheet, you can quickly add, edit, or delete the users in the system. When you open this in Excel, be sure you have your security set to allow macros.


When you first try to execute one of the commands, it will prompt you for your administrator username and password. Be warned though...once you click the confirmation dialog, it is set to perform that action. I'd recommend backing up the system before making any large-scale changes.

All of the code is right in the macros and can easily be modified to change the behavior such as adding more user metadata fields or filtering on certain user types.

You can download a copy of the

spreadsheet here
. This should be treated just like a sample component which is provided as-is with no support or warranties.


Hi, Kyle -- This is *huge*: I've often wondered how best to undo checkouts en masse, or to perform other tasks requiring a change of service. Comparing your example to the original will be very informative & helpful. Our editorial photography archivists often need to modify metadata for groups of images keyed by "job number", so I had modified the script as well: I moved the search expression to the second tab & provided a field on the first tab in which they can provide the needed job number. Works like a champ!

Posted by Don Glascock on February 26, 2010 at 01:44 PM CST #

I wish I could use such a fun tool. Unfortunately, one of my organizations biggest maintenance tasks is user maintenance. We use the Active Directory LDAP and the AD administrators basically have a full time job updating our massive security model and assigning the user permissions. We are in the process of developing a custom web tool to hopefully give users the power to process their own user requests, but it has to have a clear separation between other UCM projects and delegates can’t see or change user data outside of their project. If you know of a tool that might meet similar requirements please do share. I’m curious how other enterprise organizations maintain their external LDAP users.

Posted by Justin on March 03, 2010 at 02:20 AM CST #

Hey Justin, Check out this solution from Fishbowl Solutions on advanced security integrations with UCM and LDAP, AD, and SSO. This might have the flexibility you need.

Posted by kyle.hatlestad on March 07, 2010 at 11:58 PM CST #

thanks for the pointer Kyle, I was going to mention Advanced User Security Mapping but you got there first.

Posted by billy on March 08, 2010 at 01:20 PM CST #

Hi Kyle, In a typical migration project I think creation of Metadata and content types is a task in itselves. If it is a multi site websites none of the departments are ready to give up there metadata. and we end up creating big list of metadata regards, deepak

Posted by Deepak on October 25, 2010 at 12:50 AM CDT #

Hi Kyle, I was wondering if you know how to download the users AttributeInfo when you Get Users ? I think this would be a very useful addition to the tool. Off the top of my head I guess I need to do something like set the UserAttribInfo result set after the following code With ThisWorkbook.Sheets("addUsers") .Cells(displayRow, 2).value = xGet(user, "dName") .Cells(displayRow, 3).value = xGet(user, "dFullName") .Cells(displayRow, 4).value = "" .Cells(displayRow, 5).value = xGet(user, "dEmail") Then add AttributeInfo to .Cells(displayRow, 6)value ? But at the moment I am struggling with trying to get this to work. So any assistance you can give would be appreciated. Regards, Tom Rowe.

Posted by Tom Rowe on May 19, 2011 at 04:04 AM CDT #

Hey Tom, I think there is some confusion over what is in AttributeInfo. When you run the GET_USERS service, you only get the AttributeInfo result set for the user running the service. You don't get the values for each of the users. In order to get that information from a particular user, you must run the QUERY_USER_ATTRIBUTES service and pass in 'dName' of the user. That will return the AttributeInfo result set for that user (along with the values for the user running the service too). So you might need to do a 2-part process. Once to get the users. Then a second action to run this service on each user row to populate that 6th column for their attributes. Hope that gets you in the right direction. Thanks, Kyle

Posted by Kyle Hatlestad on May 23, 2011 at 02:04 AM CDT #

Hullo Kyle. Are you able to advise if a similar tool is available to do mass updates of URM's PCM records metadata?
Regards - Carol Prior

Posted by Carol Prior on June 23, 2011 at 01:02 PM CDT #

Hey Carol,

I'm afraid I don't have one specifically for physical records, but you could probably take the one that I link to on Jason Stortz's website ( and modify that one to handle PCM items.


Posted by Kyle Hatlestad on July 07, 2011 at 04:24 AM CDT #

Hi Kyle,

This is an excellent tool! Unfortunately, it does not seem to work with 11g. I use the server_url as http://localhost:16200/cs/idcplg and I get an error - "Cannot Parse the SOAP Response". Anyone able to get this to work with 11g?


Posted by Ron on August 26, 2011 at 05:06 AM CDT #

Hi all,

I am facing the same issue as Ron. I am trying this spreadseet with 11g and I get the error:
"Cannot Parse the SOAP Response"
Anyone knows about an 11g copy?

Thanks in advance,

Posted by Javier on February 19, 2013 at 02:31 AM CST #

Hello Javier & Ron,

To get this to work in 11g, you'll want to access the server through the '_dav' relative path instead. So your url will look like:



Posted by Kyle Hatlestad on February 19, 2013 at 03:48 PM CST #

Thanks you very much Kyle, that worked for me!


Posted by Javier on February 20, 2013 at 01:12 AM CST #

Post a Comment:
  • HTML Syntax: NOT allowed

Kyle Hatlestad is a Solution Architect in the WebCenter Architecture group (A-Team) who works with WebCenter Content and other products in the WebCenter & Fusion Middleware portfolios. The WebCenter A-Team blog can be found at: ateam_webcenter/


« July 2016