Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

Set a page template as default page template in SharePoint Online

SharePoint Online is a powerful collaboration and content management platform that allows organizations to create and manage sites for various purposes. One of the key features that enhances site design and improves user experience is the use of Page Templates. In this blog post, we will delve into what are page templates in SharePoint online and how to set a default page template for a SharePoint site.

What are Page Templates in SharePoint?

Page templates in SharePoint Online are pre-designed layouts or structures that provide a consistent and standardized format for creating site pages within a site. They serve as a starting point for designing and organizing content on SharePoint pages, ensuring a cohesive look and feel across the site.

Page templates can include a variety of elements such as placeholders for text, images, web parts, page sections, and more. By using page templates, users can quickly create new pages with a predefined structure and layout, saving time and effort while maintaining visual consistency.

Setting a Default Page Template for a SharePoint Site

When users try to create new site pages from SharePoint site home page, the default selected template in the Page Templates pane is Blank. If users don’t select a different template, the blank template will be used for their new page.

If you prefer to have another custom page template be the default selection for your SharePoint site while creating new site pages, follow one of the methods given below:

Using SharePoint User Interface

Follow below steps to set a default page template for your SharePoint online site from SharePoint UI:

1. Go to home page of your SharePoint online site.

2. Click on New from page command bar and select Page:

Open Page templates pane from SharePoint online site home page
Open Page templates pane from SharePoint online site home page

3. Click on vertical ellipses at the bottom right side of the template you want, and then select Set default selection:

Set default selection of page template for SharePoint online site
Set default selection of page template for SharePoint site

4. Click OK from Changing default selection confirmation popup.

Note: When you change the default selection in the page templates pane, it will be changed for all users in the SharePoint site.

Using PnP PowerShell

You can use below PnP PowerShell script to set a page template as default page template for SharePoint online site:

# SharePoint online site URL
$siteUrl = Read-Host -Prompt "Enter your SharePoint site URL (e.g https://contoso.sharepoint.com/sites/work)"

# Connect to SharePoint online site
Connect-PnPOnline -Url $siteUrl -Interactive

# Get page template details and Unique ID
$page = Get-PnPFile -Url "/sites/work/SitePages/Templates/PlainHeaderNoComments.aspx" -AsListItem

# Set a page template as default page template for SharePoint online site
Set-PnPPropertyBagValue -Key DefaultNewPageTemplateId -Value $page["UniqueId"]

# Disconnect SharePoint online connection
Disconnect-PnPOnline

You may get error like below while executing above PnP PowerShell script if custom scripts are not enabled for your SharePoint site:

Set-PnPPropertyBagValue: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)) Site might have NoScript enabled, this prevents setting some property bag values.

In that case, you have to first enable the custom scripts for your SharePoint site by following: Allow use of custom scripts in SharePoint Online using PowerShell.

Using CLI for Microsoft 365

Use below CLI for Microsoft 365 script to set a page template as default page template for SharePoint online site:

# Get Credentials to connect
$m365Status = m365 status
if ($m365Status -match "Logged Out") {
    m365 login
}

# SharePoint online site URL
$siteUrl = Read-Host -Prompt "Enter your SharePoint site URL (e.g https://contoso.sharepoint.com/sites/work)"
 
# Get page template details and Unique ID
$page = m365 spo file get --webUrl $siteUrl --url '/sites/work/SitePages/Templates/PlainHeaderNoComments.aspx' | ConvertFrom-Json

# Set a page template as default page template for SharePoint online site
m365 spo propertybag set --webUrl $siteUrl --key DefaultNewPageTemplateId --value $page.UniqueId

If custom scripts are not enabled for your SharePoint site, above CLI for Microsoft 365 script will throw error like:

Error: Site has NoScript enabled, and setting property bag values is not supported

In that case, you have to first enable the custom scripts for your SharePoint online site by following: Allow use of custom scripts in SharePoint Online using PowerShell.

Conclusion

Page templates in SharePoint online provide a valuable tool for enhancing site design and improving user experience. By setting a default page template, organizations can establish a consistent and standardized format for creating web pages within their SharePoint sites. This not only saves time but also ensures a cohesive and professional look across the site. By leveraging page templates, organizations can effectively showcase their content while maintaining their branding and style guidelines.

Learn more

Allow use of custom scripts in SharePoint Online using PowerShell

SharePoint online is a powerful platform that allows users to create and manage websites and content, collaborate with others, and more. However, SharePoint out-of-the-box features may not always meet the specific needs of your organization.

Fortunately, SharePoint online allows the use of custom scripts, which can be used to enhance the platform’s functionality and customize it to your specific needs.

When you allow the use of custom scripts in SharePoint online sites, users gain access to a wide range of features and functionalities. Here are some of the key capabilities that become available:

  • Web Parts: Users can use classic experience web parts like Script Editor, Content Editor (and lot more) using which they can create custom web parts using client-side scripting languages like JavaScript or TypeScript.
  • Use of Save Site as Template, Save document library as template, etc. features in SharePoint.
  • Use of Solution Gallery, Theme Gallery, Sandbox solutions, HTML Field Security, etc. settings in SharePoint sites.
  • Uploading files types that are blocked by default like .asmx .ascx .aspx .htc .jar .master .swf .xap .xsf

Let’s see how you can allow or prevent use of custom scripts in SharePoint Online sites using different PowerShell tools:

Using SharePoint Online PowerShell

Use below SharePoint Online PowerShell script to check if custom scripts are enabled or disabled for a SharePoint online site and then to allow use of custom scripts for specified SharePoint online site:

# SharePoint online admin center URL
$adminCenterUrl = "https://contoso-admin.sharepoint.com/"

# SharePoint online site URL
$siteUrl = "https://contoso.sharepoint.com/sites/SPConnect"

# Connect to SharePoint online admin center
Connect-SPOService -Url $adminCenterUrl

# Allow custom scripts on SharePoint online site
Set-SPOSite $siteUrl -DenyAddAndCustomizePages 0

# Verify that custom scripts are enabled on SharePoint online site
Get-SPOSite $siteUrl | select DenyAddAndCustomizePages

Using PnP PowerShell

You can use below PnP PowerShell script to allow or prevent use of custom scripts in SharePoint online site:

# SharePoint online site URL
$siteUrl = "https://contoso.sharepoint.com/sites/SPConnect"

# Connect to SharePoint online site
Connect-PnPOnline -Url $siteUrl -Interactive

# Allow custom scripts on SharePoint online site
Set-PnPSite -NoScriptSite $false

# Prevent custom scripts on SharePoint online site
Set-PnPSite -NoScriptSite $true

Using CLI For Microsoft 365

Use below CLI for Microsoft 365 script to allow use of custom scripts in SharePoint online site collection:

# SharePoint online site URL
$siteUrl = "https://contoso.sharepoint.com/sites/SPConnect"

# Connect to SharePoint online tenant
$m365Status = m365 status
if ($m365Status -match "Logged Out") {
    m365 login
}

# Allow custom scripts on SharePoint online site collection
m365 spo site set --url $siteUrl --noScriptSite $false

Conclusion

Enabling custom script support for SharePoint online sites can enhance the platform’s functionality and enable users to customize site to their specific needs. However, it’s important to carefully consider the potential security risks before enabling this feature, check: security considerations of allowing custom scripts in SharePoint.

Learn more

Delete custom site scripts in SharePoint online

In SharePoint online, you can use Site templates (previously known as “Site designs”) and Site scripts to provide reusable site columns, content types, lists, themes, site navigation layouts, or custom actions so that your users can quickly build new SharePoint sites with the features they need. SharePoint custom site scripts can help you to add custom branding, theming, or automation like setting a site logo, activating a site feature, etc. to your SharePoint online site.

However, over time, these custom site scripts can become outdated or unnecessary and ends up just hanging around in your SharePoint tenant for a long time even though you no longer need them. In this blog, we will discuss how to delete the custom SharePoint site scripts using PowerShell “scripts” (pun intended).

Using SharePoint Online PowerShell

You can run below SharePoint online PowerShell script from SharePoint Online Management Shell to delete the custom site scripts in your tenant:

# SharePoint online admin site URL
$siteUrl = "https://contoso-admin.sharepoint.com/"

# Connect to SharePoint online admin center
Connect-SPOService -Url $siteUrl

# Get all site scripts from the current tenant
$siteScripts = Get-SPOSiteScript

# List of custom site scripts to exclude from deletion
$keepThese = "Base Site Settings", "English Region", "Standard Site Columns", "Standard Libraries"
$siteScripts = $siteScripts | Where-Object { -not ($keepThese -contains $_.Title)}

if ($siteScripts.Count -eq 0) { break }

$siteScripts | Format-Table Title, SiteScriptIds, Description

Read-Host -Prompt "Press Enter to start deleting (CTRL + C to exit)"
$progress = 0
$total = $siteScripts.Count

foreach ($siteScript in $siteScripts)
{
    $progress++
    Write-Host $progress / $total":" $siteScript.Title

    # Delete custom site script
    Remove-SPOSiteScript -Identity $siteScript.Id
}

# Disconnect SharePoint online connection
Disconnect-SPOService

Using PnP PowerShell

Use below PnP PowerShell script to delete the custom site scripts from SharePoint online tenant:

# SharePoint online admin site URL
$siteUrl = "https://contoso-admin.sharepoint.com/"

# Connect to SharePoint online admin center
Connect-PnPOnline -Url $siteUrl -Interactive

# Get all site scripts from the current tenant
$siteScripts = Get-PnPSiteScript

# List of custom site scripts to exclude from deletion
$keepThese = "Base Site Settings", "English Region", "Standard Site Columns", "Standard Libraries"
$siteScripts = $siteScripts | Where-Object { -not ($keepThese -contains $_.Title)}

if ($siteScripts.Count -eq 0) { break }

$siteScripts | Format-Table Title, SiteScriptIds, Description

Read-Host -Prompt "Press Enter to start deleting (CTRL + C to exit)"
$progress = 0
$total = $siteScripts.Count

foreach ($siteScript in $siteScripts)
{
    $progress++
    Write-Host $progress / $total":" $siteScript.Title

    # Delete custom site script
    Remove-PnPSiteScript -Identity $siteScript.Id
}

# Disconnect SharePoint online connection
Disconnect-PnPOnline

Using CLI for Microsoft 365

Use below CLI for Microsoft 365 script to remove custom SharePoint site scripts from your tenant:

# Get credentials to connect to SharePoint online tenant
$m365Status = m365 status
if ($m365Status -match "Logged Out") {
    m365 login
}

# Get all site scripts from the current tenant
$siteScripts = m365 spo sitescript list | ConvertFrom-Json

# List of custom site scripts to exclude from deletion
$keepThese = "Base Site Settings", "English Region", "Standard Site Columns", "Standard Libraries"
$siteScripts = $siteScripts | Where-Object { -not ($keepThese -contains $_.Title)}

if ($siteScripts.Count -eq 0) { break }

$siteScripts | Format-Table Title, SiteScriptIds, Description

Read-Host -Prompt "Press Enter to start deleting (CTRL + C to exit)"
$progress = 0
$total = $siteScripts.Count

foreach ($siteScript in $siteScripts)
{
    $progress++
    Write-Host $progress / $total":" $siteScript.Title

    # Delete custom site script
    m365 spo sitescript remove --id $siteScript.Id
}

# Disconnect SharePoint online connection
m365 logout

These PowerShell scripts are also available on PnP Script Samples site at: Delete custom SharePoint site scripts.

Learn more

Sauvegarder son serveur Yunohost pour les nuls (1/2)

Dernière mise a jour 05 Mar 2023 a 10:25

Doit on rappeler l’importance de sauvegarder les données de son serveur ? Et plus vital encore, de tester régulièrement la restauration de ses sauvegardes. Un adminsys averti le sait, mais qu’en est-il des personnes dont l’informatique n’est pas leur cœur de métier et qui se sont lancées dans l’autohébergement grâce à des solutions comme l’excellentissime distribution Yunohost.

Et comme trop souvent, c’est le jour où ton serveur crashe que tu te dis que tu n’aurais jamais dû procrastiner l’étape des backup.
Il existe plusieurs méthodes pour sauvegarder son serveur yunohost . L’idée de ce billet étant de proposer une solution pour sauvegarder/restaurer le système et les applications sans se prendre la tête et de limiter la perte de ses données.

Stratégie de backup ?

Mais avant de passer à l’action , il est nécessaire que tu prennes le temps de répondre à ces quelques questions qui te permettront de définir ta stratégie de sauvegarde :
– Quoi sauvegarder? Quelles données? Système? Applicatives? Les deux ?…
– Où le faire? sur un disque dur externe, vers une machine du même réseau , vers une machine extérieure?
– Comment sauvegarder? A quelle fréquence? Sauvegarde incrémentale, différentielle? Chiffrement?

L’objet de ce billet n’est pas de s’attarder sur ces enjeux mais de te donner une recette simple pour minimiser la perte de tes données en cas d’incident. Pour t’aider à appréhender les notions de sauvegarde, tu peux t’inspirer de la doc officielle yunohost ici et aussi de ce diaporama à destination des néophytes dont j’avais fait la présentation au festival Libre en fête.

Quelle solution pratique pour sauvegarder sur Yunohost ?

En général pour sauvegarder tu peux :

  • utiliser tes propres scripts à base de rsync. Ça fonctionne très bien mais lourd à gérer pour quelqu’un qui ne connaît pas bien le bash et ses subtilités systèmes.
  • utiliser une application dédiée comme Borgbackup. Un très bon choix , notamment pour ses options de déduplication et de chiffrement qui permettent d’avoir des sauvegardes sécurisées et rationalisées. Mais pas forcément évident à mettre en place pour un néophyte.
  • autre solution , propre à Yunohost, utiliser son interface web et ses commandes internes. La meilleure solution selon moi pour qui débuterait.

    Encore une fois, le but de ce billet est de rester le plus simple possible , pardon d’avance pour les puristes de la sauvegarde. Nous allons donc voir comment faire une sauvegarde complète puis comment faire pour l’automatiser.

Sauvegarder en mode manuel

Pour créer une sauvegarde complète manuelle, tu as le choix :

  1. le faire à partir de l’interface d’administration de Yunohost
  2. le faire à partir d’un terminal en ligne de commande

Dans notre exemple , nous allons nous concentrer pour faire une sauvegarde système. Elle contiendra donc les fichiers concernant :

  • Les données utilisateurs situées dans /home/USER
  • L’annuaire des utilisateurs (ldap)
  • La configurations de YunoHost,
  • Les certificats SSL,
  • Les fichiers de configuration modifiés manuellement

Voyons voir comment faire tout ça en 1 clic…

1 – Sauvegarder via l’interface:

Menu ‘sauvegardes’ – ‘créer une sauvegarde’.

On coche les données systèmes à sauvegarder. Je te conseille surtout :
– « Configurations systèmes »
– « Données des utilisateurs »

Pour les applications, coche celles qui te semblent les plus indispensables, comme par exemple Nextcloud. Mais avant assure toi aussi d’avoir assez de place sur ton disque de sauvegarde pour pouvoir les stocker.

Selon le poids de tes données , la sauvegarde peut prendre un certain temps. Sur ma raspberry3 , ça m’a coûté 28 minutes pour une archive .tar de 7gb.


Tu possèdes donc maintenant une sauvegarde complète de tes fichiers systèmes ce qui te permettra en cas d’incident de restaurer les profils utilisateurs entre autre (on voit ça à la fin du billet).

Voyons voir maintenant une alternative qui te permettra de faire la même chose mais depuis la ligne de commande.

2 – via le terminal

La commande à taper pour tout sauvegarder (système et applis):

sudo yunohost backup create

– pour sauvegarder uniquement les fichiers de conf système:

sudo yunohost backup create --system

– pour sauvegarder uniquement les applis:

sudo yunohost backup create --apps

– pour sauvegarder que certaines applis:

yunohost backup create --apps nextcloud calibre

Dans mon cas , je choisis de sauvegarder la conf système:

Voilà on a notre fichier de sauvegarde sous forme d’une archive tar.

Pour vérifier les fichiers qu’elle contient, tu peux les lister comme ça:

tar -tvf /home/yunohost.backup/archives/20230301-091951.tar | less

Sauvegarde automatisée

Malheureusement l’interface de Yunohost ne prévoit pas la possibilité de réaliser une sauvegarde automatisée. Il va donc falloir scripter un peu en bash mais rien de compliqué tu vas voir.

on crée le fichier script appelé ‘backup_syst.sh’ qui fera:
– la purge des archives âgées de plus de 1 mois
– la sauvegarde complète des fichiers systèmes de Yunohost

#!/bin/bash
# sauvegarde systeme complete de yunohost

rep="/home/yunohost.backup/archives"
log="/tmp/backup_syst.log
>$log # raz du log

# on supprime les backup vieux de plus de 30 jours
$(find $rep -type f -iname "*.tar" -mtime +30 -delete > $log)

# on crée une nouvelle sauvegarde systeme
$(yunohost backup create --system 2>/dev/null >> $log )

Rendre exécutable le script:

chmod u+x backup_syst.sh

Planifier la sauvegarde:

Pour notre exemple, nous planifierons un backup hebdomadaire :

sous linux , ça se passe dans la crontab:

vi /etc/crontab

Ajouter cette ligne pour sauvegarder par exemple tous les mercredi à 03h du matin:

0 3 * * 3 /root/SCRIPTS/backup_syst.sh 

Restaurer une sauvegarde Yunohost ?

A partir du menu – Sauvegardes – Local, sélectionner l’archive à restaurer puis cliquer sur le bouton restaurer en bas à droite.

Tu vois ce n’est pas plus compliqué que ça.

Dans un prochain article nous verrons comment ajouter un disque dédié et monter le répertoire de sauvegarde dessus.

Cet article Sauvegarder son serveur Yunohost pour les nuls (1/2) est apparu en premier sur tutox.fr.

❌
❌