Hi,
Please try the demo below which is created based on Somnaths version:
function GetSPAllSPUsers($SiteCollectionURL,$SPListName)
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
$site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL)
$web = $site.openweb()
$list = $web.Lists[$SPListName]
$siteCollUsers = $web.SiteUsers
$collection = @()
foreach($user in $siteCollUsers)
{
Write-Host " ------------------------------------- "
Write-Host "Site Collection URL:", $SiteCollectionURL
if($list.DoesUserHavePermissions([Microsoft.SharePoint.SPBasePermissions]::ViewListItems,$user) -eq $true)
{
Write-Host "User : ", $user.LoginName
Write-Host "Assigned Permissions : ", $list.GetUserEffectivePermissions($user.LoginName)
$collection += $user
}
Write-Host " ------------------------------------- "
}
$web.Dispose()
$site.Dispose()
$collection | Export-Csv C:\Users1.csv -NoTypeInformation
}
GetSPAllSPUsers "http://sp" "List1"
Thanks
Patrick Liang