Blog

Powershell / SharePoint

HOW TO Remove Sharepoint 2010 Users and Groups Using Powershell

By Peter on August 20, 2011

A recent project required me to remove several thousand obsolete users and groups from a Sharepoint 2010 Site. Instead of performing this task manually I wrote the two scripts below, which may come in handy for anyone performing a similar task.
I also built in a condition to retain groups that started with “CompanyName” (e.g. “CompanyName Extranet Members”) and user accounts that started with “COMPANY\” (e.g. “COMPANY\donald.duck”).
Here are the scripts:
Powershell Script to Delete Groups
$webURL="https://SharepointSite"
$site = new-object Microsoft.SharePoint.SPSite($webURL)
$web = $site.OpenWeb()
$groups = $web.sitegroups
$grctr=1
$GroupsToDelete = @(100)
foreach ($spgroup in $groups)
{
if ($spgroup.Name.Startswith("CompanyName"))
{
write-host "Name : ",$spgroup.Name
}
Else
{
$GroupsToDelete += $spgroup.Name
$grctr=$grctr+1
}
}
foreach ($delgroup in $GroupsToDelete)
{
write-host "Deleted : ",$delgroup
$web.SiteGroups.Remove($delgroup)
$web.Dispose()
}
write-host "Number Deleted: ",$grctr

Powershell Script to Delete Users in Sharepoint
$webURL="https://SharepointSite"
$site = new-object Microsoft.SharePoint.SPSite($webURL)
$web = $site.OpenWeb()
$webusers = $web.siteusers
$grctr=1
$UsersToDelete = @(100)
foreach ($spuser in $webusers)
{
if ($spuser.UserLogin.Startswith("COMPANY\"))
{
write-host "Name : ",$spuser.UserLogin
}
Else
{
$UsersToDelete += $spuser.UserLogin
#  write-host "Delete : ",$spuser.UserLogin
$grctr=$grctr+1
}
}
foreach ($deluser in $UsersToDelete)
{
write-host "Deleted : ",$deluser
$web.SiteUsers.Remove($deluser)
$web.Dispose()
}
write-host "Number Deleted: ",$grctr

(continue)

Search

Twitter

Syndeo Tag Cloud

Recent Posts