PowerShell ile Tüm Kullanıcıları SharePoint Sitesinden veya Listeden Kaldırma
Gereksinim: Çok sayıda kullanıcı izni içeren bir SharePoint 2013 listesi var ve bu SharePoint listesindeki tüm kullanıcı izinlerini kaldırmak istedim. Tüm kullanıcıları kaldırmayı denedim, ancak SharePoint şunu verdi: "Aynı anda çok fazla grubu silmeyi seçtiniz. Daha az grup seçin ve tekrar deneyin." “Tüm kullanıcılar” onay kutusunu seçerek bunları SharePoint sitesinden veya grubundan kaldırın.
Yani buradaki sorun şu: SharePoint'in maksimum sayısını aştığında kullanıcıları toplu olarak silemiyoruz. İşte tüm kullanıcıları SharePoint sitesinden veya Listeden kaldırmak için kullanabileceğiniz şık PowerShell komut dosyalarım.
SharePoint listesinden tüm kullanıcı izinlerini kaldırmak için PowerShell betiği:
Bir SharePoint listesinden tüm kullanıcıları silmek için PowerShell'i nasıl kullanacağınızı size göstereyim.
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Variables
$SiteUrl="https://your-sharepoint-site.com"
$ListName="Your-List-Name"
#get the Web
$web = Get-SPWeb $SiteUrl
#Get the List
$list = $web.Lists[$ListName]
#If the List is not using Unique permissions, Break inheritance
if(!$list.HasUniqueRoleAssignments)
{
#Break list inheritance - without copying users
$list.BreakRoleInheritance($false)
}
#Remove all users from the list
for ($i = $list.RoleAssignments.Count - 1; $i -ge 0; $i--)
{
$RoleAssignment = $list.RoleAssignments[$i]
$list.RoleAssignments.RemoveByID($RoleAssignment.Member.ID)
write-host "Removed User/Group :" $RoleAssignment.Member.name
}
SharePoint sitesinden tüm kullanıcıları kaldırın
Benzer şekilde, bir SharePoint sitesinden tüm kullanıcıları silmek için bu PowerShell'i kullanın:
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
#Site collection URL
$SiteUrl="https://demo.sp.cloudservicesme.com"
#get the Root Web
$web = Get-SPWeb $SiteUrl
#Get All Users of the site collection
$UserAccounts = @()
foreach ($user in $web.SiteUsers)
{
$UserAccounts = $UserAccounts + $user.loginname
}
#Remove all users one by one.
foreach ($user in $UserAccounts)
{
try
{
#Set the Error Action
$ErrorActionPreference = "Stop"
#Remove User if not site admin
if(!$web.SiteUsers[$User].isSiteAdmin)
{
$web.SiteUsers.Remove($user)
Write-host "User Removed :" $user -ForegroundColor Green
}
}
catch
{
Write-host "Failed to remove the user:" + $user -ForegroundColor Red
}
Finally
{
#Reset the Error Action to Default
$ErrorActionPreference = "Continue"
}
}
Herkesin doğrudan izinlerini kaldırarak SharePoint listenizi veya sitenizi temizlemeniz gerekiyorsa bu yararlı olabilir.
