First go to server roles -> Click on Features -> Click on add features -> Select windows powershell integrated scripting environment ISE and install it.
Go to Run -> powershell ise
In the last pane(ex: PS....) will come execute below command :
Set-Execution Policy remotesigned
In the first pane copy script as per your requirements and finally copy function calls - if first code executing run first command and mention your URL in http://sp2013 location.
If it is second script then enter run second
Attached script will be used to fetch list of all users on SharePoint site and also on any specific list using PowerShell script. Script consits of two functions
GetSPWebUsers
Using this, you can get list of all site users, it will take single parameter (i.e site URL).
PowerShell
function GetSPWebUsers($SiteCollectionURL)
{
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint") > $null
$site = new-object Microsoft.SharePoint.SPSite($SiteCollectionURL)
$web = $site.openweb()
$siteUsers = $web.SiteUsers
foreach($user in $siteUsers)
{
Write-Host " ------------------------------------- "
Write-Host "Site Collection URL:", $SiteCollectionURL
if($user.IsSiteAdmin -eq $true)
{
Write-Host "ADMIN: ", $user.LoginName
}
else
{
Write-Host "USER: ", $user.LoginName
}
Write-Host " ------------------------------------- "
}
$web.Dispose()
$site.Dispose()
}
GetSPAllSPUsers
This function will return list of all users and their permission set for any list/library. This can be used to check users permissions for against a list. This function have two parameters(i.e. site URL and List Name).
PowerShell
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
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)
}
Write-Host " ------------------------------------- "
}
$web.Dispose()
$site.Dispose()
}
Function Calls
Functins can be called as below
PowerShell
GetSPWebUsers "http://SP2013"
GetSPAllSPUsers "http://sp2013:1111" "List Name"
No comments:
Post a Comment