This application was created when I needed to get information for what Site collections a user had access to across a SharePoint farm. The application iterates over each site collection and then each site in the site collection.
Then it retrieves all explicit users as well as all SharePoint groups. If a active directory group is found it iterates the group. A limit is set to 1000 users per AD group. If the group contains more groups it will iterate those as well. Depth limit is 10.
This application requires that you have access to a SQL server since it stores the information it collects in a database.
As the application iterates through all the site-collections and sites it also collects information about each site such as size, template used, site owner and secondary owner.
If the application encounters an error it save the information about in witch site it encountered the error as well as the error description.
Current issues: The application sometimes fails to collect user membership information from a site.