Get SharePoint Local Server Admins

Script to list out the SharePoint local server administrators
  1. if ( (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue) -eq $null ) {  
  2.     Add-PSSnapin Microsoft.SharePoint.Powershell  
  3. }  
  4. $scriptBase = split-path $SCRIPT:MyInvocation.MyCommand.Path -parent  
  5. Set-Location $scriptBase  
  6. $global:timerServiceName = "SharePoint 2010 Timer"  
  7. $global:timerServiceInstanceName = "Microsoft SharePoint Foundation Timer"  
  8. # Get the local farm instance  
  9. [Microsoft.SharePoint.Administration.SPFarm]$farm = [Microsoft.SharePoint.Administration.SPFarm]::get_Local()  
  10.   
  11. Function GetServerAdministrators([Microsoft.SharePoint.Administration.SPFarm]$farm)  
  12. {  
  13.   
  14.  write-host ""  
  15.  write-host "Preparing to collect SP server administrator details" -fore magenta  
  16.   
  17.  $output = $scriptbase + "\" + "ServerAdminDetails.csv"  
  18.  "ServerName" + "," + "AdminMember"  | Out-File -Encoding Default -FilePath $Output;  
  19.   
  20.  foreach($server in $farm.Servers)  
  21.      {  
  22.   foreach($instance in $server.ServiceInstances)  
  23.           {  
  24.      
  25.                 if($instance.TypeName -eq $timerServiceInstanceName)  
  26.    {  
  27.                  [string]$serverName = $server.Name  
  28.     write-host "Collecting administrator details for the server " $servername -fore yellow  
  29.     $admins = invoke-command {net localgroup administrators | where {$_ -AND $_ -notmatch "command completed successfully"} | select -skip 4} -computer $serverName  
  30.     foreach($admin in $admins)  
  31.     {  
  32.      write-host $admin " is member of administrator group in server " $serverName -fore cyan  
  33.      $serverName + "," + $admin | Out-File -Encoding Default  -Append -FilePath $Output;  
  34.     }  
  35.     write-host "Administrator details for the server " $serverName " has been collected" -fore green  
  36.    }  
  37.   }  
  38.  }  
  39.  Write-host "Administrator details collected for all the SP servers in the farm" -fore green  
  40.   
  41. }  
  42.   
  43. GetServerAdministrators