I'm not sure if this task is desired or even possible, but...

In my SharePoint Foundation 2010 site, I have a whole slew of lists in sites and subsites that have been built on a particular template. Well, now directives have come down to alter the lists according to a new spec (new template). So basically, the template has changed, and needs to retroactively be applied to the lists that have already been created (and possibly updated). Is this possible without going into every single list (thousands of them) and manually updating them? I don't even see a way to alter anything but the metadata on a template. I'm open to doing this with a script (although I'm also having a hard time figuring out how to add modules or whatever to a SharePoint site)

  • Note: If anyone plans on down voting this question, please have the common decency to explain WHY you're down voting it or offer some kind of an answer. Don't just down vote because you think it's a stupid question and then move on. People use this site for help and guidance, and down voting without rhyme or reason offers neither. – Christine Feb 12 '16 at 19:16

I am assuming that you are talking about a list template that was created from a SharePoint list thru the list settings UI, not a definition created in Visual Studio and made available thru a feature.

As far as I know, SharePoint does not store the information about what custom template it used for creating a list after its initial creation. With no information that could be used to link the list to the template, any hope to cascade update the list automatically is lost.

Afaik, usually there are two proposed options for handling such situations:

  • update the lists manually - this should revolve around creating a script that performs the changes on each list you know that should be updated,
  • recreate the lists with the new template and then use a content migration tool to migrate the items. This could require less work but may not be applicable if there were heavy changes to the template structure.
  • I have been able to find a few articles telling me that, through PowerShell you CAN actually loop through existing lists that were created with a template... even though there's nothing that binds them in the UI. Also, I've since been informed that ContentTypes are better than using Templates, because you can centrally manage a ContentType. – Christine Feb 12 '16 at 20:27
  • I will check, but I think that even PowerShell should just give you the info about the server template the custom one was created from (example: basic list, document library, survey etc..). Are you sure they weren't talking about that? Anyway give me so time to confirm this. – SPArchaeologist Feb 12 '16 at 20:37

This isn't a complete answer, but since this morning I've found a few nuggets of information that might help anyone facing this issue in the future:

For one, once a list is created with a template, it's on its own. So, one suggestion I've found is that, in the future, you should use Content Types instead of List Templates. Content Types can be centrally managed while List Templates are just for the purposes of defining a list when it's created.

BUT!!! Somewhere in the depths of SharePoint hell, you CAN figure out what lists were created with a given template. While you can't update a list template and retroactively apply it, if you can generate the change you want to make with a script (in PowerShell apparently), you should be able to run a foreach-style update on all lists that were created with that template.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.