Vue normale

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

Create an Organization Assets Library in SharePoint Online

In the dynamic world of business collaboration, organizing and sharing digital assets efficiently is a key factor for success. SharePoint Online provides a robust solution for managing organizational assets through the creation of an “Organization Assets Library.” In this blog post, we’ll explore what an Organization Assets Library is and provide a step-by-step guide on how to create organization asset libraries in SharePoint Online.

What is an Organization Assets Library in SharePoint?

An organization assets library in SharePoint is a centralized repository for storing and managing digital assets like images such as company branding photos & logos and office templates like word, excel & PowerPoint documents that are commonly used across the organization. It provides a structured way to organize, access, and share these assets, ensuring consistency in branding (logos, style guides, templates) and seamless collaboration.

Types of Organization Assets Library

You can create two types of Organization Assets libraries in SharePoint Online:

  • Organization Asset Library for Images (ImageDocumentLibrary): Document library for images like branding images, company logos, etc. These images will be available under “Your organization” option when user opens the file picker while adding images in SharePoint web parts and pages.
  • Organization Asset Library for Office Templates (OfficeTemplateLibrary): Document library for office templates like word, excel and PowerPoint. These templates will be available when user creates a new office document from Office Apps. Follow this article for creating office templates.

How to Create an Organization Assets Library in SharePoint Online?

Step 1: Create a SharePoint Online site

You can use an existing site or create a new site for storing organization assets. The site can be of any type (communication site or team site). However, I will recommend you to create a new/blank communication site for hosting organization asset libraries. Follow this guide for creating a new SharePoint site: Create a site in SharePoint.

Step 2: Grant permissions on SharePoint Online site

Grant following permissions on the newly created SharePoint communication site:

  1. Owners: Add users who should be able to upload files to asset libraries as well as manage permissions of the site.
  2. Members: Add users who should be able to upload files to asset libraries.
  3. Visitors: Add Everyone except external users group so that all users in tenant can see assets.
Step 3: Create Document libraries and upload assets

Create new document libraries to store the organization assets by following this guide: Create a document library in SharePoint. After creating document libraries, upload the images or office templates to your document libraries.

Step 4: Register Document library as organization asset library

First of all, download the latest version of SharePoint Online Management Shell. Then you can run SharePoint Online PowerShell script like below from SharePoint Online Management Shell to register a document library as an organization asset library for images (you can use $orgAssetType = "OfficeTemplateLibrary" for office templates asset library):

# URL of SharePoint document library
$libraryUrl = "https://contoso.sharepoint.com/sites/OrgAssets/Images"

# Type of Organization asset library - ImageDocumentLibrary or OfficeTemplateLibrary
$orgAssetType = "ImageDocumentLibrary"

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

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

# Register document library as an organization asset library
Add-SPOOrgAssetsLibrary -LibraryURL $libraryUrl -OrgAssetType $orgAssetType

# Disconnect SharePoint online connection
Disconnect-SPOService

You’ll be prompted to enable a content delivery network (CDN) while adding an organization asset library, type Y (Yes) or A (Yes to All) and press Enter.

If you get an error – Add-SPOOrgAssetsLibrary : This library is not on the site that contains other organization asset libraries while running above PowerShell script, that means some other organization asset libraries are already available in your Microsoft 365 SharePoint tenant. In that case, try this:

1. Firstly, check if you have any existing organization asset libraries in your Microsoft 365 tenant using this command:

Get-SPOOrgAssetsLibrary

2. Create a new document library on same SharePoint site where your existing organization asset libraries are created.

3. Run PowerShell script given in step 4 to register the newly created document library as an organization asset library.

Notes

  1. You can create up to 30 organization asset libraries for a single tenant / organization.
  2. All organization asset libraries must be on the same SharePoint site.
  3. Only document libraries (not folders) can be set as organization asset libraries.
  4. It may take up to 24 hours for the organization assets library to appear in the desktop office apps.
  5. Users need at least read permissions on the SharePoint root site for the organization assets library to appear in the desktop office apps.

How to Remove an Organization Assets Library from SharePoint Online?

If you want to remove/unregister an existing organization asset library from your SharePoint tenant, you can use below SharePoint Online PowerShell script:

# URL of SharePoint document library
$libraryUrl = "https://contoso.sharepoint.com/sites/OrgAssets/Images"

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

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

# Remove/unregister an organization asset library in SharePoint tenant
Remove-SPOOrgAssetsLibrary -LibraryUrl $libraryUrl

# Disconnect SharePoint online connection
Disconnect-SPOService

In conclusion, implementing an organization assets library in SharePoint Online can significantly enhance the management and utilization of essential resources within your organization. By centralizing assets, maintaining consistency, and enabling seamless collaboration, SharePoint empowers teams to work more efficiently and effectively.

Learn more

SharePoint Online: External Image URLs not working in JSON Formatting

SharePoint Online is a powerful collaboration and content management platform that empowers organizations to create, manage, and share information seamlessly. JSON formatting in SharePoint online allows users to customize the look and feel of the columns, views and forms in their SharePoint lists and libraries.

Earlier this year Microsoft updated the SharePoint JSON formatting feature and blocked most of the external domain image sources by default in custom JSON column and view formatting.

Only images from the following domains are allowed by default:

  • tenant domain, configured multi-geo domains and vanity domains (company.sharepoint.com)
  • cdn.office.net, akamaihd.net, static2.sharepointonline.com CDNs

The Solution – Modifying HTML Field Security Settings:

To address the challenge of displaying external web site domain images in JSON formatting, one effective solution is to adjust the HTML field security settings of your SharePoint site. This involves whitelisting trusted external domains or CDNs to allow their images to be displayed within your SharePoint environment. Follow these steps to implement the solution:

1. Go to your SharePoint online site.

2. Click on Settings (gear) icon from top right corner and select Site information.

3. Click on View all site settings link from Site information panel, it will open the SharePoint site settings page.

4. Under the Site Collection Administration section, locate and click on the HTML Field Security settings link.

5. Select Allow contributors to insert iframes only from the following domains, add external web site domain from where you are using the images under Allow iframes from this domain text box and click Add button.

6. Click OK button at the bottom of HTML Field Security settings page to save the changes.

Allow external site domain from SharePoint HTML Field Security settings

7. Navigate back to the SharePoint list where you are using external image with JSON formatting and refresh the web page. Now, you should see that the external images are working using the SharePoint Online JSON formatting.

Output

Before adding external site domain to SharePoint HTML Field Security Settings:

External Image URLs are not working in SharePoint Online JSON formatting
External Image URLs are not working in SharePoint Online JSON formatting

After adding external site domain to SharePoint HTML Field Security Settings:

External Image URLs are working in SharePoint Online JSON formatting after adding external web site domain to SharePoint HTML Field Security settings
Working External Image URLs in SharePoint Online JSON formatting

Learn more

Enable or Disable the Social Bar (Like, Views, Save for later) for individual SharePoint sites

In my previous blog, we saw how to enable or disable the Social Bar (Like, Views, Save for later) in SharePoint Online at tenant level using SharePoint Online PowerShell, PnP PowerShell and CLI for Microsoft 365. In this blog we will explore how to enable or disable the Social Bar for individual SharePoint online site collections.

You can use any one of the approaches given below for enabling or disabling the Social Bar (Like, No. of Comments, Views, Save for later) for individual SharePoint online sites.

Using SharePoint Online PowerShell

Use below SharePoint Online PowerShell script to enable or disable the social bar from site pages for specific SharePoint online modern experience site:

# SharePoint online admin center URL
$adminCenterUrl = Read-Host -Prompt "Enter your SharePoint online admin center URL (e.g https://contoso-admin.sharepoint.com/)"

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

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

# Disable the social bar from SharePoint online site pages
Set-SPOSite -Identity $siteUrl -SocialBarOnSitePagesDisabled $true

# Enable the social bar on SharePoint online site pages
Set-SPOSite -Identity $siteUrl -SocialBarOnSitePagesDisabled $false

# Disconnect SharePoint online connection
Disconnect-SPOService

Using PnP PowerShell

You can use below PnP PowerShell script to show or hide the social bar from SharePoint online modern experience site pages for individual SharePoint 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

# Hide the social bar from SharePoint online modern site pages
Set-PnPSite -SocialBarOnSitePagesDisabled $true

# Show the social bar on SharePoint online modern site pages
Set-PnPSite -SocialBarOnSitePagesDisabled $false

# Disconnect SharePoint online connection
Disconnect-PnPOnline

Using CLI for Microsoft 365

Use below CLI for Microsoft script to show or hide the social bar from SharePoint online modern experience site pages for individual SharePoint 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 tenant
$m365Status = m365 status
if ($m365Status -match "Logged Out") {
    m365 login
}

# Hide the social bar from SharePoint online modern site pages
m365 spo site set --url $siteUrl --socialBarOnSitePagesDisabled true

# Show the social bar on SharePoint online modern site pages
m365 spo site set --url $siteUrl --socialBarOnSitePagesDisabled false

# Disconnect SharePoint online connection
m365 logout

Conclusion

By using the PowerShell scripts given in this blog post, you can enable or disable social bar features from SharePoint online modern site pages for specific SharePoint online sites.

Learn more

Bring Your Own Domain for Microsoft 365 Service Messages

Use a Verified Domain to Send Microsoft 365 Service Messages

Announced as Microsoft 365 message center notification MC531211 (21 March 2023, Microsoft 365 roadmap item 103628) and now rolling out to tenants, organizations can choose one of the verified domains available for their tenant as the domain used for product advisory emails (Microsoft 365 service messages).

Microsoft 365 apps that support the feature include:

  • SharePoint Online
  • OneDrive for Business
  • Office
  • Stream
  • Planner
  • Project
  • Viva Connections
  • Viva Topics
  • Viva Amplify

Microsoft 365 apps use email addresses like no-reply@sharepointonline.com and no-reply@planner.com when they generate informational messages to communicate alerts, events, or digest information to users. For instance, when someone stores a document with a higher-level sensitivity label in a SharePoint Online site, SharePoint generates an email to tell them about the potential problem caused by the label mismatch. Figure 1 shows an example of such a message after selecting the office365itpros.com domain to send service messages.

Using a verified tenant domain to send Microsoft 365 service messages
Figure 1: Using a verified tenant domain to send Microsoft 365 service messages

The messages don’t cover service alerts (when a service has an outage), nor do they cover One Time Passcodes (OTP) generated by sharing actions from OneDrive and SharePoint Online. Sharing notifications continue to use no-reply@notify.microsoft.com to ensure delivery of these emails.

Using a Verified Domain

The steps to select a verified domain for service messages are laid out in the Microsoft documentation. In essence, tenant administrators use the Send email notifications from your domain option in the Organization profile section of Org Settings in the Microsoft 365 admin center to select a username and domain (Figure 2).

Selecting a username and verified domain to use for Microsoft 365 service messages
Figure 2: Selecting a username and verified domain to use for Microsoft 365 service messages

The domain must be one of the verified domains for the tenant. After saving the new configuration, the Microsoft 365 apps switch to use the selected username and domain instead of their default domains when they send email. Messages are now routed by Exchange Online on behalf of the organization. Just like any of the verified domains used for mail routing, the DNS records for the chosen domain should be configured for SPF, DKIM, and DMARC. This is especially important if email is relayed to Exchange on-premises or an external email service.

The Username for Service Messages

By default, the username is set to no-reply. The intention of a no-reply address is that users know that replying to the address will result in an undeliverable message. However, it’s possible to change the username to one for a routable address such as a shared mailbox so that users can get a response to questions about why they received a service message. Be careful if you do this because service emails then appear to be like any other email sent by the chosen address. Figure 3 shows an example of a message sent by SharePoint Online to report updates to documents in a site. The message appears to come from a shared mailbox because that’s what matches the configured address for service messages.

A service message from a shared mailbox
Figure 3: A service message from a shared mailbox

Not External Messages

Because the tenant’s instance of Exchange Online routes the service messages, they are now internal rather than external and therefore will not be tagged with the external indicator. In some respects, this is a major advantage of choosing to use a verified domain as users might better accept the content of the messages if they don’t come from an external source. The downside is that users might need to adjust inbox rules to process service messages correctly.

If you use a mail flow rule to protect administrator accounts from external email, remember to update the rule to deal with messages from your chosen domain.

Not a Change to Worry Too Much About

After using this option for a couple of weeks, I don’t see any great downside to using a verified domain to send Microsoft 365 service messages. Something might have slipped my attention (and if so, I’d like to know), but overall I think this is a good change that all tenants should consider.


Make sure that you’re not surprised about changes that appear inside Office 365 applications by subscribing to the Office 365 for IT Pros eBook. Our monthly updates make sure that our subscribers stay informed.

Windows 11 pour les entreprises : la mise à jour unifiée arrive.

Si votre entreprise utilise Windows Server Update Services (WSUS) ou Configuration Manager elle devrait recevoir la semaine prochaine un téléchargement de 10 Go qui donnera le coup d’envoi de la plate-forme de mise à jour unifiée (UUP) de Windows 11 version 22H2. Et après le 28 mars, toutes les futures mises à jour locales de Windows 11 version 22H2 suivront l’approche de service UUP.

Microsoft annonce également que les mises à jour mensuelles seront réduites de 30 %, et un seul redémarrage sera nécessaire pour les intégrations de mises à jour de fonctionnalités. Les packs linguistiques et les fonctionnalités à la demande seront conservés lors des mises à jour de fonctionnalités. Très interessant également, Microsoft promet que le nouveau schéma de service UUP permettra de réparer les corruptions dans la mise à jour cumulative combinée en utilisant le contenu stocké sur les points de distribution.

L’UUP existe depuis des années et a surtout été présenté comme un moyen de réduire la taille des mises à jour de Windows. Microsoft vante désormais les autres avantages de l’UUP, décrits ci-dessus. Selon Microsoft, l’UUP sur site facilitera également les mises à jour pour les systèmes Windows « air-gapped » (non connectés à l’internet).

Le téléchargement de 10 Go dans les points de distribution de logiciels des entreprises aura donc lieu le 28 mars via une mise à jour de sécurité que les entreprises ont probablement déjà reçue la semaine dernière (le 14 mars). Le nom et le contenu de la mise à jour de sécurité KB5023706 du 28 mars seront identiques à ceux de la version KB5023706 du 14 mars (à l’exception de la taille du fichier) et elle remplacera donc logiquement cette version. Mais attention, histoire de compliquer un peu la chose, même si la mise à jour de sécurité du 28 mars remplacera celle du 14 mars, Microsoft demande aux entreprises des conserver la version du 14 mars qui est nécessaire pour bénéficier des avantages de l’UUP… Pourquoi faire simple 🙂

Il sera possible de définir des approbations automatiques pour les mises à jour WSUS, via la console d’administration WSUS. Si votre entreprise souhaite utiliser Microsoft Connected Cache avec ces mises à jour de Windows 11 version 22H2, elle doit là encore logiquement s’assurer que WSUS est mis à jour avec la mise à jour KB5003217.

Enfin autre changement, les mises à jour cumulatives seront publiées dans le Microsoft Update Catalog sous la forme d’un fichier MSU uniquement. Microsoft cessera donc à l’avenir de publier des fichiers au format CAB pour ces mises à jour.

stephanesabbague

Blog Post: [Microsoft Teams] Nouveaux rapports d'utilisation et de performance Walkie Talkie

Le rapport d'utilisation et de performance Walkie Talkie est disponible dans le centre d'administration Microsoft Teams vous permet d'avoir un aperçu de l'activité Walkie Talkie au sein de votre organisation. Ce rapport fournit des informations précieuses telles que le nombre de transmissions "appuyer pour parler" (PTT) effectuées et reçues, l'activité des canaux, la durée des transmissions ainsi que les détails des appareils et des participants. En utilisant ce rapport, vous pouvez mieux comprendre les tendances d'utilisation et les performances de Walkie Talkie dans votre organisation. Roadmap: https://www.microsoft.com/en-US/microsoft-365/roadmap?filters=&searchterms=96972 La fonctionnalité est globalement disponible. C'est quoi la fonctionnalité de Walkie Talkie? Talkie Walkie permet aux utilisateurs de communiquer entre membre d'une équipe par un canal de discussion. Seuls les utilisateurs qui se connectent à Walkie Talkie dans un canal deviennent des participants et peuvent communiquer entre eux à l'aide de push-to-talk, un à la fois. La fonctionnalité est disponible sur de nombreux appareils, vous pouvez trouver différentes explications dans nos précédents blog: [Microsoft Teams] Nouvelle fonctionnalité: Walkie-Talkie avec les téléphones MS Teams [Microsoft Teams] La fonctionnalité de Walkie Talkie avec Microsoft Teams maintenant disponible globalement [Microsoft Teams] Utiliser la fonctionnalité de Walkie Talkie avec Microsoft Teams Pour accéder au rapport, vous devez être un administrateur global, un administrateur Teams, un lecteur global ou un lecteur de rapports. Naviguer le centre d'administration Microsoft Teams , puis sélectionner Analytics & reports et ensuite Usage reports . Sélectionner ensuite le rapport d'utilisation et de performance pour la fonctionnalité Walkie Talkie et choisir une plage de temps. Le rapport n'est pas disponible directement dans la page, il est nécessaire de le générer. Le rapport sera ensuite automatiquement généré. puis disponible au téléchargement. En date du blog, les données sont dans un format très "brut", nous pouvons espérer une évolution de l'interface pour offrir un visuel plus confortable dans l'avenir. Informations ici: https://learn.microsoft.com/en-us/microsoftteams/teams-analytics-and-reports/walkie-talkie-usage-report https://learn.microsoft.com/en-us/microsoftteams/walkie-talkie

How to Use SharePoint Online’s New Block Download Policy

SharePoint Block Download Policy Licensed by Syntex-SharePoint Advanced Management and Managed with PowerShell

One of the features covered by the new Syntex-SharePoint Advanced Management license blocks users from being able to download files from a SharePoint Online site or OneDrive for Business account. The idea is to protect sites that store very confidential material by forcing users to work with the files stored in the site using browsers. Users can’t even use the Office desktop apps because those apps download a temporary copy of files to work on them locally.

The block files from download feature is currently in preview. To enable a block download policy for a site, you’ll need to use the Set-SPOSite cmdlet from the latest version of the SharePoint Online management PowerShell module.

Restricting Download Access

I tested the feature by creating a new team called Project Aurora. I then configured the SharePoint Online site belonging to the team by running these commands to find all sites, select the URL for the Project Aurora site, and use it to configure a block download policy with an exclusion for site owners. In other words, site members can’t download files from its document libraries, but site owners can.

[array]$Sites = Get-SPOSite -Limit All
$Site = ($Sites | Where-Object {$_.Title -eq "Project Aurora"}) | Select-Object -ExpandProperty Url
Set-SPOSite -Identity $Site -BlockDownloadPolicy $True -ExcludeBlockDownloadPolicySiteOwners $True

The preview documentation says that site owners can grant exclusions to groups by passing the group identifiers in the ExcludedBlockDownloadGroupIds parameter. I see some issues here because Microsoft has long coached customers not to update membership of group-connected sites through SharePoint Online. In addition, adding a Microsoft 365 group to site membership creates an unsupported condition of nested Microsoft 365 groups. For now, I would avoid using group-based exclusions and concentrate solely on site owner exclusions.

After populating the default document library with some documents, I signed into the site with a member account. The site flagged the restrictions in place and removed the options to download files (Figure 1).

The effect of the SharePoint block download policy
Figure 1: The effect of the SharePoint block download policy

The Teams Files channel tab also removes the download option but doesn’t display a banner to inform the user about the restrictions. The Files channel tab does remove the option to use an Office desktop app to open a document. Before restricting downloads by policy, Microsoft recommends that you check any potential effect that the block might have on other applications, including Power Apps and Power Automate.

The file download restrictions are the same as when using a conditional access policy to limit access when users attempt to access SharePoint content from an unmanaged device. That’s the point of this feature: you don’t need to deploy conditional access policies to get equivalent protection. Although conditional access policies are a good way to control what people can do after they connect to a Microsoft 365 tenant, there’s no doubt that organizations can end up with many different policies to manage. Replacing a conditional access policy with a relatively simple download block applied at the site level might be a good thing to do, especially if you want to have finer-grained control over what sites block file downloads.

Applying the SharePoint Block Download Policy to Multiple Sites

As a practical example of how you might deploy block download policies, let’s assume that you want to stop downloads for all sites assigned the most stringent sensitivity label. In my tenant, that’s a label called “Confidential Access.” The important thing is to know the label identifier (GUID) because that’s how Microsoft 365 workloads connect to sensitivity labels. In this case, the GUID is c99e52c6-f5ff-4050-9313-ca6a3a35710f.

This script applies the SharePoint block download policy to all sites assigned the Confidential Access sensitivity label. First, we find the set of sites associated with Microsoft 365 groups. Because the Get-SPOSite cmdlet does not return all site properties when it processes multiple sites, we need to loop through the site of sites to check the sensitivity label for each site and apply the policy after detecting a matching label:

# Process sites and set the SharePoint block download policy
[array]$Sites = Get-SPOSite -Template "GROUP#0" -IncludePersonalSite:$False -Limit All
Write-Host ("Scanning {0} sites to find those with the Confidential Access label" -f $Sites.count)
[int]$i = 0
ForEach ($Site in $Sites) {
   $SiteData = Get-SPOSite -Identity $Site.Url
   If ($SiteData.SensitivityLabel -eq "c99e52c6-f5ff-4050-9313-ca6a3a35710f" -and $SiteData.BlockdownloadPolicy -eq $False ) {
      Write-Host ("Applying site download block policy to {0}" -f $SiteData.Title)
      Set-SPOSite -Identity $Site.Url -BlockDownloadPolicy $True -ExcludeBlockDownloadPolicySiteOwners $True; $i++
   }
}
Write-Host ("Finished processing. {0} sites updated with a block download policy" -f $i)

Remember Your Syntex Licenses

Remember that every member of a site that uses a block download policy to restrict downloads to site owners or groups must have a Syntex Advanced Management license. Given that you’ll probably only apply this kind of restriction to a limited number of sites, that shouldn’t be a big issue.


Support the work of the Office 365 for IT Pros team by subscribing to the Office 365 for IT Pros eBook. Your support pays for the time we need to track, analyze, and document the changing world of Microsoft 365 and Office 365.

Microsoft Introduces New Syntex-SharePoint Advanced Management License

Syntex-SharePoint Advanced Management Covers Secure Collaboration for SharePoint Online

Updated 2 March 2022

I know that many Microsoft 365 organizations don’t use sensitivity labels, even if they have the necessary licenses to use labels to protect content. All Office 365 licenses allow users to read protected content, but you need Office 365 E3 or above to apply labels to files, and Office 365 E5 or Microsoft 365 Compliance E5 for auto-label processing. At least, that’s been the case up to now.

Applying a default sensitivity label for a SharePoint Online document library (Figure 1) counts as automatic processing. Apparently, Microsoft considers the fact that new and modified documents in the library pick up the sensitivity label (unless previously labeled) as reason enough. In late January 2023, Microsoft revealed that this feature was one of the set to be licensed through a new Microsoft Syntex-SharePoint Advanced Management license.

 Using a default sensitivity label with a document library requires a Syntex advanced management license
Figure 1: Using a default sensitivity label with a document library requires a Syntex advanced management license

Features Enabled by the Microsoft Syntex-SharePoint Advanced Management License

The new license is in preview and includes other elements to improve secure collaboration based on SharePoint Online and OneDrive for Business, including:

  • Using sensitivity labels with Azure AD authentication contexts to limit access to SharePoint Online sites. This feature has been in preview since 2021.
  • Restricting access to a SharePoint Online site to members of a Microsoft 365 group. This restriction blocks users who have received access to a file in the site.
  • Blocking the download of files from SharePoint Online sites or OneDrive for Business accounts without the need to use Azure AD conditional access policies. In other words, users are forced to use a browser to access the site or account and cannot download, print, or synchronize files. The restriction also blocks access to the Office desktop apps because these apps need to download files to work on them locally.

In addition, Syntex-SharePoint Advanced Management includes some management and governance features. The three examples cited appear to be instances where it’s possible for administrators to do the same thing with some effort. Microsoft is making it easier. For example, the ability to limit access to OneDrive for Business to those who are members of a specific security group stops people licensed to use OneDrive but who aren’t members of the security group from using the app. The same effect is possible by simply removing the OneDrive service plan from their assigned licenses.

I haven’t seen what actions are included in the feature to export recent SharePoint site actions, but it might be possible to replicate the functionality by fetching SharePoint management events from the unified audit log.

My assumption is that any user who takes advantage of a feature licensed by Syntex advanced management requires a license. For instance, site members of a site where a document library uses a default sensitivity label all require Syntex-SharePoint Advanced Management licenses.

I can’t find a public announcement by Microsoft about the Syntex-SharePoint Advanced Management license. Cynics will say that this is another example of how Microsoft creates licenses for new functionality to generate additional revenue from its installed base. A more benign view is that the new license allows people with Office 365 E3 licenses to use the security and governance features enabled by Syntex Advanced Management. When I find out more details about licensing, including if some features covered by Syntex Advanced Management are also available through other licenses, I shall share the information.

Viewing Metadata for Protected Files

On an associated topic, I was asked why the metadata of documents protected by sensitivity labels remains visible to people who have no right to access these files. It’s a good question because some get confused when they notice an interesting document in a library but can’t open it because they’re blocked by the rights assigned in the label. For instance, who wouldn’t want to open a document with a title like “Proposed Pay Rises for Staff”?

When you enable SharePoint Online and OneDrive for Business to support sensitivity labels, it allows the workloads to deal with protected (encrypted) content. SharePoint Online stores protected files in an unencrypted format to allow functions like indexing and data loss prevention policies to work. Any access to a document, such as a user opening or downloading a file, causes SharePoint Online to encrypt the document so that the application used to open the file (like Word) can apply the rights assigned to the user. Everything works very nicely and those who have access to files can work with that content and those who don’t cannot.

When browsing items in a document library, site members can see metadata like the titles and authors of protected documents. Attempts to open these documents fail if the user doesn’t have the necessary rights. Because SharePoint Online doesn’t encrypt or obscure the metadata, those users know that documents with potentially very interesting content are available.

How SharePoint Online Stores Documents

The reason why document metadata is visible to all site members is rooted in how SharePoint Online stores documents. SharePoint Online uses Azure SQL as its storage platform. Blob storage holds documents and other files while metadata is in a separate table (list). The Azure SQL data is heavily protected against illegal access. Once a user has access to a document library, the assumption is that SharePoint can show them all the items, which is what they see in the list shown in a browser or the Teams files channel tab. It’s only when a user attempts to access a protected document that SharePoint Online validates their right to open that content.

You can argue that SharePoint Online and OneDrive for Business should hide the existence of protected documents that the user can’t open, but this would require SharePoint Online to check that access before displaying documents in a library. Such a check would incur a huge performance penalty because SharePoint Online cannot assume that the rights assigned in a sensitivity label are the same as the last time it checked.

New Functionality, New Costs

Although the news about the Syntex-SharePoint Advanced Management license will disappoint some, it’s reasonable that Microsoft should charge extra for security and management features that not every Microsoft 365 tenant will want or need. Those that need the functionality will simply have to pay the $3/user monthly cost. Hasn’t that always been the way?


Stay updated with developments across the Microsoft 365 ecosystem by subscribing to the Office 365 for IT Pros eBook. We do the research to make sure that our readers understand the technology.

Goals for your IT Team When They Free Up Time Through Automation

Back in October, I was lucky enough to visit my friends at ShareGate, along with fellow MVPs Jasper Oosterveld (@jappie1981) and Maarten Eekels (@maarteneekels) We had several conversations with ShareGate’s Laurent St. Pierre (@laurent_sp), and those were recorded and released as a series of videos: The evolution of IT: Improving digital employee experience to boost productivity. The conversations have also led to ongoing asynchronous discussions about the things we said, for more elaboration and to expand on our thoughts.

Recently, ShareGate’s Rafael Spuldar did a new blog post: 5 IT Goals for Your Team When They Free up Time – ShareGate.

Emily Mancini (@eemancini) and I had kicked around the topic and came up with the following list of ideas. Some made it into Rafael’s post, and others didn’t, so I figured I’d post our full list here.

Let us know what you think in the comments!

  1. Clean up AD/AAD data – In most cases, targeting content to the right people is based on AAD data. This data determines which people belong in particular Microsoft 365 Group, especially if they are dynamic groups. If the organization can actually rely on that data being correct, they can build out much more personalized experiences. In most organizations, not only is the data wrong, but everyone knows it’s wrong and they can’t rely on it. No one even tries to get it fixed because they think it’s pointless. Spending time improving this data provides many benefits.
  2. Focus on consultative customer service – If you’re like many IT departments, people don’t come to you for advice and assistance because they can’t get your time. Set up an informal (or formal) consulting capability for the organization. Let anyone in the organization get in touch during office hours to help them think through technical issues and starting solutions for themselves. This consultative focus can also become “market sensing”, in that it tells you what the organization is doing and what they need that you aren’t providing. Unless you have an amazing help desk, they probably don’t fulfill this role. Help desks tend to focus on solving immediate problems (which everyone wants them to do), and not longer-term efforts. If nothing else, it’s a different mindset.
  3. Think about places you could solve problems – Imagine going out into the organization and saying something like “We know you struggle with people filling out so many of these forms. We’d like to help you automate and improve the process.” You’d be heroes! In other words, do external outreach in the organization: offering the very services you have capacity for – for free! You’ll be amazed at the goodwill this engenders.
  4. Search analysis – Take a look at the searches people are doing and what happens. How many searches lead to useful results, and how many fail? A failed search is a content opportunity, and a successful search means that content matters and may need a review. That doesn’t mean that you in IT need to do that review, but you’d be providing great information to the content owners to make their content more valuable. You have the tools to do this in Microsoft 365, but many organizations simply don’t.
  5. Run the assessment tool – The Microsoft 365 Assessment tool was created to help people move from classic to modern and from on prem to the cloud originally. It’s been expanded to help people understand how Microsoft Syntex might be a valuable toolset. But as part of the output, it gives you information about how to improve your information architecture. You need to be at least a SharePoint Admin to run the scanner, so running it for your Site Owners is a way to give them a gift to improve their content and its structure.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole a déjà fait l'objet d'une présentation, mais on revient dessus pour essayer d'aller plus loin dans son utilisation et vous montrer comment mettre en place l'authentification à deux facteurs avec un code TOTP, ainsi que la configuration d'accès en SSH ou RDP.

Guacamole, ou comment prendre le contrôle sur vos équipements SSH, RDP ou VNC via une interface Web
Vous vous êtes déjà retrouvés dans la situation où vous deviez lancer un programme, faire un dépannage, récupérer un document, ... tout en étant à distance de votre domicile ? Avec Guacamole, cela devient possible !
Guacamole, contrôler vos équipements en SSH ou RDP via une interface WebDomoPiGuillaume
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

On va en profiter pour changer d'image Docker, celle utilisée jusqu'alors n'étant plus maintenue par son développeur, oznu. Attention, celle-ci reste fonctionnelle, mais ne bénéficie pas des améliorations ou correctifs de sécurité ou de bugs qu'il pourrait y avoir ! Cela nous permet également de basculer sur les images officielles, fournies par la fondation Apache.

Nous allons donc utiliser guacd en tant que passerelle serveur et guacamole pour l'interface web, ainsi que postgres en tant que base de données.

Info ! Cet article a été écrit pour être déployé avec un fichier docker-compose et l'utilisation de dossiers en tant que volumes persistents. Pour ceux qui souhaitent déployer la stack via Portainer, il faudra penser à remplacer les dossiers (par exemple ./data) par un nom de volume (par exemple volume-guac-data), et déclarer les volumes à la fin de la stack.

Commençons par créer les répertoires nécessaires au bon fonctionnement de la stack :

mkdir -p /docker/guacamole/{data,drive,init,record}

Il faut ensuite générer le script d'initialisation de la base de données avec la commande suivante :

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > /docker/guacamole/init/initdb.sql

Dans le cas de l'utilisation de Portainer, vous pouvez créer le fichier initdb.sql dans /tmp.

Créez le fichier docker-compose.yml et collez-y le contenu suivant :

version: '2'

services:
  guacd:
    image: guacamole/guacd
    container_name: guacd
    volumes:
      - /docker/guacamole/drive:/drive:rw
      - /docker/guacamole/record:/record:rw
    restart: unless-stopped
    
  guacamole_db:
    image: postgres:13.4
    container_name: guacamole_db
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
      TZ: Europe/Paris
    volumes:
      - /docker/guacamole/init:/docker-entrypoint-initdb.d:ro
      - /docker/guacamole/data:/var/lib/postgresql/data:rw
    restart: unless-stopped

  guacamole_app:
    image: guacamole/guacamole
    container_name: guacamole_app
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRES_DATABASE: guacamole_db
      POSTGRES_HOSTNAME: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
#      TOTP_ENABLED: 'true'
    depends_on:
      - guacd
      - guacamole_db
    ports:
      - 8080:8080
    restart: unless-stopped

Lançons la stack avec la commande docker-compose up -d.

Attention ! Guacamole est accessible depuis l'adresse http://IP.HOTE.DOCKER:8080/guacamole
Après ce premier lancement, vous pouvez commenter la ligne du volume init dans le conteneur guac_db en ajoutant un # en début de ligne. Ce volume n'est utile que pour initialiser la base de données et ne sera plus utilisé.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Les identifiants par défaut sont guacadmin / guacadmin.

L'interface que vous obtenez est très sobre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Commencez par vous rendre dans les paramètres, avec le menu disponible en haut à droite en cliquant sur le nom d'utilisateur. Dans l'onglet Utilisateurs, créez un nouvel utilisateur et donnez lui les droits Administrateurs.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Une fois le nouvel utilisateur créé, déconnectez vous et reconnectez-vous avec ce dernier. Retournez dans les réglages et bloquez ou supprimez l'utilisateur par défaut guacadmin.


Sécurité

Pour activer l'authentification à double facteur avec code TOTP et renforcer la sécurité de Guacamole, c'est très simple ! Décommentez la ligne TOTP_ENABLED: 'true' dans la stack et mettez là à jour en la relançant avec la commande docker-compose up -d.

Quand vous accéderez de nouveau à Guacamole et vous identifierez avec votre identifiant, il vous sera demandé de configurer l'authentification à double facteur. Scannez le QR Code avec votre application de gestion TOTP et renseignez le code donné pour valider.

A chaque connexion, vous devrez maintenant saisir le code fourni par l'application en plus de vos identifiant et mot de passe.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Passons maintenant à la configuration des connexions, le but de Guacamole ! Dans les paramètres, rendez-vous dans l'onglet Connexions, et cliquez sur le bouton "Nouvelle Connexion".

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Donnez un nom à la connexion, et choisissez le protocole à utiliser (au choix parmi VNC, RDP, SSH, Telnet ou Kubernetes).


SSH

Le protocole SSH permet à un client (un utilisateur ou bien même une machine) d'ouvrir une session interactive sur une machine distante fin d'envoyer des commandes ou des fichiers de manière sécurisée.

Pour le configurer, choisissez SSH en tant que protocole et renseignez dans la partie Paramètres, Réseau, l'adresse IP ou nom d'hôte ainsi que le port pour le serveur que vous êtes en train de configurer (22 étant le port standard du protocole SSH), puis dans la partie Authentification, l'identifiant et son mot de passe (si vous n'enregistrez pas de mot de passe, il vous sera demandé systématiquement, pareil pour l'identifiant). Vous pouvez également personnaliser l'affichage (utile pour différencier vos différents environnements) ou encore exécuter une commande spécifique. Enfin, enregistrez cette connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

En complément, si vous cochez la case "Activer SFTP" dans la configuration de la connexion, vous aurez la possibilité de charger ou télécharger des fichiers avec votre hôte depuis votre navigateur.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

RDP

Le protocole RDP est aussi appelé communément Bureau à Distance et permet de prendre le contrôle d'un système d'exploitation comme si on était installé devant. Développé par Microsoft, il est disponible sur toutes les versions de Windows mais peut également être installé sur macOS.

Sur Windows 10 ou 11, le Bureau à Distance est disponible uniquement sur les éditions "Professionnel". Pour l'activer, rendez-vous dans le Panneau de configuration et utilisez le champ de recherche pour trouver le paramètre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Dans Guacamole, ajoutez une nouvelle connexion et choisissez cette fois le protocole RDP. Dans la partie Paramètres, Réseau, saisissez l'adresse IP ou le nom d'hôte de la machine à connecter, ainsi que le port (le port standard du protocole RDP est le 3389). Enfin, dans la partie Authentification, indiquez le nom d'utilisateur et le mot de passe. Plusieurs options matérielles sont disponibles pour transmettre le son, le microphone, les imprimantes, ou monter un partage. D'autres options sont disponibles pour améliorer les performances de la connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Connexion

En revenant sur l'accueil (accessible en cliquant sur votre nom d'utilisateur), vous retrouverez les connexions que vous aurez créé. Cliquez sur une d'entre elles pour vous retrouver connecté à l'hôte distant à travers votre navigateur web.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Astuces

Vous pouvez quitter le terminal avec la commande exit ou avec la combinaison de touches Ctrl + D. Vous pourrez alors choisir de revenir à l'accueil, de vous reconnecter, ou de vous déconnecter de Guacamole.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Lorsque vous êtes connectés, un menu contextuel est disponible en utilisant la combinaison de touches Alt + Ctrl + Shift.
Dans ce menu, vous trouverez :

  • En haut à gauche la session en cours, avec la possibilité d'en ouvrir une nouvelle, ce qui permet de naviguer entre plusieurs connexions simultanément, qui apparaîtront en bas à droite.
  • Toujours en haut, vous trouverez votre session Guacamole ou vous pouvez vous déconnecter, aller à l'accueil ou dans les paramètres.
  • Juste en-dessous, vous aurez le presse-papier Guacamole et pourrez en modifier le contenu avant de le coller dans la fenêtre.
  • Appareil correspond à la partie SFTP et vous permettra d'échanger des fichiers entre votre poste et le poste accédé à distance.
  • Vous pourrez également choisir d'afficher un clavier virtuel ou régler le zoom de l'affichage.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Conclusion

On espère que ce tutoriel mis à jour vous sera utile et vous permettra d'accéder avec Guacamole à votre infrastructure, de manière centralisée, et surtout à travers une simple interface web. On vous conseille fortement de passer par un proxy inversé (NPM par exemple) pour y accéder de l'extérieur, tout en sécurisant la connexion en https et avec un certificat Let's Encrypt. L'utilisation de la double authentification permet également de renforcer le contrôle d'accès à votre infrastructure.

Si vous avez des questions sur cet article, n'hésitez pas à laisser des commentaires ou à venir échanger avec la communauté sur le groupe Telegram.

Comment administrer une base de données avec Adminer ?

Comment administrer une base de données avec Adminer ?

Que ce soit pour un site web ou des services auto-hébergés, vous disposez certainement d'une ou plusieurs bases de données, que vous devez administrer plus ou moins régulièrement. Vous connaissez probablement phpMyAdmin, l'un des outils les plus utilisés pour ça. Cette interface a été créée initialement pour gérer les bases de données MySQL depuis un serveur php. De nombreux hébergeurs, gratuits comme payants, le proposent, ce qui évite à l'utilisateur d'avoir à l'installer.

Comment administrer une base de données avec Adminer ?

Cette interface pratique permet d'exécuter, très facilement et sans grandes connaissances en bases de données, des requêtes comme les créations de table de données, insertions, mises à jour, suppressions et modifications de structure de la base de données, ainsi que l'attribution et la révocation de droits et l'import/export. Ce système permet de sauvegarder facilement une base de données sous forme de fichier .sql et d'y transférer ses données, même sans connaître SQL. L'utilisation de requêtes SQL reste toutefois possible.

Pour l'installation et l'utilisation de phpMyAdmin, je ne peux que vous rediriger vers la documentation officielle.

L'alternative : Adminer

Aujourd’hui je vous propose de découvrir un outil beaucoup moins connu que phpMyadmin, mais tout aussi efficace: Adminer.

Comment administrer une base de données avec Adminer ?

Adminer est outil léger et pratique qui remplit exactement le même rôle que phpMyadmin : vous permettre de gérer vos bases et tables MySQL en passant par une interface web.

Là où Adminer se démarque de phpMyAdmin, c’est par sa légèreté et sa simplicité d’installation. A l’inverse de phpMyadmin, qui nécessite un peu d’effort à l’installation et un minimum de configuration, Adminer se compose d’un seul et unique fichier php, qu’il vous suffit de déposer dans n’importe quel répertoire accessible sur le web. Adminer est disponible pour MySQL, PostgreSQL, SQLite, MS SQL et Oracle.

Pour l'installation, c'est très simple ! Il suffit de télécharger le fichier php (depuis la page github du développeur) sur votre hébergement, dans un dossier accessible et de vous rendre ensuite à l'adresse www.votresite.com/adminer.php .

Comment administrer une base de données avec Adminer ?

Il vous suffit alors de renseigner votre identifiant et mot de passe MySQL (et accessoirement un nom de base de données, mais ce n’est pas obligatoire) et de vous authentifier.

Comme vous pouvez le voir, l’interface est disponible en plusieurs langues, dont le Français. Toutes les fonctions qu’on peut attendre sont là : gestion (création, édition et suppression) de base de données, gestion des tables, des champs, importation de fichier SQL, exécution de requête SQL directe, gestion des utilisateurs MySQL, privilèges…

Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?

Il est possible d'étendre les fonctionnalités d'Adminer en lui ajoutant des plugins, pour ajouter le support d'extensions xml ou json dans les exports, ou encore changer le thème de l'interface, en ajoutant le fichier adminer.css aux côtés du fichier adminer.php.


Mise en place d'Adminer dans un environnement Docker

Avec les conteneurs que nous mettons en place au travers des articles rédigés, nous pouvons avoir besoin d'accéder à une base de données, pour corriger des entrées, exporter ou importer des données, ... Il est également possible d'ajouter Adminer en tant que conteneur Docker, dans une stack existante (ou dans sa propre stack).

Prenons l'exemple de la stack Nextcloud, qui contient une base de données mariaDB. Nous rajoutons un service adminer comme suivant :

version: '3.8'

services:
  nextcloud_db:
.....

  nextcloud_app:
.....

  adminer:
    image: adminer
    container_name: adminer
    ports:
      - 8080:8080  # Port sur lequel vous accéderez à l'interface web d'Adminer
    depends_on:
      - nextcloud_db  # Permet de s'assurer que le conteneur de la base de données est opérationnel avant de lancer le conteneur Adminer
    restart: unless-stopped

En relançant la stack avec la commande docker-compose up -d ou depuis Portainer, vous devriez pouvoir accéder à Adminer depuis votre navigateur à l'adresse http://<IP.HOTE.DOCKER>:8080. Le serveur est le nom du conteneur, et les identifiants sont ceux que vous avez défini dans le fichier .env.

Comment administrer une base de données avec Adminer ?

Conclusion

Au final, quel est l'intérêt d'Adminer par rapport à phpMyAdmin ? Comme je l'ai dit, la simplicité d'installation ! Un simple fichier php à déposer où bon vous semble, ou bien quelques lignes pour lancer un conteneur et c'est terminé ! L'autre point intéressant, c'est l'absence de configuration à faire. Adminer est immédiatement fonctionnel. Enfin, dernier point non négligeable, et vous l'aurez peut-être remarqué, mais étant bien plus léger, Adminer est également plus réactif à l'utilisation.

Si vous avez des questions sur cet article, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté pour échanger.

How to configure Search Verticals on a SharePoint site

Some time ago, I introduced you to the ability to alter SharePoint search settings in modern SharePoint. There are a few ways to customize search results, and one of the things you can adjust is a Search Vertical. So in today’s post, I would like to explain what a Search Vertical is and how to configure Search Verticals on a SharePoint site.

What is a SharePoint Search Vertical

A search vertical is a subset of search results you get when you search for something in SharePoint. You know, when you search for something on Google and get a bunch of results, you can filter them into different types by clicking on different tabs available under the search box (i.e., News, Images, Videos, etc.)

We have the same capability in SharePoint as well. When you search for something in SharePoint, you get a bunch of results. However, you can also separate them into more relevant categories (Files, Sites, News, Images) by clicking on appropriate tabs. So, for example, if I am searching for a keyword and just want to limit results to files, I will click on the Files tab. If I want only to search for news and announcements, I will click on the News Tab.

To summarize, SharePoint Search Verticals are tabs that allow you to filter results and present results based on some filter/parameter/scope.

Where can you configure SharePoint Search Verticals?

Just as I mentioned in an earlier post, you can configure SharePoint search in two places:

  • SharePoint Site
  • Tenant (Global) Level

Since the steps for both locations are almost identical, I will demonstrate how to configure SharePoint Search verticals at the site level. So if you are a Site or Team Owner, you can easily follow the below instructions.

To alter SharePoint Search Verticals at the global (tenant) level, you would need to adjust those verticals within the Search & Intelligence Admin Center, and you also need to be a global Microsoft 365 Administrator to do so.

An example of Search Verticals Customization area within the Global Search & Intelligence Center

An example of a Search Verticals Customization area within the Global Search & Intelligence Center

How to configure Search Verticals on a SharePoint site

Make sure you are the Site Owner of a given site. If you are a regular site member, you would be unable to customize this.

  1. On a given SharePoint Site, click Gear Icon > Site Information
  2. Click View all site settings
  3. Click Configure search settings under Microsoft Search
  4. Once you click on the Configure search settings, it will show you the default Microsoft Search Settings page and will default to the Insights page. Click on the Verticals tab to get into the Verticals customization page.
  5. Once you click on the Verticals Tab, it will show you the default Vertical Tabs available when a user searches for something on a SharePoint site

How to disable the default Search Vertical

By default, it shows the 5 verticals shown above. However, you can disable some of them if necessary. Here is how to achieve this:

  1. Double-click on a vertical you would like to disableSearch Verticals on a SharePoint site
  2. Click on the Edit button
  3. Click on the State toggle to disable the vertical, then click on the Update vertical buttonSearch Verticals on a SharePoint site
  4. Click Done
  5. The table of SharePoint verticals will now display your customizations. For example, in my case, I disabled Sites and Images Verticals.Search Verticals on a SharePoint site
  6. It might take 1-2 hours for a change to take place. Here is the end result (all the disabled vertical tabs are gone when the user executes the search at the site level)

Just a note, there are other ways to configure and customize the vertical. For example, you can customize the default vertical by adding a custom filter. I will demonstrate how to do so below, where I provide instructions on creating a custom vertical.

How to create a custom search vertical on a SharePoint site

You might also have a scenario where you would like to create a custom search vertical that will filter for a certain type of results. To take advantage of this capability, you must get familiar with Keyword Query Language and Managed Properties. It can get pretty sophisticated in terms of custom verticals you can create so that I will use a simple example for this demo. I would like to create a custom search vertical that will only show/filter results that are PDF file type and only contain the word “blue” in the file name.

  1. Navigate to the Microsoft Search Settings screen, as shown earlier in the post
  2. Click + Add buttonSearch Verticals on a SharePoint site
  3. To create a vertical, you must supply several pieces of information. The first one is the name of the Vertical (Tab) you are creating. Give it a name and click Next.Search Verticals on a SharePoint site
  4. Next, choose the source of the content. Just click the radio button next to SharePoint, then click Next. There are ways to bring in other, non-SharePoint sources (i.e., 3rd party databases, CRMs, etc.), but this is pretty advanced and is a task for your IT Team. In our case, we will bring content just from SharePoint.
  5. Next, you need to specify a KQL query that will filter the results to certain ones. Again, I suggest you get familiar with Keyword Query Language (KQL) and managed properties to see what is possible. To help you understand which properties can be used for the KQL query string, it actually lists all the managed properties under the Queryable properties section.
  6. In my case, the KQL String looks like this: filetype:PDF AND filename:*blue*, which limits results to PDFs and only searches filenames containing the word “Blue.” Click Next.
  7. On the next screen, you can choose to add an optional filter. It is not mandatory, you can skip this step, but just so that you know which filter we are talking about, it is a filter drop-down that appears under the search results, allowing users to filter results even further.
  8. If you would like to add an optional filter, click Add a filter
  9. It will list various properties/managed properties you can filter by. In our case, let’s add LastModifiedTime so users can filter further by the last modified date. Click Next.
  10. Next, you can add a custom name to the filter above, then click Add
  11. You can add multiple filters, but in our case, let’s just stick to one. Click Next.
  12. On the next screen, review the changes you made. Make sure to enable the vertical (it is disabled by default), so click on the State radio button to ensure it says Enabled. Click Create Vertical button.
  13. You will get a Vertical created Confirmation Message. Click Done.
  14. This is what the end result will look like in the Verticals configuration screen
  15. It might take a few hours for the Vertical Tab to appear when you/users execute a search. Here is the end result. You will notice a custom tab created when I do a keyword search. Since we customized our search to only show PDFs and files that contain the word “Blue” – that is precisely what appears when you click on the custom vertical Tab. In addition, we also have the Last Modified Filter as well.

Important Notes about Search Verticals on a SharePoint site

  1. You cannot delete default verticals/tabs (All, Files, Sites, News, Images); you can only disable them. You can only delete custom (new) verticals/tabs created by you.
  2. As indicated earlier in this article, you can also create a custom search vertical in Search & Intelligence Admin Center that will impact global search results. But this requires you to be a Microsoft 365 Global Admin role.

The post How to configure Search Verticals on a SharePoint site appeared first on SharePoint Maven.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Guacamole a déjà fait l'objet d'une présentation, mais on revient dessus pour essayer d'aller plus loin dans son utilisation et vous montrer comment mettre en place l'authentification à deux facteurs avec un code TOTP, ainsi que la configuration d'accès en SSH ou RDP.

Guacamole, ou comment prendre le contrôle sur vos équipements SSH, RDP ou VNC via une interface Web
Vous vous êtes déjà retrouvés dans la situation où vous deviez lancer un programme, faire un dépannage, récupérer un document, ... tout en étant à distance de votre domicile ? Avec Guacamole, cela devient possible !
Guacamole, contrôler vos équipements en SSH ou RDP via une interface WebDomoPiGuillaume
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

On va en profiter pour changer d'image Docker, celle utilisée jusqu'alors n'étant plus maintenue par son développeur, oznu. Attention, celle-ci reste fonctionnelle, mais ne bénéficie pas des améliorations ou correctifs de sécurité ou de bugs qu'il pourrait y avoir ! Cela nous permet également de basculer sur les images officielles, fournies par la fondation Apache.

Nous allons donc utiliser guacd en tant que passerelle serveur et guacamole pour l'interface web, ainsi que postgres en tant que base de données.

Info ! Cet article a été écrit pour être déployé avec un fichier docker-compose et l'utilisation de dossiers en tant que volumes persistents. Pour ceux qui souhaitent déployer la stack via Portainer, il faudra penser à remplacer les dossiers (par exemple ./data) par un nom de volume (par exemple volume-guac-data), et déclarer les volumes à la fin de la stack.

Commençons par créer les répertoires nécessaires au bon fonctionnement de la stack :

mkdir -p /docker/guacamole/{data,drive,init,record}

Il faut ensuite générer le script d'initialisation de la base de données avec la commande suivante :

docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgres > /docker/guacamole/init/initdb.sql

Dans le cas de l'utilisation de Portainer, vous pouvez créer le fichier initdb.sql dans /tmp.

Créez le fichier docker-compose.yml et collez-y le contenu suivant :

version: '2'

services:
  guacd:
    image: guacamole/guacd
    container_name: guacd
    volumes:
      - /docker/guacamole/drive:/drive:rw
      - /docker/guacamole/record:/record:rw
    restart: unless-stopped
    
  guacamole_db:
    image: postgres:13.4
    container_name: guacamole_db
    environment:
      PGDATA: /var/lib/postgresql/data/guacamole
      POSTGRES_DB: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
      TZ: Europe/Paris
    volumes:
      - /docker/guacamole/init:/docker-entrypoint-initdb.d:ro
      - /docker/guacamole/data:/var/lib/postgresql/data:rw
    restart: unless-stopped

  guacamole_app:
    image: guacamole/guacamole
    container_name: guacamole_app
    environment:
      GUACD_HOSTNAME: guacd
      POSTGRES_DATABASE: guacamole_db
      POSTGRES_HOSTNAME: guacamole_db
      POSTGRES_PASSWORD: GUAC_DB_PASSWORD
      POSTGRES_USER: guacdb_user
#      TOTP_ENABLED: 'true'
    depends_on:
      - guacd
      - guacamole_db
    ports:
      - 8080:8080
    restart: unless-stopped

Lançons la stack avec la commande docker-compose up -d.

Attention ! Guacamole est accessible depuis l'adresse http://IP.HOTE.DOCKER:8080/guacamole
Après ce premier lancement, vous pouvez commenter la ligne du volume init dans le conteneur guac_db en ajoutant un # en début de ligne. Ce volume n'est utile que pour initialiser la base de données et ne sera plus utilisé.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Les identifiants par défaut sont guacadmin / guacadmin.

L'interface que vous obtenez est très sobre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Commencez par vous rendre dans les paramètres, avec le menu disponible en haut à droite en cliquant sur le nom d'utilisateur. Dans l'onglet Utilisateurs, créez un nouvel utilisateur et donnez lui les droits Administrateurs.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Une fois le nouvel utilisateur créé, déconnectez vous et reconnectez-vous avec ce dernier. Retournez dans les réglages et bloquez ou supprimez l'utilisateur par défaut guacadmin.


Sécurité

Pour activer l'authentification à double facteur avec code TOTP et renforcer la sécurité de Guacamole, c'est très simple ! Décommentez la ligne TOTP_ENABLED: 'true' dans la stack et mettez là à jour en la relançant avec la commande docker-compose up -d.

Quand vous accéderez de nouveau à Guacamole et vous identifierez avec votre identifiant, il vous sera demandé de configurer l'authentification à double facteur. Scannez le QR Code avec votre application de gestion TOTP et renseignez le code donné pour valider.

A chaque connexion, vous devrez maintenant saisir le code fourni par l'application en plus de vos identifiant et mot de passe.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Passons maintenant à la configuration des connexions, le but de Guacamole ! Dans les paramètres, rendez-vous dans l'onglet Connexions, et cliquez sur le bouton "Nouvelle Connexion".

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Donnez un nom à la connexion, et choisissez le protocole à utiliser (au choix parmi VNC, RDP, SSH, Telnet ou Kubernetes).


SSH

Le protocole SSH permet à un client (un utilisateur ou bien même une machine) d'ouvrir une session interactive sur une machine distante fin d'envoyer des commandes ou des fichiers de manière sécurisée.

Pour le configurer, choisissez SSH en tant que protocole et renseignez dans la partie Paramètres, Réseau, l'adresse IP ou nom d'hôte ainsi que le port pour le serveur que vous êtes en train de configurer (22 étant le port standard du protocole SSH), puis dans la partie Authentification, l'identifiant et son mot de passe (si vous n'enregistrez pas de mot de passe, il vous sera demandé systématiquement, pareil pour l'identifiant). Vous pouvez également personnaliser l'affichage (utile pour différencier vos différents environnements) ou encore exécuter une commande spécifique. Enfin, enregistrez cette connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

En complément, si vous cochez la case "Activer SFTP" dans la configuration de la connexion, vous aurez la possibilité de charger ou télécharger des fichiers avec votre hôte depuis votre navigateur.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

RDP

Le protocole RDP est aussi appelé communément Bureau à Distance et permet de prendre le contrôle d'un système d'exploitation comme si on était installé devant. Développé par Microsoft, il est disponible sur toutes les versions de Windows mais peut également être installé sur macOS.

Sur Windows 10 ou 11, le Bureau à Distance est disponible uniquement sur les éditions "Professionnel". Pour l'activer, rendez-vous dans le Panneau de configuration et utilisez le champ de recherche pour trouver le paramètre.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Dans Guacamole, ajoutez une nouvelle connexion et choisissez cette fois le protocole RDP. Dans la partie Paramètres, Réseau, saisissez l'adresse IP ou le nom d'hôte de la machine à connecter, ainsi que le port (le port standard du protocole RDP est le 3389). Enfin, dans la partie Authentification, indiquez le nom d'utilisateur et le mot de passe. Plusieurs options matérielles sont disponibles pour transmettre le son, le microphone, les imprimantes, ou monter un partage. D'autres options sont disponibles pour améliorer les performances de la connexion.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Connexion

En revenant sur l'accueil (accessible en cliquant sur votre nom d'utilisateur), vous retrouverez les connexions que vous aurez créé. Cliquez sur une d'entre elles pour vous retrouver connecté à l'hôte distant à travers votre navigateur web.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Astuces

Vous pouvez quitter le terminal avec la commande exit ou avec la combinaison de touches Ctrl + D. Vous pourrez alors choisir de revenir à l'accueil, de vous reconnecter, ou de vous déconnecter de Guacamole.

Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Lorsque vous êtes connectés, un menu contextuel est disponible en utilisant la combinaison de touches Alt + Ctrl + Shift.
Dans ce menu, vous trouverez :

  • En haut à gauche la session en cours, avec la possibilité d'en ouvrir une nouvelle, ce qui permet de naviguer entre plusieurs connexions simultanément, qui apparaîtront en bas à droite.
  • Toujours en haut, vous trouverez votre session Guacamole ou vous pouvez vous déconnecter, aller à l'accueil ou dans les paramètres.
  • Juste en-dessous, vous aurez le presse-papier Guacamole et pourrez en modifier le contenu avant de le coller dans la fenêtre.
  • Appareil correspond à la partie SFTP et vous permettra d'échanger des fichiers entre votre poste et le poste accédé à distance.
  • Vous pourrez également choisir d'afficher un clavier virtuel ou régler le zoom de l'affichage.
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web
Guacamole, contrôler vos équipements en SSH ou RDP via une interface Web

Conclusion

On espère que ce tutoriel mis à jour vous sera utile et vous permettra d'accéder avec Guacamole à votre infrastructure, de manière centralisée, et surtout à travers une simple interface web. On vous conseille fortement de passer par un proxy inversé (NPM par exemple) pour y accéder de l'extérieur, tout en sécurisant la connexion en https et avec un certificat Let's Encrypt. L'utilisation de la double authentification permet également de renforcer le contrôle d'accès à votre infrastructure.

Si vous avez des questions sur cet article, n'hésitez pas à laisser des commentaires ou à venir échanger avec la communauté sur le groupe Telegram.

Comment administrer une base de données avec Adminer ?

Comment administrer une base de données avec Adminer ?

Que ce soit pour un site web ou des services auto-hébergés, vous disposez certainement d'une ou plusieurs bases de données, que vous devez administrer plus ou moins régulièrement. Vous connaissez probablement phpMyAdmin, l'un des outils les plus utilisés pour ça. Cette interface a été créée initialement pour gérer les bases de données MySQL depuis un serveur php. De nombreux hébergeurs, gratuits comme payants, le proposent, ce qui évite à l'utilisateur d'avoir à l'installer.

Comment administrer une base de données avec Adminer ?

Cette interface pratique permet d'exécuter, très facilement et sans grandes connaissances en bases de données, des requêtes comme les créations de table de données, insertions, mises à jour, suppressions et modifications de structure de la base de données, ainsi que l'attribution et la révocation de droits et l'import/export. Ce système permet de sauvegarder facilement une base de données sous forme de fichier .sql et d'y transférer ses données, même sans connaître SQL. L'utilisation de requêtes SQL reste toutefois possible.

Pour l'installation et l'utilisation de phpMyAdmin, je ne peux que vous rediriger vers la documentation officielle.

L'alternative : Adminer

Aujourd’hui je vous propose de découvrir un outil beaucoup moins connu que phpMyadmin, mais tout aussi efficace: Adminer.

Comment administrer une base de données avec Adminer ?

Adminer est outil léger et pratique qui remplit exactement le même rôle que phpMyadmin : vous permettre de gérer vos bases et tables MySQL en passant par une interface web.

Là où Adminer se démarque de phpMyAdmin, c’est par sa légèreté et sa simplicité d’installation. A l’inverse de phpMyadmin, qui nécessite un peu d’effort à l’installation et un minimum de configuration, Adminer se compose d’un seul et unique fichier php, qu’il vous suffit de déposer dans n’importe quel répertoire accessible sur le web. Adminer est disponible pour MySQL, PostgreSQL, SQLite, MS SQL et Oracle.

Pour l'installation, c'est très simple ! Il suffit de télécharger le fichier php (depuis la page github du développeur) sur votre hébergement, dans un dossier accessible et de vous rendre ensuite à l'adresse www.votresite.com/adminer.php .

Comment administrer une base de données avec Adminer ?

Il vous suffit alors de renseigner votre identifiant et mot de passe MySQL (et accessoirement un nom de base de données, mais ce n’est pas obligatoire) et de vous authentifier.

Comme vous pouvez le voir, l’interface est disponible en plusieurs langues, dont le Français. Toutes les fonctions qu’on peut attendre sont là : gestion (création, édition et suppression) de base de données, gestion des tables, des champs, importation de fichier SQL, exécution de requête SQL directe, gestion des utilisateurs MySQL, privilèges…

Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?
Comment administrer une base de données avec Adminer ?

Il est possible d'étendre les fonctionnalités d'Adminer en lui ajoutant des plugins, pour ajouter le support d'extensions xml ou json dans les exports, ou encore changer le thème de l'interface, en ajoutant le fichier adminer.css aux côtés du fichier adminer.php.


Mise en place d'Adminer dans un environnement Docker

Avec les conteneurs que nous mettons en place au travers des articles rédigés, nous pouvons avoir besoin d'accéder à une base de données, pour corriger des entrées, exporter ou importer des données, ... Il est également possible d'ajouter Adminer en tant que conteneur Docker, dans une stack existante (ou dans sa propre stack).

Prenons l'exemple de la stack Nextcloud, qui contient une base de données mariaDB. Nous rajoutons un service adminer comme suivant :

version: '3.8'

services:
  nextcloud_db:
.....

  nextcloud_app:
.....

  adminer:
    image: adminer
    container_name: adminer
    ports:
      - 8080:8080  # Port sur lequel vous accéderez à l'interface web d'Adminer
    depends_on:
      - nextcloud_db  # Permet de s'assurer que le conteneur de la base de données est opérationnel avant de lancer le conteneur Adminer
    restart: unless-stopped

En relançant la stack avec la commande docker-compose up -d ou depuis Portainer, vous devriez pouvoir accéder à Adminer depuis votre navigateur à l'adresse http://<IP.HOTE.DOCKER>:8080. Le serveur est le nom du conteneur, et les identifiants sont ceux que vous avez défini dans le fichier .env.

Comment administrer une base de données avec Adminer ?

Conclusion

Au final, quel est l'intérêt d'Adminer par rapport à phpMyAdmin ? Comme je l'ai dit, la simplicité d'installation ! Un simple fichier php à déposer où bon vous semble, ou bien quelques lignes pour lancer un conteneur et c'est terminé ! L'autre point intéressant, c'est l'absence de configuration à faire. Adminer est immédiatement fonctionnel. Enfin, dernier point non négligeable, et vous l'aurez peut-être remarqué, mais étant bien plus léger, Adminer est également plus réactif à l'utilisation.

Si vous avez des questions sur cet article, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté pour échanger.

An Unfortunate `API access` UI in the SharePoint Admin Center

Orchestry is a partner of ours at Sympraxis. (Ask us about them anytime!) We love their toolset and recommend them frequently to our clients to improve their governance and provisioning activities. The stuff they build is incredibly powerful – and reliable.

That’s why I was really surprised when I added the Orchestry People List Web Part to a site home page and I didn’t see the actual people, just what looked like placeholders for them. The counts were right, but no details. (This Web Part is better than the out of the box People Web Part because you can set it to show Site Owners and/or Site Members automagically.)

As I am wont to do, I asked my friends at Orchestry what the scoop was. Turns out, it wasn’t an Orchestry problem. The issue was rooted in a really bad user interface in the SharePoint Admin Center.

Here’s what happened. Way back in March, I installed the PnP Modern Search Web Parts. They are just about my favorite tools to use with SharePoint, and I install them as soon as I start working in a tenant. In many cases, I don’t bother the Global Admin to approve the Microsoft Graph permissions for PnP Modern Search, because we can accomplish what we need just using SharePoint Search.

In the screenshot below, you can see the pending request for PnP Modern Search (red box) as well as the Approved requests which Orchestry needed (green box).

The unfortunate part of his UI is because PnP Modern Search “asked” for User.Read.All first, it still “owns” that request.

What we should have seen in the UI was four requests for Orchestry, like so:

Because PnP Modern Search had already asked for User.Read.All, there were only three. The Global Admin approved the three and we called it a day.

Note what happens in that UI after the requests are approved. We lose all the info about which app needed the permissions and when they were granted. No bueno.

Leaving the security implications of all this aside (but keeping in mind this UI exists only for security purposes!), there’s no way for us to see what solution requested the API access, when it was requested, or who approved it after the fact.

Believe it or not, the solution to fix the Orchestry Web Part issues was to approve the User.Read.All permission for PnP Moden Search. That makes sense, right? (No, no it doesn’t at all.)

Final Score:

  • Orchestry 1
  • Microsoft 0

Cleaning Up Redirect Sites in SharePoint Online

As our tenants evolve, we end up renaming sites and/or changing their URLs. When we change the URL of a site in the SharePoint Admin Center, the URL changes, just like we asked. SharePoint also leaves the old site in place, but converts it into a Redirect Site. So if we had a site at /sites/Procurement and we decide to change it to /sites/Purchasing (maybe due to a reorganization), people who have bookmarked the Procurement site will be redirected to the Purchasing site.

The Redirect Sites we end up with aren’t shown in the Active Sites listing. The only way we can figure out they are even there is to use PowerShell.

In most cases, we want that redirection to occur. But what about the cases where we mistakenly set up a site at the wrong URL? For example, maybe we create a site at /sites/HS by mistake, so we change it to /sites/HR. Later, we may have a new department called Highly Socialized. (Roll with it.) That /sites/HS URL is already “used up” by the Redirect Site. If we try to create a site with the /sites/HS URL, we’ll end up with /sites/HS2. SharePoint helpfully avoids a naming collision by adding the 2, and then a 3, then 4 – see if you can spot the pattern!

This becomes especially important if you’re creating sites with their URLs matching some sort of coding scheme. For example, for a property management company we work with, each Property has its own site with a URL using the Property Code. The property with a Property Code of 211 lives at /sites/211. By using that rigid connection to a property of the Property, we can guarantee unique URLs and keep them simple. Something like /sites/TheHilton-PhoenixEast just aren’t that fun to type!

If we mistakenly create the site for Property Code 211 at /sites/212 and then rename the URL to the correct /sites/211, we can get ourselves into trouble. What happens when we need to create a site for property 212? SharePoint will create the URL /sites/2122, which just isn’t right!

Therefore, we often want to clean out some of the Redirect Sites. Here’s the simple PowerShell to do this. Redirect Sites use the Site Template RedirectSite#0.

# Import modules
Import-Module PnP.PowerShell

$adminSiteUrl = "https://tenantName-admin.sharepoint.com"

Connect-PnPOnline -Url $adminSiteUrl -Interactive

$redirectSites = Get-PnPTenantSite -Template "RedirectSite#0"

########################################################################
# STOP HERE - Validate the redirect sites you actually want to remove. #
########################################################################

foreach ($site in $redirectSites) {
    Remove-PnPTenantSite -Url $site.Url -Force    
}

Note the big warning at line 10. Most likely, you won’t want to delete ALL the Redirect Sites. Once you’ve found them all, figure out what filter you might want to apply to $redirectSites before you run the foreach loop. Maybe you’ll do something like:

$redirectSites = Get-PnPTenantSite -Template "RedirectSite#0" | Where-Object { $_.Url -eq "https://tenantName.sharepoint.com/sites/212"

or

$redirectSites = Get-PnPTenantSite -Template "RedirectSite#0" | Where-Object { $_.Url -gt "https://tenantName.sharepoint.com/sites/211"

Good site hygiene is important, if only to protect your sanity. And use the URL renaming function thoughtfully. Don’t think of it as an easy way to clean up your mistakes, or your tenant may end up littered with Redirect Sites you don’t even know you have.

Resources

Manage site redirects – SharePoint in Microsoft 365 | Microsoft Docs

How to disable the creation of private and shared channels in Microsoft Teams

Some time ago, I introduced you to various channels we have in Microsoft Teams. This post specifically focuses on the two channel types we have in Teams: Private Channels and Shared Channels. Both channels allow for secure conversations and file storage for a subset of users in a given Team. While great in theory, they do create separate workspaces and SharePoint sites behind the scenes. And in some organizations or use cases, you might not necessarily want to create those separate areas and would like to leave all the content easily accessible by users and administrators. So in such cases, we need to prevent the ability to create Private and Shared Channels, and that is exactly what this article is all about.

The issues with Private and Shared channels

These are not precisely issues; I guess more of “by design,” but when you create either a Private or Shared Channel, the following are true:

  1. It creates a separate SharePoint site altogether, independent from the main SharePoint team site
  2. Private and Shared Channels lack certain features available in Standard Channels (i.e., the ability to add Channel Calendar app, the ability to add Plan from Planner, and a few others.), making the channel use a bit frustrating to users. I explained those limitations in this article.
  3. Team Owners might end up in a situation when they are locked out of a Private or Shared Channel. For example, if a regular member creates a Private Channel and does not invite the Team Owner to it, the Team Owner won’t have access to the conversations or files stored within the Private Channel!
  4. While we can create a max of 200 Shared Channels within a Team, we are only limited to a maximum of 30 Private Channels within a team, making some of the use cases for those types of channels not relevant
  5. Additional SharePoint sites created as a result of Private and Shared channels might impact Governance rules you may have set in your organization

Long story short, there might be situations when you would like to prevent users from creating Private and Shared channels. Luckily, we do have ways to prevent the creation of Private Channels in Teams, and that’s what I want to explain to you today. You can disable Private and Shared Channel creation in two ways: Team Level and Teams Admin Level.

Team Level

Disable Private Channel creation

This option allows Team Owners to disable Private Channel creation for their particular Team. To do so:

  1. Click three dots next to the team name, then click on Manage team
  2. Click on Settings Tab, expand Member permissions and uncheck the box next to Allow members to create private channelsdisable the creation of private and shared channels
  3. The luxury of Private Channel Creation will now only be limited to Team Owners!

Disable Shared Channel creation

Unlike Private Channels that can be created by regular Team Members, Shared Channels can only be created by Team Owners. As such, there is no setting in Teams Settings for the Team Owner to disable Shared Channel creation (since this capability is only limited to Team Owners anyway).

Admin Center Level

This option allows Teams Administrators or Microsoft 365 Global Admins to disable Private and shared channel creation for the whole tenant (all teams at once).

  1. Access Microsoft 365 Admin Center by clicking Microsoft 365 App Launcher > Admin
  2. Under Admin centers, click Teams
  3. Under Teams, click Teams policies
  4. Click on the Global (Org-wide default) policydisable the creation of private and shared channels
  5. Uncheck (switch the toggle to off) next to Create private channels or Create shared channels and click Applydisable the creation of private and shared channels
  6. This will remove the ability for anyone (Team Owners or Team Members) to create Private and Shared channels within Teams

The post How to disable the creation of private and shared channels in Microsoft Teams appeared first on SharePoint Maven.

How to change the expiration date for Teams Meeting Recordings

One of the housekeeping items I encourage individual users and Admins to do is adjust the duration that Teams recording is kept in SharePoint/OneDrive. Many users assume it is kept there indefinitely, but this is not the case. Video files take up quite a bit of storage space. Multiply each file by the number of meetings you have, and you get the idea. Luckily, there is a way for both Admins and individual team members to adjust the duration/threshold, and that is what I want to explain in this post.

Default Expiration of the videos

First, it is important to note that Teams recordings are now saved in New Stream (Stream on SharePoint). Click here to learn more about the differences between Stream Classic and Stream on SharePoint. The default video threshold is 120 days from the recording date. After that, the video will be deleted and end up in the SharePoint Recycle Bin, where it will stay for 93 days and then will be purged forever.

An example of an email sent to the user once the Teams Recording stored in their OneDrive is expired and deleted

How to change the expiration of the individual Teams Meeting recordings

If you just ended the Teams meeting, recorded it, and want to extend the duration of the recording beyond 120 days, you have a few ways to do so.

Option 1: Access the recording from Microsoft Teams

  1. Click on the video from the Microsoft Teams interface
  2. You will see the video player open in SharePoint Online and will see the default expiration settings as well
  3. To change the expiration date, click on the Expiration box above and change the date accordingly. You can extend it by a certain duration, set it to expire on a certain date, or remove the expiration date altogether.Teams Meeting Recordings

Option 2: Access the recording from SharePoint

Since all the video recordings are stored in either SharePoint or OneDrive, you can also change the expiration date from the SharePoint side. By default, the meeting recording is saved within a channel folder in the Recordings subfolder.

Teams Meeting Recordings

To change the expiration date for Teams Meeting Recordings in SharePoint:

  1. Click the checkbox next to the video recording, then open up a Document Information Panel by clicking “i” in a circle
  2. Once you do the above, you will see the Document Information Panel (DIP) open up on the side that will show the default expiration as well
  3. Click on the expiration date field to change itTeams Meeting Recordings

How to change the expiration date policies for Teams Meeting Recordings in the Teams Admin Center

As a Teams Administrator, you can adjust the default duration for Teams Meeting Recordings. Here is how to achieve this.

  1. Navigate to Microsoft 365 Admin Center by clicking on the Microsoft App Launcher > Admin
  2. Under Admin centers, click on Teams
  3. Under Meetings, click Meeting policies
  4. Click on the Global (Org-wide default) policy
  5. Scroll down to Recording & transcription section. There, you will be able to either disable meeting recording expiration altogether or change the default expiration duration.Teams Meeting Recordings

The post How to change the expiration date for Teams Meeting Recordings appeared first on SharePoint Maven.

❌
❌