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.

İlgili makaleler