SharePoint Online: PowerShell kullanarak Grup Nasıl Oluşturulur?


Gereksinim: PowerShell'i kullanarak SharePoint Online'da yeni bir grup oluşturun.

SharePoint Çevrimiçi Grubu Oluşturma

SharePoint grubu, benzer izin kümesini paylaşan kullanıcıların bulunduğu bir kapsayıcıdır. SharePoint grupları, bireysel kullanıcıları yönetmek yerine, güvenliği grup olarak merkezi olarak yönetmenin kolay bir yolunu sağlar. Kullanıcıları gruplar halinde (5.000'e kadar) düzenleyebilir, grup için site düzeyinde izinler ayarlayabilir ve ardından bunları alt siteler, listeler ve liste öğeleri gibi temel nesnelerde kullanabiliriz.

Varsayılan olarak SharePoint, site oluşturulduktan sonra üç kullanıcı grubu oluşturur: Sahipler, Üyeler ve ziyaretçiler. Gruba izin vermek için site sahibi/site koleksiyonu yöneticisi olmanız gerekir. Peki SharePoint Online'da kullanıcı grubu nasıl oluşturulur? Bu gönderi, SharePoint Online'da gruplar oluşturmak için PowerShell betiğini paylaşıyor.

SharePoint Online'da Grup nasıl oluşturulur?

SharePoint Online grupları her türlü özel güvenlik gereksinimlerini karşılayacak şekilde oluşturulabilir. SharePoint Online grubunu nasıl oluşturacağınız aşağıda açıklanmıştır:

  1. SharePoint Online sitenize gidin, Site Ayarları dişli simgesine tıklayın ve ardından Site Ayarları >>'nı seçin. Site ayarları sayfasında, Kullanıcılar ve İzinler bölümünde Site İzinleri'ne tıklayın.
  2. İzinler sayfasında, İzinler sekmesi altındaki şeritteki Grup Oluştur simgesini tıklayın.

  3. Grup Oluştur sayfasında, gruba Ad'ı, isteğe bağlı olarak açıklama gibi diğer ayarları ve sahibini girin. Grup üyeliğini kimlerin görüntüleyebileceği/düzenleyebileceği, kullanıcıların üyelik talep etmesine izin verilebilecek ve gruptan ayrılabilecek kişiler gibi grup ayarlarını yapın. Tüm istekler belirtilen e-postaya gönderilecektir.
  4. Grup Sahibini belirtin. Varsayılan olarak SharePoint grubunu oluşturan kullanıcı olarak ayarlanmıştır.
  5. "Bu siteye grup izni ver" bölümünde, yeni grubunuza izin düzeyi atamak için uygun onay kutusunu seçin.

  6. Oluştur'a tıklayın.

Grup oluşturulduktan sonra tek yerden yeniden adlandırabilir, grubun izinlerini değiştirebilir ve gruba kişi ekleyebilir/kaldırabilirsiniz. Grup oluşturmak için SharePoint Online için PowerShell'i görelim.

PowerShell kullanarak SharePoint Online'da Grup Oluşturma

Yeni SPOSiteGroup PowerShell cmdlet'i, SharePoint Online site koleksiyonunda yeni bir SharePoint grubu oluşturmanıza olanak tanır. Bu cmdlet, bu yeni SharePoint grubunu oluşturmak istediğiniz site koleksiyonunun URL'sini, yeni grubun adını ve atamak istediğiniz izin düzeylerini gerektirir. Aşağıdaki PowerShell betiği, SharePoint Online sitenizde Pazarlama adı verilen ve hem Düzenleme hem de Tasarım haklarına sahip yeni bir "Pazarlama Personeli" güvenlik grubu oluşturmak için bu cmdlet'i nasıl kullanabileceğinizi gösterir.

PowerShell kullanarak SharePoint Online'da yeni bir kullanıcı grubu oluşturmanın bir örneği:


#Variables for Admin Center & Site Collection URL
$AdminCenterURL = "https://crescent-admin.sharepoint.com/"
$SiteCollectionURL = "https://crescent.sharepoint.com/sites/marketing"

#Connect to SharePoint Online
Connect-SPOService -url $AdminCenterURL -Credential (Get-Credential)

#sharepoint online powershell add group to site
New-SPOSiteGroup -Site $SiteCollectionURL -Group "Marketing Staff" -PermissionLevels "Design", "Edit"

Bu cmdlet, SharePoint Online site koleksiyonunda yeni bir grup oluşturur. Bu betiği SharePoint Çevrimiçi Yönetim Kabuğu PowerShell konsoluyla çalıştırabilirsiniz.

Siteye Grup Eklemek için SharePoint Çevrimiçi PowerShell

PowerShell CSOM kullanarak SharePoint Online'da yeni bir kullanıcı grubu oluşturalım.


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Variables for Processing
$SiteURL = "https://Crescent.sharepoint.com/Sites/Sales"
$GroupName="Sales Managers"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
$Ctx.Credentials = $Cred

#sharepoint online create group powershell
$GroupInfo = New-Object Microsoft.SharePoint.Client.GroupCreationInformation
$GroupInfo.Title = $GroupName      
$Group = $Ctx.web.SiteGroups.Add($GroupInfo)
$Ctx.ExecuteQuery()

Sade ve basit, değil mi? Biraz hata işleme kodu ekleyelim ve oluşturulan gruba izinler atayalım.

SharePoint Online PowerShell kullanarak Grup Oluşturma

SharePoint grubu oluşturmak için PowerShell CSOM betiği aşağıda verilmiştir:


#Load SharePoint CSOM Assemblies
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
 
#Variables for Processing
$SiteURL = "https://crescent.sharepoint.com/Sites/Sales"
$GroupName="Sales Managers"
$PermissionLevel="Edit"

#Setup Credentials to connect
$Cred = Get-Credential
$Cred = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Cred.UserName,$Cred.Password)

Try {
    #Setup the context
    $Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
    $Ctx.Credentials = $Cred

    #Get all existing groups of the site
    $Groups = $Ctx.Web.SiteGroups
    $Ctx.load($Groups)
    $Ctx.ExecuteQuery()
    
    #Get Group Names
    $GroupNames =  $Groups | Select -ExpandProperty Title
    
    #Check if the given group doesn't exist already
    If($GroupNames -notcontains $GroupName)
    {
        #sharepoint online powershell create group
        $GroupInfo = New-Object Microsoft.SharePoint.Client.GroupCreationInformation
        $GroupInfo.Title = $GroupName      
        $Group = $Ctx.web.SiteGroups.Add($GroupInfo)
        $Ctx.ExecuteQuery()

        #Assign permission to the group
        $RoleDef = $Ctx.web.RoleDefinitions.GetByName($PermissionLevel)
        $RoleDefBind = New-Object Microsoft.SharePoint.Client.RoleDefinitionBindingCollection($Ctx)
        $RoleDefBind.Add($RoleDef)
        $Ctx.Load($Ctx.Web.RoleAssignments.Add($Group,$RoleDefBind))
        $Ctx.ExecuteQuery()

        write-host  -f Green "User Group has been Added Successfully!"
    }
    else
    {
        Write-host -f Yellow "Group Exists already!"
    }
}
Catch {
    write-host -f Red "Error Creating New user Group!" $_.Exception.Message
}

Bu komut dosyası yeni bir SharePoint Online grubu oluşturur ve gruba izin atar.

PnP PowerShell'i kullanarak SharePoint Çevrimiçi Grupları oluşturma

PnP PowerShell, SharePoint Online grupları oluşturmanın ve yönetmenin etkili bir yoludur. Yalnızca birkaç basit cmdlet'le yeni bir grup oluşturabilir, kullanıcı ekleyebilir ve ayarları ihtiyaçlarınıza uyacak şekilde özelleştirebilirsiniz. İşte siteye grup eklemek için SharePoint Online PnP PowerShell.


#Config Variables
$SiteURL = "https://Crescent.sharepoint.com/sites/marketing"
$GroupName ="Contributors"
$Permissions="Contribute"

#Get Credentials to connect
$Cred = Get-Credential

Try {
    #Connect to PnP Online
    Connect-PnPOnline -Url $SiteURL -Credentials $Cred
    
    #Create a new group in SharePoint Online
    $Group = New-PnPGroup -Title $GroupName -ErrorAction Stop

    #Set Group Permissions
    Set-PnPGroupPermissions -Identity $Group -AddRole $Permissions    
}
catch {
    write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}

Bu PowerShell, SharePoint Online sitesine bir grup ekler.

CSV Dosyasından Birden Çok Grup Oluşturmak için PnP PowerShell

Bu kez SharePoint Çevrimiçi Gruplarını toplu olarak oluşturmak için bir CSV dosyası kullanalım.


#Function to Create SharePoint Online Group
Function Add-PnPGroup($SiteURL, $GroupName, $Permission)
{
    Try {
        #Connect to SharePoint Online Site
        Connect-PnPOnline -url $SiteURL -Interactive
        $Web = Get-PnPWeb

        Write-host "Creating Group '$GroupName'..." -f Yellow -NoNewline
        #Check if the group exists already
        If((Get-PnPGroup | Where { $_.Title -eq $GroupName}) -eq $Null)
        {
            #Create SharePoint Online Group
            $Group = New-PnPGroup -Title $GroupName -ErrorAction Stop
 
            #Set Group Permissions on the Web
            Set-PnPGroupPermissions -Identity $GroupName -AddRole $Permission -Web $Web
            Write-host "Done!" -f Green
        }
        Else
        {
            Write-host "Group '$GroupName' already exists!" -f Yellow
        }
    }
    Catch {
        Write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
    }
}

#Parameters
$CSVFile = "C:\Temp\Groups.csv"

#Get Groups Data from CSV
$GroupData = Import-Csv -Path $CSVFile | ForEach-Object {
        #Call function to Create Group
        Add-PnPGroup -SiteURL $_.SiteURL -GroupName $_.GroupName -Permission $_.Permission
}

İşte CSV Dosyam:

Grup oluşturulduktan sonra gruba kullanıcı ekleyebilirsiniz: SharePoint Online: PowerShell kullanarak Toplu Kullanıcı ve Grup Ekleme

İlgili makaleler