I have seen people trying to find out a way to enlist all site administrators of all subsites in their environment.
There is no out of box solution to achieve this. This is a very easy task to be done via object model of sharepoint.

I am sharing my code of a console application that will do the same. This just needs to be executed and no inputs are required to be provided:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace YourNameSpace
{
    class Yourclassname
    {
        static void Main(string[] args)
        {
            SPFarm farm = SPFarm.Local;
            SPWebService webService = farm.Services.GetValue<SPWebService>("");
            foreach (SPWebApplication webApplication in webService.WebApplications)
            {
                foreach (SPSite site in webApplication.Sites)
                {
                    using (site)
                    
                    {
                        foreach (SPWeb web in site.AllWebs)
                        {
                            SPUserCollection webAdministrators = web.SiteAdministrators;
                            Console.WriteLine("Now processing the site named " + web.Title + " at the URL " + web.Url);
                            foreach (SPUser user in webAdministrators)
                            {
                                Console.WriteLine(user.LoginName + "\n");
                            }
 
                        }
                    }
                }
            }
            Console.ReadLine();
 
 
        }
    }