views:

53

answers:

2

How can I programmatically determine sites of a SharePoint 2007 installation that use custom code (DLLs, etc)? Or put another way, how can I identify all sites that are not your "standard" document collections, lists, calendars, etc?

Basically, I'm interested in identifying sites that require source code. I don't want to look at the GAC or something and get a list of DLLs, as there could be stale files in there. I want a list of (sites, URLs, whatever) I can navigate to in order to see pages are actually using things, etc.

My company has a bad history of contractors and employees who didn't use source control. I need to get a handle on just how bad our situation is...

+1  A: 

You could use the free Process Explorer (now owned by Ms, was SysInternals) and look the processes (w3wp) and the DLL's it's got open).

Colin
Matt
+1  A: 

Hmmm, interesting problem.

I think you could use a little bit of PowerShell script to:

  1. Iterate the web apps in a farm
  2. check the root site collection in each web app and see if it's using a custom template
  3. look for custom site collection features that are active in each site collection of each web app
  4. look for active custom site features in each site collection
  5. look at the master page and home page (maybe others) in each site and see if they are customised
  6. check the web.config for each web app custom safe controls

There's a lot more stuff too I'm sure. There are soo many ways to customise sharepoint this could take a while. If you just want to know if a site is non standard then that's probably easy-ish. If you want an exhaustive list of all the customisations then that would be very hard.

HTH

Cheers

Jonesie
While it's going to take me a little bit to implement your suggestions, I like them and also like the affirmation this is an overall hard problem. That's what I was told internally; good to hear outsiders confirm. I'll get started on your suggestions next week tho.
Matt