مدیرت گروه ها و کاربران سایت با پاورشل

خیلی از  زمان پیش می اید که شما به عنوان یک مدیر سایت شیرپوینت نیاز دارید تا عملیاتی روی گروه ها یا کاربران انجام دهید که می خواهید در کمترین زمان ممکن انجام شود برای مثال یک کاربر از شرکت می رود و شما باید این کاربر را از تمامی گروه ها حذف کنید.در این مقاله چگونگی مدیرت گروه ها و کاربران سایت با پاورشل را فراخواهید گرفت.
خب باز هم می شه این موارد را به کمک پاورشل حل کرد:

حذف کاربر از تمامی گروه های شیرپوینت

برای حذف یک کاربر از تمامی گروه های شیرپوینت کافی است بعد از تغییر نام کاربری و نام سایت کد زیر را در پاورشل اجرا کنید:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
Function Delete-UserFromAllSites([string]$WebAppURL, [string]$UserID)
{
  
    $SitesColl = Get-SPWebApplication $WebAppURL | Get-SPSite -Limit All
 
    foreach($Site in $SitesColl)
    {
        write-host "Site Name:" $Site.RootWeb.URL
         
       
        $User = $Site.RootWeb.SiteUsers | Where-Object {$_.LoginName -eq $UserID}
            
  
        if($User -ne $null)
        {
            #Remove User from the Site
            Remove-SPUser $UserID -web $Site.RootWeb.URL -confirm:$false
            write-host "Removed user from site collection:"$Site.RootWeb.URL -f Green
        }       
    }   
}
 

$WebAppURL = "http://portal.example.ir"
$UserID="pmo\j.daryabari"

Delete-UserFromAllSites $WebAppURL $UserID


همجنین اگر تعداد کاربران مد نظر بیش از یک عدد می باشد می توانید با استفاده از حلقه در پاورشل این اسکریپت را برای آنها تکرار کنید.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
Function Delete-UserFromAllSites([string]$WebAppURL, [string]$UserID)
{
  
    $SitesColl = Get-SPWebApplication $WebAppURL | Get-SPSite -Limit All
 
    foreach($Site in $SitesColl)
    {
        write-host "Site Name:" $Site.RootWeb.URL
         
       
        $User = $Site.RootWeb.SiteUsers | Where-Object {$_.LoginName -eq $UserID}
            
  
        if($User -ne $null)
        {
            #Remove User from the Site
            Remove-SPUser $UserID -web $Site.RootWeb.URL -confirm:$false
            write-host "Removed user from site collection:"$Site.RootWeb.URL -f Green
        }       
    }   
}

$userNames= ("domain\user1", "pmo\user2", "pmo\user3")
foreach($user in $userNames)
 { 
   #Call the function
   Delete-UserFromAllSites "http://sharepoint.crescent.com" $user
 }



حذف کاربر از یک گروه مشخص

شما می توانید به جای استفاده از UI جهت حذف کاربری مشخص از گروه مشخص از کد زیر با تغییر متغییر های تابع استفاده کنید.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
Function RemoveUser-FromGroup($SiteURL, $GroupName, $UserAccount)
{
 try
    {
     $ErrorActionPreference = "Stop"
     $web=Get-SPWeb $SiteURL
     $User  = Get-SPUser -Identity $UserAccount -Web $web
     $Group = $Web.sitegroups | Where-Object {$_.Name -eq $GroupName}
     if($Group -ne $null)
     {
         $Group.RemoveUser($User)
         Write-Host "$($User) Removed from the Group: $($GroupName)"
     }
   }
 catch
    {
           write-host $_.Exception.Message
    }
 finally
    {
           $ErrorActionPreference = "Continue"
    }
}

$web ="http://portal.example.ir"
$group ="Administrator"
$user= "wp\sharepointTest"
RemoveUser-FromGroup $web  $group $user

حذف تمام کاربران یک گروه

برای حذف تمامی کاربران از یک گروه می توانید از  کد زیر با تغییر  متغییر ها استفاده کنید.

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
 
Function RemoveUser-FromGroup($SiteURL, $GroupName, $UserAccount)
{
 try
    {
     $ErrorActionPreference = "Stop"
     $web=Get-SPWeb $SiteURL
     $User  = Get-SPUser -Identity $UserAccount -Web $web
     $Group = $Web.sitegroups | Where-Object {$_.Name -eq $GroupName}
     if($Group -ne $null)
     {
         $Group.RemoveUser($User)
         Write-Host "$($User) Removed from the Group: $($GroupName)"
     }
   }
 catch
    {
           write-host $_.Exception.Message
    }
 finally
    {
           $ErrorActionPreference = "Continue"
    }
}

$web ="http://portal.example.ir"
$group ="Administrator"
$user= "wp\sharepointTest"
RemoveUser-FromGroup $web  $group $user

مدیرت گروه ها و کاربران سایت با پاورشل
مدیرت گروه ها و کاربران سایت با پاورشل

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *