SharePoint Online: PowerShell kullanarak bir Özelliği Etkinleştirme
Gereksinim: PowerShell'i kullanarak SharePoint Online site koleksiyonundaki bir özelliği etkinleştirin.
Çözüm: SharePoint Şirket İçi'nde, özellikleri etkinleştirmek/etkinleştirmek için Enable-SPFeature cmdlet'ini kullanıyoruz . SharePoint Online'da, özelliği etkinleştirmek için PowerShell aracılığıyla kullanılabilen böyle bir cmdlet yoktur. Ancak SharePoint Online'daki özellikleri etkinleştirmek için İstemci Tarafı Nesne Modelini (CSOM) kullanabiliriz. “SharePoint Server Publishing Infrastructure” özelliğini aktif edelim. Bir site koleksiyonu özelliğini etkinleştirmek için SharePoint Online PowerShell'in bir örneğini burada bulabilirsiniz:
SharePoint Online'da Bir Özellik Nasıl Etkinleştirilir?
Bir özelliğin etkinleştirilmesi, özellikle ilişkili işlevlerin kullanılabilir olmasını sağlar. Listeler ve kitaplıklar vb. gibi yeni işlevler veya yapılar getirebilir. SharePoint Online'da bir site özelliğini nasıl etkinleştireceğiniz aşağıda açıklanmıştır:
- Özelliğin etkinleştirilmesi gereken siteye gidin.
- Sitenin ana sayfasında Ayarlar dişli simgesine ve ardından Ayarlar menüsünden Site Ayarları seçeneğine tıklayın.
- Site Ayarları sayfasında, Site Eylemleri bölümünün altındaki “Site Özelliklerini Yönet” bağlantısını tıklayın.
Örneğin, SharePoint Online'da yayınlama özelliğinin nasıl etkinleştirileceğini şöyle açıklayın: Site Özellikleri sayfasında, etkinleştirmek istediğiniz site özelliğinin yanındaki Etkinleştir düğmesine tıklayın.
- Özellik durumu Etkin olarak değiştirilir ve ilgili özellik yetenekleri sitede etkinleştirilir.
PowerShell, SharePoint Online'da Site Koleksiyonu Özelliğini Etkinleştirecek
SharePoint Online'da bir özelliği hızla etkinleştirmeniz mi gerekiyor? PowerShell, web tarayıcısı GUI'sini kullanmak zorunda kalmadan SharePoint Online'daki bir özelliğin etkinleştirilmesine yardımcı olabilir! SharePoint Online'da bir özelliği etkinleştirmek için PowerShell'i nasıl kullanacağınızı size göstereyim:
#Load SharePoint CSOM Assemblies
Import-Module Microsoft.Online.SharePoint.Powershell
#Variables for Processing
$SiteURL = "https://crescent.sharepoint.com/Sites/Sales"
$FeatureGUID =[System.GUID]("f6924d36-2fa8-4f0b-b16d-06b7250180fa") #Publishing Feature ID
$LoginName ="Salaudeen@crescent.OnMicrosoft.com"
$LoginPassword ="Password"
#Get the Client Context
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteURL)
#Login Credentials
$SecurePWD = ConvertTo-SecureString $LoginPassword -asplaintext -force
$Credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $LoginName, $SecurePWD
$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Credential.UserName,$Credential.Password)
#Get the Site
$site = $ctx.site
#sharepoint online powershell activate feature
$site.Features.Add($FeatureGUID, $force, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::farm)
$ctx.ExecuteQuery()
write-host "Feature has been Activated!"
Bu PowerShell, SharePoint Online'da yayımlama özelliklerine olanak tanır.
SharePoint Online: Özelliği Etkinleştirmek için PowerShell
Yukarıdaki koda "özelliğin zaten etkin olup olmadığını kontrol edin" gibi bazı hata işlemeleri ekleyelim ve özelliği SharePoint Online'da etkinleştirmek için PowerShell'de yeniden kullanılabilir bir işlev oluşturalım.
#Load SharePoint Online 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"
#Function to Enable Feature in SharePoint Online
Function Enable-SPOFeature
{
param ($SiteCollURL,$UserName,$Password,$FeatureGuid)
Try
{
#Setup the context
$Ctx = New-Object Microsoft.SharePoint.Client.ClientContext($SiteCollURL)
$Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($Username, $Password)
$Ctx.Credentials = $Credentials
$Site=$Ctx.Site
#Check the Feature Status
$FeatureStatus = $Site.Features.GetById($FeatureGuid)
$FeatureStatus.Retrieve("DefinitionId")
$Ctx.Load($FeatureStatus)
$Ctx.ExecuteQuery()
#sharepoint online activate feature using powershell (if its not enabled already)
if($FeatureStatus.DefinitionId -eq $null)
{
Write-Host "Enabling Feature $FeatureGuid..." -ForegroundColor Yellow
$Site.Features.Add($FeatureGuid, $true, [Microsoft.SharePoint.Client.FeatureDefinitionScope]::None) | Out-Null
$Ctx.ExecuteQuery()
Write-Host "Feature Enabled on site $SiteCollURL!" -ForegroundColor Green
}
else
{
Write-host "Feature is Already Active on the Site collection!" -ForegroundColor Red
}
}
Catch
{
write-host "Error: $($_.Exception.Message)" -foregroundcolor Red
}
}
#Parameters to Activate Feature
$SiteCollURL = "https://Crescent.sharepoint.com/sites/Demo"
$UserName = "SPAdmin@Crescent.com"
$Password = "Password goes here"
$FeatureGuid= [System.Guid] ("f6924d36-2fa8-4f0b-b16d-06b7250180fa") #Publishing Feature
$SecurePassword= ConvertTo-SecureString $Password -asplaintext -force
#sharepoint online enable feature powershell
Enable-SPOFeature -SiteCollURL $SiteCollURL -UserName $UserName -Password $SecurePassword -FeatureGuid $FeatureGuid
Bu, SharePoint Online'daki SharePoint Sunucu Yayımlama Altyapısı özelliğini etkinleştirir.
PowerShell Kullanılarak Site Özelliği (Web) Nasıl Etkinleştirilir?
Yukarıdaki kod site koleksiyonu düzeyindeki özelliği etkinleştirirken, aynı kod herhangi bir web düzeyindeki özelliği etkinleştirmek için de kullanılabilir. Satırı değiştirin:
$Site=$Ctx.site
İle
$Site=$Ctx.web
Ayrıca web düzeyi özelliği için GUID'i ayarlayın! Bu, SharePoint Online'da PowerShell kullanan özelliği etkinleştirir.
SharePoint Online'da Yayımlama Özelliğini Etkinleştirmek için PnP PowerShell:
Enable-PnPFeature cmdlet'ini kullanarak site koleksiyonu düzeyinde PnP PowerShell kullanarak bir SharePoint Online özelliğini etkinleştirelim.
#Config Variable
$SiteURL = "https://Crescent.sharepoint.com/Sites/Procurement"
$FeatureId = "f6924d36-2fa8-4f0b-b16d-06b7250180fa" #Site Scoped Publishing Feature
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#get the Feature
$Feature = Get-PnPFeature -Scope Site -Identity $FeatureId
#Get the Feature status
If($Feature.DefinitionId -eq $null)
{
#sharepoint online powershell enable feature
Write-host -f Yellow "Activating Feature..."
Enable-PnPFeature -Scope Site -Identity $FeatureId -Force
Write-host -f Green "Feature Activated Successfully!"
}
Else
{
Write-host -f Yellow "Feature is already active!"
}
Benzer şekilde, web kapsamında PnP PowerShell'i kullanarak yayınlama özelliğini şu şekilde etkinleştirebilirsiniz:
#Config Variable
$SiteURL = "https://Crescent.sharepoint.com/Sites/Procurement"
$FeatureId = "94c94ca6-b32f-4da9-a9e3-1f3d343d7ecb" #Web Scoped Publishing Feature
#Connect to PnP Online
Connect-PnPOnline -Url $SiteURL -Credentials (Get-Credential)
#Get the Feature to activate
$Feature = Get-PnPFeature -Scope Web -Identity $FeatureId
#Get the Feature status
If($Feature.DefinitionId -eq $null)
{
#activate publishing feature sharepoint online using powershell
Write-host -f Yellow "Activating Feature..."
Enable-PnPFeature -Scope Web -Identity $FeatureId -Force
Write-host -f Green "Feature Activated Successfully!"
}
Else
{
Write-host -f Yellow "Feature is already active!"
}
PowerShell kullanarak SharePoint Online'da bir özelliği devre dışı bırakmak için şuraya bakın: SharePoint Online: PowerShell kullanarak Özelliği Devre Dışı Bırakma
