PowerShell : List All the users for a Site Collection

  1. if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) {  
  2.     Add-PSSnapin "Microsoft.SharePoint.PowerShell"  
  3. }  
  4. param  
  5. (  
  6.     [parameter(Mandatory=$false)][string]$RootSiteUrl = "<Your Site Collection URL goes here>"  
  7. )  
  8.  
  9.  
  10. # Array to hold the user collection   
  11. $userCollection = @()  
  12.   
  13. $users = Get-SPUser -Web $RootSiteUrl -Limit ALL  
  14. foreach ($domainUser in $users)  
  15. {  
  16.     # Get Domain from user login name  
  17.     $domainUserSTR = $domainUser.Userlogin  
  18.     $domain = $domainUserSTR.Split("\")[0]  
  19.     $ispipe = $domain.IndexOf("|")  
  20.     if ($ispipe -ne -1)  
  21.     {  
  22.         $domain = $domain.split("|")[1]  
  23.     }  
  24.   
  25.     $user = New-Object System.Object  
  26.     $user | Add-Member -MemberType NoteProperty -Name "Domain" -Value $domain  
  27.         $user | Add-Member -MemberType NoteProperty -Name "UserLogin" -Value $domainUser.UserLogin    
  28.     $user | Add-Member -MemberType NoteProperty -Name "DisplayName" -Value $domainUser.DisplayName  
  29.       
  30.     $userCollection  += $user  
  31.           
  32.     Write-Host $user.UserLogin  
  33. }  
  34.   
  35. $userCollection | Export-CSV -Path "C:\UserLists.csv" -NoTypeInformation  
  36. Write-Host "Finished."