Tag: Governance
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Prevent Guests from Being Added to a Specific Microsoft 365 Group or Microsoft Teams team using PnP PowerShell
Introduction By default, guest access for Microsoft 365 groups is enabled within the tenant. This can be controlled either to allow or block guest access at the tenant level or for individual Microsoft 365 groups / Teams. For more information, check out Manage guest access in Microsoft 365 groups.
PowerShell Script to Prevent Guest Access Below is a PowerShell script that allows you to disable/enable guest access for specific Microsoft 365 groups.
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Deletion of sharing links with PowerShell
Deletion of sharing links with PowerShell As organisations look to deploy Copilot for Microsoft 365, ensuring the security and proper governance of shared content is important. The rollout of Copilot introduces advanced AI capabilities across Microsoft 365 apps using content from SharePoint/OneDrive, making it even more essential to manage sharing links judiciously to tackle the issue of oversharing.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Restrict certain SharePoint sites from tenant search and Copilot for M365 using PowerShell
Excluding certain SharePoint sites from search would mean the contents from the excluded sites won’t be available to M365 tenant search and Copilot for M365 using Restricted SharePoint Search feature.
The downsides using this feature are:
Limited Findability: By excluding certain SharePoint sites from search, you limit the findability of data. Users would need to know the specific sites where the data resides in order to search for it. This can hinder efficient data retrieval and records management.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
posts
SharePoint Search: Excluding Columns from Search Results
SharePoint Search: Excluding Columns from Search Results SharePoint empowers users to manage and organize vast amounts of data efficiently. However, not all data within a SharePoint site might need to be searchable. Do you miss the functionality to control visibility of sensitive or irrelevant information in column.
The Challenge You might have encountered instances where you need certain columns in your SharePoint lists or libraries to be excluded from search results.
posts
Sharing Options Updates - Send Email Button Greyed Out
Sharing Options Updates - Send Email button greyed out Starting from March 2024, there has been a notable change in SharePoint’s sharing options. If a user is not allowed to share on a SharePoint site (for instance, when a user is a member and only owners have sharing privileges), the Send Email button appears greyed out. Additionally, a warning message is displayed: Sharing is limited on this item. You can only copy links for people who have existing access, and you can’t invite anyone new.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
Tag: M365
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Managing Microsoft 365 Group Settings with PnP PowerShell and Microsoft Graph
Introduction Managing Microsoft 365 Group settings is crucial for maintaining a compliant and secure environment.PowerShell and Microsoft Graph can be used to configure various group settings, including naming policies, guest access, and more.
As a regular user of PnP PowerShell, I aimed to replicate the functionality of the Microsoft Entra cmdlets for configuring group settings using PnP PowerShell.
Example Script to Update naming policy Settings The following PowerShell script updates the naming group settings using the Microsoft Graph API and PnP PowerShell.
posts
Sharing Options Updates - Send Email Button Greyed Out
Sharing Options Updates - Send Email button greyed out Starting from March 2024, there has been a notable change in SharePoint’s sharing options. If a user is not allowed to share on a SharePoint site (for instance, when a user is a member and only owners have sharing privileges), the Send Email button appears greyed out. Additionally, a warning message is displayed: Sharing is limited on this item. You can only copy links for people who have existing access, and you can’t invite anyone new.
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
Tag: M365 Members
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
Tag: M365 Owners
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
Tag: PnP
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Automate Renewal of Expiring M365 Groups Using PowerShell
Introduction Managing the lifecycle of Microsoft 365 Groups is important to prevent accidental deletion of M365 Groups. It is a good practice to set lifecycle expiration policy to control sprawl. However that means that the group will get automatically deleted after they expire. The Teams/M365 groups owners will get email notifications to renew within a certain timeframe , however if the owners missed the renewal notifications for different reasons, it may lead to accidental data loss.
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
PnP Powershell GetPnPflow using asAdmin parameter
As part of the multi tenant app registration for PnP PowerShell deprecated on the 9th September 2024, we need to have our own app registration and grant the required permissions. Read more from Changes in PnP Management Shell registration in Microsoft 365
For the cmdlet Get-PnPFlow it requires permissions Azure: management.azure.com which is Azure Service Management
Simply adding the permission as it does not require admin consent and executing the cmdlet below yields no results
posts
Enhanced Version Controls/Intelligent Versioning Trim with PowerShell
Microsoft has introduced Enhanced Version Controls, previously known as Intelligent Versioning, as part of its public preview in May 2024. This feature, detailed in the Microsoft 365 Roadmap 145802, aims to help administrators manage file versions more effectively, reducing storage costs by removing unnecessary versions.
Extract from the Roadmap
We are introducing new version controls that help tenant and site admins or document library owners reduce the storage footprint driven by low value file versions.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Overcoming SharePoint's List View Threshold with CAML Queries in PowerShell
Overcoming SharePoint’s List View Threshold with CAML Queries in PowerShell Encountering the list view threshold error in SharePoint when dealing with lists exceeding 5,000 items is a common challenge. Using CAML queries within PowerShell scripts offers a server-side solution to efficiently filter and retrieve data, yet is prone to the list view threshold error.
Sample script This is the sample PowerShell script querying the specified SharePoint list using CAML query.
posts
Find orphaned choice values in SharePoint list/libraries using PowerShell
Find orphaned choice values in SharePoint list/libraries using PowerShell One common issue is orphaned choice values in SharePoint lists which may affect subsequent update to the list item. This can occur when list items contain values that are no longer valid according to the list’s choice field values. This post covers a PowerShell script to identify these orphaned choice values in SharePoint lists to either update them or add them back to the list of choice field values.
posts
Working with psm1 Files in PowerShell
Working with PowerShell Script Module Files:psm1 Have you ever utilized a psm1 file to create reusable functions across multiple ps1 files? If so, you might have encountered the frustration of edits not reflecting immediately due to module caching.
I recently faced this issue when updating a psm1 file; despite making changes, the updates didn’t take effect immediately. The issue stemmed from module caching.
The only solution I found to load the updated psm1 file was to terminate the PowerShell session and start a new one.
posts
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem Introduction In this blog post, we will explore an alternative approach to retrieving folder item properties using PnP PowerShell. We will discuss the limitations of the Get-PnPFolderItem cmdlet and demonstrate how to use Get-PnPListItem to overcome those limitations.
The Limitations of Get-PnPFolderItem The Get-PnPFolderItem cmdlet is not suitable for working with large libraries. When attempting to retrieve items from a large library, you may encounter the following error message:
posts
Custom document library template using PnP PowerShell
Custom document library template using PnP PowerShell Creating custom list templates is now possible to create both custom document libraries and lists.
This article explores the option how to use a combination of list design and PowerShell script to provision multiple instances of document libraries using a CSV file and how to create a document library from a custom list template from UI.
First we can create a list design for our library based on an existing configured document library with custom content types, fields and views.
posts
Automating Site Reindexing with PowerShell
Automating Site Reindexing with PowerShell Introduction Keeping your SharePoint environment up-to-date is crucial, especially after making schema changes. One important aspect of maintaining accurate and relevant search results is to regularly reindex sites, libraries, or lists. In this blog post, we will explore a streamlined approach using PnP PowerShell to automate the reindexing process. By leveraging this script, you can ensure that your search results reflect the latest changes in your SharePoint environment.
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
posts
A Guide to Contributing to PnP PowerShell
A Guide to Contributing to PnP PowerShell Contributing to PnP PowerShell is a rewarding journey. Whether you’re a seasoned contributor or a beginner, this guide aims to simplify the process and keep it handy for your next contribution.
Prerequisites To set up the development to start hacking on PnP PowerShell, install the following
Install Git Install PowerShell 7 Install Visual Code or Visual Studio Code Install .NET SDK 6 (https://dotnet.microsoft.com/download/dotnet/6.0) Forking and cloning First things first, make a copy of the repository to start working on your changes.
posts
Discovering All Checked Out Files including those with no checked in versions with PnP PowerShell
Discovering All Checked Out Files including those with no checked in versions There are scenarios when files uploaded won’t have “checked-in version” which will make the files visible only to their uploader. Two possible scenarios that can lead to the situation:
Mandatory Metadata Requirements: When there are mandatory fields configured on the libraries and end users use Onedrive as a medium to upload the files to SharePoint via a shortcut to OneDrive.
posts
Copy Column View Formatting to different environment using PnP PowerShell
Copy Column and View Formatting using PnP PowerShell There is a great sample script how to backup all column, view and content type formatting by Dan Toft. If you need to copy column and view formatting across different environments, such as from Dev to Test, UAT, and Prod, especially when dealing with multiple lists/libraries, the script may help you.
PnP PowerShell Script param ( [Parameter(Mandatory=$false)] [string]$SourceSiteUrl = "https://contoso.sharepoint.com/teams/d-app-test", [Parameter(Mandatory=$false)] [string]$DestinationSiteUrl = "https://contoso.
Tag: PowerShell
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Prevent Guests from Being Added to a Specific Microsoft 365 Group or Microsoft Teams team using PnP PowerShell
Introduction By default, guest access for Microsoft 365 groups is enabled within the tenant. This can be controlled either to allow or block guest access at the tenant level or for individual Microsoft 365 groups / Teams. For more information, check out Manage guest access in Microsoft 365 groups.
PowerShell Script to Prevent Guest Access Below is a PowerShell script that allows you to disable/enable guest access for specific Microsoft 365 groups.
posts
Automate Renewal of Expiring M365 Groups Using PowerShell
Introduction Managing the lifecycle of Microsoft 365 Groups is important to prevent accidental deletion of M365 Groups. It is a good practice to set lifecycle expiration policy to control sprawl. However that means that the group will get automatically deleted after they expire. The Teams/M365 groups owners will get email notifications to renew within a certain timeframe , however if the owners missed the renewal notifications for different reasons, it may lead to accidental data loss.
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
PnP Powershell GetPnPflow using asAdmin parameter
As part of the multi tenant app registration for PnP PowerShell deprecated on the 9th September 2024, we need to have our own app registration and grant the required permissions. Read more from Changes in PnP Management Shell registration in Microsoft 365
For the cmdlet Get-PnPFlow it requires permissions Azure: management.azure.com which is Azure Service Management
Simply adding the permission as it does not require admin consent and executing the cmdlet below yields no results
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
posts
Enhanced Version Controls/Intelligent Versioning Trim with PowerShell
Microsoft has introduced Enhanced Version Controls, previously known as Intelligent Versioning, as part of its public preview in May 2024. This feature, detailed in the Microsoft 365 Roadmap 145802, aims to help administrators manage file versions more effectively, reducing storage costs by removing unnecessary versions.
Extract from the Roadmap
We are introducing new version controls that help tenant and site admins or document library owners reduce the storage footprint driven by low value file versions.
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
posts
Copy SharePoint list structure with data - ALM
If you have built Power Platform solutions using SharePoint as a datasource, you may want to export the list structure along with its data from the source environment (e.g., DEV) and deploy it across different environments such as Test, UAT, and PROD. Fortunately, the PnP Provisioning from PnP PowerShell provides this capability. Power Platform solutions can be deployed using pipelines after the SharePoint structure is deployed.
Export Structure and Data from SharePoint Lists PnP PowerShell makes this process straightforward with Get-PnPSiteTemplate:
posts
Delete M365 connected Team Site using PowerShell
If a M365 group connected Team site is deleted from SharePoint Admin Centre, from the UI it is not possible to delete the site from the deleted sites to be able to resuse the URL or name of the deleted site.
The end user is presented with the following prompt This site belongs to a Microsoft 365 group. Deleting the site will delete the group and all its resources, including the Outlook mailbox and calendar, and any Teams channels.
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
SharePoint Portals Site collections Inventory
As part of the Copilot for M365 rollout , questions were raised on the /portals/Community and /portals/hub as both ‘Everyone Except External Users’ was granted access raising concerns on the content on the site. These are legacy sites and are currently inaccessible. Historically, these sites were accessible via the legacy SharePoint admin centre, however, they are not available through the modern SharePoint admin centre interface.
Thanks to Gregory Zelfond’s blog post What are all these site collections in SharePoint?
posts
SharePoint Storage Monitoring Against Allocated Quota using PowerShell
There is limited space allocated to the tenant. To ensure business continuity and smooth ongoing operation, it is imperative to keep an eye on its usage and take relevant actions suited to the circumstances. By default a SharePoint site is allocated 25 TB by default and OneDrive for Business site is allocated 1 TB by default. These settings can be amended manually to a different quota to control SharePoint site. The script will help to proactively monitor percent used against quota for each SharePoint site.
posts
Update Choice values of List Items in SharePoint List
Maintaining up-to-date list items, especially when dealing with choice fields, can be a daunting task sepcially after choice field values are updated. We need a way to update these old values to the correct new ones.
The Challenge SharePoint lists use choice fields to categorise items. Over time, the need to update these choice values can arise, whether due to changes in terminology, business processes, or error correction. Manually updating these values across numerous list items is not only time-consuming but also prone to human error.
posts
Overcoming SharePoint's List View Threshold with CAML Queries in PowerShell
Overcoming SharePoint’s List View Threshold with CAML Queries in PowerShell Encountering the list view threshold error in SharePoint when dealing with lists exceeding 5,000 items is a common challenge. Using CAML queries within PowerShell scripts offers a server-side solution to efficiently filter and retrieve data, yet is prone to the list view threshold error.
Sample script This is the sample PowerShell script querying the specified SharePoint list using CAML query.
posts
Find orphaned choice values in SharePoint list/libraries using PowerShell
Find orphaned choice values in SharePoint list/libraries using PowerShell One common issue is orphaned choice values in SharePoint lists which may affect subsequent update to the list item. This can occur when list items contain values that are no longer valid according to the list’s choice field values. This post covers a PowerShell script to identify these orphaned choice values in SharePoint lists to either update them or add them back to the list of choice field values.
posts
Updating SharePoint Site Logo and Thumbnail with PowerShell
Update SharePoint Site Logo and Thumbnail with PowerShell In SharePoint Online sites, the distinction between the Site Logo and Site Thumbnail is crucial. The site logo appears in the site header, while the site thumbnail is used in search results, site cards, file copying/moving, and other areas.
Both site logo and thumbnail are part of SharePoint branding. This post covers how to update the site logo and thumbnail across multiple SharePoint sites within a hub using PowerShell.
posts
Update Content Type of List Items in SharePoint List
Update Content Type of List Items in SharePoint List A content type in SharePoint is a reusable collection of metadata (columns) allowing to organise, manage and handle content in a consistent way. If the content type of files and items need to be updated because of required changes how particular content have to be managed, it can be a daunting laborious task if done manually. PowerShell can help automating the update of content types and corresponding metadata (columns).
posts
Teamifying an Existing M365 Group with PowerShell
Teamifying an Existing M365 Group with PowerShell Within M365 , SharePoint and Teams together provides a rich collaboaration platform. When a team site is created from SharePoint admin centre, it is not associated with a Teams despite a M365 group is created in the background. To extend SharePoint collaboration features , there is a need to “teamify” an existing Microsoft 365 Group, essentially attaching a new Teams instance to it to allow use of channels and other apps.
posts
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell This PowerShell script powered by PnP PowerShell can help to get total count of files, folders, and list items across SharePoint tenant. This script is invaluable for administrators looking to perform audits, verify data migrations, or simply keep tabs on the content sprawl within their environments. The use case of this script was to get a total number of items that would be ingested into a third party application Records365 (provided by RecordPoint) to ensure the number tally for compliance purposes and identify any gaps.
posts
Handling Special Characters within CSV with PowerShell using Encoding
When working with CSV files in PowerShell with special characters you might encounter an issue where special characters (e.g., em dashes —) are incorrectly represented as a question mark inside a diamond �. This common issue arises due to PowerShell’s default encoding not matching the encoding used in the CSV file.
Problem Statement The root of this problem lies in the encoding mismatch. Encoding is a method of converting characters into a format that can be easily stored or transmitted.
posts
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs This post covers a PowerShell script to generate an inventory of SPFx installations within your SharePoint Online environment which will help you maintain oversight of your SPFx solutions, ensuring they are up-to-date and compliant. The script was particularly useful in pinpointing sites within the tenant where third-party applications, specifically an analytics SPFx component, were deployed. This was crucial for ensuring that data collection was confined to designated sites, such as the intranet in my case study.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Deletion of sharing links with PowerShell
Deletion of sharing links with PowerShell As organisations look to deploy Copilot for Microsoft 365, ensuring the security and proper governance of shared content is important. The rollout of Copilot introduces advanced AI capabilities across Microsoft 365 apps using content from SharePoint/OneDrive, making it even more essential to manage sharing links judiciously to tackle the issue of oversharing.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
posts
Restrict certain SharePoint sites from tenant search and Copilot for M365 using PowerShell
Excluding certain SharePoint sites from search would mean the contents from the excluded sites won’t be available to M365 tenant search and Copilot for M365 using Restricted SharePoint Search feature.
The downsides using this feature are:
Limited Findability: By excluding certain SharePoint sites from search, you limit the findability of data. Users would need to know the specific sites where the data resides in order to search for it. This can hinder efficient data retrieval and records management.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
posts
Sharing Options Updates - Send Email Button Greyed Out
Sharing Options Updates - Send Email button greyed out Starting from March 2024, there has been a notable change in SharePoint’s sharing options. If a user is not allowed to share on a SharePoint site (for instance, when a user is a member and only owners have sharing privileges), the Send Email button appears greyed out. Additionally, a warning message is displayed: Sharing is limited on this item. You can only copy links for people who have existing access, and you can’t invite anyone new.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
posts
Working with psm1 Files in PowerShell
Working with PowerShell Script Module Files:psm1 Have you ever utilized a psm1 file to create reusable functions across multiple ps1 files? If so, you might have encountered the frustration of edits not reflecting immediately due to module caching.
I recently faced this issue when updating a psm1 file; despite making changes, the updates didn’t take effect immediately. The issue stemmed from module caching.
The only solution I found to load the updated psm1 file was to terminate the PowerShell session and start a new one.
posts
How to Redirect PowerShell Terminal Output to a File
How to Redirect PowerShell Terminal Output to a File The PowerShell console buffer, while useful, has its limitations. When dealing with thousands of lines of output, you may encounter performance issues or even lose older output due to truncation. However, there’s a straightforward solution to ensure all output is retained for later review: redirect the output to a file.
You can accomplish this by using the redirection operator > operator, followed by the name of the file where you want the output to be stored.
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
posts
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem Introduction In this blog post, we will explore an alternative approach to retrieving folder item properties using PnP PowerShell. We will discuss the limitations of the Get-PnPFolderItem cmdlet and demonstrate how to use Get-PnPListItem to overcome those limitations.
The Limitations of Get-PnPFolderItem The Get-PnPFolderItem cmdlet is not suitable for working with large libraries. When attempting to retrieve items from a large library, you may encounter the following error message:
posts
Custom document library template using PnP PowerShell
Custom document library template using PnP PowerShell Creating custom list templates is now possible to create both custom document libraries and lists.
This article explores the option how to use a combination of list design and PowerShell script to provision multiple instances of document libraries using a CSV file and how to create a document library from a custom list template from UI.
First we can create a list design for our library based on an existing configured document library with custom content types, fields and views.
posts
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell SharePoint Framework (SPFx) solutions are a powerful tool for extending and customizing SharePoint sites. However, managing these solutions across multiple sites in a SharePoint tenant can be a daunting task. Fortunately, PnP PowerShell provides automation capabilities that can streamline these operations and ensure consistency across the tenant.
The blog post Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites covers how to deploy SPFx solutions across a hub site and associated sites.
posts
Deploying SPFx Packages from Tenant App Catalog to Hub Site and Associated Sites
Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites There is the blog post how Deploying and Installing SharePoint Framework (SPFx) solutions using PnP PowerShell to Hub Site and Associated Sites using site collection app catalog. This post covers how to perform same objective but using the tenant level app catalog if the SPFx packages have not been added to all sites globally during deployment in the tenant level app catalog and instead need targeted deployment or upgrades on specific sites.
posts
Automating Site Reindexing with PowerShell
Automating Site Reindexing with PowerShell Introduction Keeping your SharePoint environment up-to-date is crucial, especially after making schema changes. One important aspect of maintaining accurate and relevant search results is to regularly reindex sites, libraries, or lists. In this blog post, we will explore a streamlined approach using PnP PowerShell to automate the reindexing process. By leveraging this script, you can ensure that your search results reflect the latest changes in your SharePoint environment.
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
posts
A Guide to Contributing to PnP PowerShell
A Guide to Contributing to PnP PowerShell Contributing to PnP PowerShell is a rewarding journey. Whether you’re a seasoned contributor or a beginner, this guide aims to simplify the process and keep it handy for your next contribution.
Prerequisites To set up the development to start hacking on PnP PowerShell, install the following
Install Git Install PowerShell 7 Install Visual Code or Visual Studio Code Install .NET SDK 6 (https://dotnet.microsoft.com/download/dotnet/6.0) Forking and cloning First things first, make a copy of the repository to start working on your changes.
posts
Discovering All Checked Out Files including those with no checked in versions with PnP PowerShell
Discovering All Checked Out Files including those with no checked in versions There are scenarios when files uploaded won’t have “checked-in version” which will make the files visible only to their uploader. Two possible scenarios that can lead to the situation:
Mandatory Metadata Requirements: When there are mandatory fields configured on the libraries and end users use Onedrive as a medium to upload the files to SharePoint via a shortcut to OneDrive.
posts
How to Hide the 'See All' Button in the Highlighted Content Web Part using PnP PowerShell
How to Hide the “See All” Button in the Highlighted Content Web Part using PnP PowerShell Recently, I encountered an issue with the “Show Title and Commands” toggle in the out-of-the-box Highlighted Content web part. It stopped working on both my development and customer tenant. I’ve raised the issue on the Microsoft Forum and also opened a case with Microsoft to investigate the backend.
While awaiting a resolution from Microsoft, I decided to find a workaround.
posts
Ensure Taxonomy Feature in SharePoint Sites Connected to Private/Shared Teams Channels
Ensure Taxonomy Feature In SharePoint site connected to a Private/Shared Channel Sites Taxonomy feature is not activated by default in SharePoint sites linked to a private or shared Teams Channels. When attempting to add content types with managed metadata columns, you may encounter an error message stating “Taxonomy disabled”.
To resolve this issue, you can enable the taxonomy feature with the ID 73ef14b1-13a9-416b-a9b5-ececa2b0604c using the PowerShell cmdlet Enable-PnPFeature before adding the content types to the sites with the template TEAMCHANNEL#1.
posts
Ensuring Owners Are Members
Ensure Owners Are Members M365Group Microsoft 365 (M365) Groups serve as a central hub for collaboration across various M365 applications like Teams, Planner, SharePoint, and more. While M365 roles include Owners, Members, and Guests, it’s crucial to understand that being an owner doesn’t always inherit member privileges. In this article, we’ll explore why it’s imperative to have M365 Group owners also serve as active members for seamless group management and productivity.
posts
Get a CSV of all my pull requests from Github using Github CLI and PowerShell
Github does not provide an easy way to export all your pull requests for review or sharing with anyone. Below is a great post to show how to do it using BASH.
GitHub: Get a CSV containing my pull requests (PRs)
If you are using windows machine, PowerShell is your friend.
Install GitHub CLI via command line
winget install --id GitHub.cli Enter Y to the question
Do you agree to all the source agreements terms?
posts
Troubleshooting SharePoint Storage Reports with PowerShell
Troubleshooting SharePoint Storage Reports with PowerShell As the amount of data stored in SharePoint grows, it becomes important to monitor and manage storage usage. In this blog post, we will explore how to generate storage reports for SharePoint sites using PowerShell. These reports will provide insights into the storage usage of sites and individual files, including file versions and the size of the recycle bin. However the reports can only give a glimpse of at least 60-90% of storage.
Tag: Security
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Prevent Guests from Being Added to a Specific Microsoft 365 Group or Microsoft Teams team using PnP PowerShell
Introduction By default, guest access for Microsoft 365 groups is enabled within the tenant. This can be controlled either to allow or block guest access at the tenant level or for individual Microsoft 365 groups / Teams. For more information, check out Manage guest access in Microsoft 365 groups.
PowerShell Script to Prevent Guest Access Below is a PowerShell script that allows you to disable/enable guest access for specific Microsoft 365 groups.
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
Tag: SharePoint
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Viva Connections Experiences to manage Home Site through REST API
Introduction The SharePoint Home Site experiences have moved to Viva Connections and is managed from the Microsoft 365 admin centre through the Viva Connections admin centre
I started exploring how to manage these SharePoint Home Sites/Viva Experiences using browser’s developer tools, considering I had little luck with the SPO PowerShell, PnP PowerShell, and CLI for M365. These PowerShell experiences will be updated at some point to work with the updated Viva Connections Experience.
posts
Restoring Previous Versions of Items in a SharePoint List Using PnP PowerShell
When working with SharePoint lists, there might be times when you need to restore items to a previous version. Whether it’s due to an error, unwanted changes, or simply needing to revert to an earlier state, SharePoint’s versioning feature is a lifesaver. I used the script to undo bulk changes made by a Power Automate flow after the process failed halfway due to some data needing correction. For data integrity, the bulk update needed to be undone before running the Power Automate flow again after the data corrections were made.
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
posts
Prevent Guests from Being Added to a Specific Microsoft 365 Group or Microsoft Teams team using PnP PowerShell
Introduction By default, guest access for Microsoft 365 groups is enabled within the tenant. This can be controlled either to allow or block guest access at the tenant level or for individual Microsoft 365 groups / Teams. For more information, check out Manage guest access in Microsoft 365 groups.
PowerShell Script to Prevent Guest Access Below is a PowerShell script that allows you to disable/enable guest access for specific Microsoft 365 groups.
posts
Upgrading SPFx to the Latest Version SPFx 1.20.0 - lessons learned
Introduction With the release of SPFx 1.20.0 in September 2024, I decided to upgrade an existing SPFx solution to the latest version following a post by Microsoft 365 & Power Platform Community on Linkedin This process can be challenging, especially when dealing with dependency version conflicts. In this blog post, I’ll walk you through the steps to upgrade your SPFx solution to version 1.20.0, including installing Node.js 18.18.0, using the CLI for Microsoft 365 to generate upgrade instructions, and addressing common issues.
posts
Fixing SPFx: Unable to Use the Latest Version in scaffolding project
Introduction The SharePoint Framework (SPFx) 1.20.0 has been generally available since September 2024. However, if you work with SPFx, you might encounter issues when trying to use the latest version. SPFx still requires Node.js 18.x.x. In this blog post, I’ll walk you through the steps I took to install Node.js 18.20.4 using NVM, install the SPFx toolchain, and troubleshoot an issue where the project scaffolding defaulted to an older version of SPFx.
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
posts
SharePoint - working round restore a library link missing
Introduction Have you ever encountered the frustrating situation where the Restore a library link in SharePoint is missing or inconsistently available? This can be a significant issue when you need to restore a library urgently.
The Problem Typically, you would expect to see the link ‘Restore This Library’ in the SharePoint interface: Restore library
However, in some cases, this link might be missing:
Restore Library Missing
The Workaround After some investigation, I discovered a workaround.
posts
Power Automate - Trigger a Flow from multiple Libraries and sites
Introduction In this blog post, we’ll explore how to trigger a single Power Automate flow from multiple SharePoint libraries and sites. This approach is particularly useful for scenarios where you need to standardize workflows across different document libraries and sites. It will avoid the need replicating the flows multiple times which may be harder to maintain and deploy.
The For a selected file action is used to achieve this. I have tried the Manually trigger a flowin vain as the context (site URL, library ID/name, and item ID) is not passed to the flow.
posts
SharePoint Search for Documents: Modified Date and Title of Results
Introduction Have you ever encountered a situation where the search results in SharePoint show incorrect document titles and modified dates? This can be frustrating, especially when you rely on accurate metadata for document management. In this blog post, we’ll explore why this happens and how to resolve it.
Problem Statement A business user reported that the search results for a particular document displayed the wrong name and modified date. Upon investigation, we found that the title and modified date were being pulled from the document properties rather than the metadata shown in the SharePoint library.
posts
Enhanced Version Controls/Intelligent Versioning Trim with PowerShell
Microsoft has introduced Enhanced Version Controls, previously known as Intelligent Versioning, as part of its public preview in May 2024. This feature, detailed in the Microsoft 365 Roadmap 145802, aims to help administrators manage file versions more effectively, reducing storage costs by removing unnecessary versions.
Extract from the Roadmap
We are introducing new version controls that help tenant and site admins or document library owners reduce the storage footprint driven by low value file versions.
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Display instagram posts into SharePoint using Instagram Basic Display Independent Publisher Connector
How to Use the Instagram Basic Display Connector in Power Apps and Power Automate Instagram is a popular social media platform with over 1 billion monthly active users. It is a great platform for sharing photos and videos, and many businesses use it to promote their products and services. With the Instagram Basic Display (IndependentPublisher) connector, you can now easily retrieve data from Instagram accounts and use it in Power Apps and Power Automate.
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
posts
Copy SharePoint list structure with data - ALM
If you have built Power Platform solutions using SharePoint as a datasource, you may want to export the list structure along with its data from the source environment (e.g., DEV) and deploy it across different environments such as Test, UAT, and PROD. Fortunately, the PnP Provisioning from PnP PowerShell provides this capability. Power Platform solutions can be deployed using pipelines after the SharePoint structure is deployed.
Export Structure and Data from SharePoint Lists PnP PowerShell makes this process straightforward with Get-PnPSiteTemplate:
posts
Power Automate : Move File bypassing locked issue using CreateCopyJobs endpoint
The SharePoint - Move file action can be used to move files, however the file can’t be moved if the file was accessed by the current Power Automate flow for any processing reslutng in a locked file error.
{ “status”: 400, “message”: “File ‘Shared Documents/Attendances/To Be Processed/Attendance -16072024.xlsx’ cannot be moved because it is in locked mode.\r\nclientRequestId: d6df7566-881f-4f14-8548-c5fac1eda46d\r\nserviceRequestId: 606841a1-40f0-9000-9c69-507df9b21720” }
Handling Locked Files There are two options to handlelocked files when using SharePoint - Move file action:
posts
Getting Storage Metrics for a SharePoint site
Gaining an overview of what takes up space in a SharePoint site is crucial for monitoring large files or a significant number of versions.
Unfortunately, the storage metrics link, <siteurl>/_layouts/15/storman.aspx, won’t work for libraries with more than 5,000 files without nested folders. While this might go against information architecture principles, creating folders is an option to avoid the list view threshold error.
Here’s a PowerShell script to help you get storage metrics for your SharePoint site:
posts
SharePoint Highlighted Content Web Part versus News Web Part: Author versus Editor
The Highlighted Content Web Part and the News Web Part in SharePoint can be used to display news on a page. Both webparts serve different purposes and have distinct features. One particular difference is the display of author in News Webpart and display of editor in the Highlighted Content Web Part.
The Highlighted Content Web Part displays editing details like editor and last updated date with the news information. Unfortunately there is no option to change it to the author name.
posts
Power Automate: Create and Publish a News Link
This post covers how to leverage SharePoint REST API to create and publish a news link from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to create and publish a news link details.
Send an Http request to SharePoint action renamed to Get Page Details. Site Address : site url Method : GET Uri : /_api/web/lists/GetByTitle(‘Site%20Pages’)/items(10) Parse JSON renamed to Parse Page Details JSON Add the action Parse JSON and refer to the content from previous steps
posts
Power Automate: Retrieve User Details
This post covers how to leverage SharePoint REST API to get user details from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to retrieve a user details.
Send an Http request to SharePoint action renamed to Get Page Author Details Site Address: https://test.sharepoint.com Method: GET URI: _api/Web/GetUserById(14) Here’s the output from the API:
Here’s the output from the API:
posts
Power Automate: Retrieve Users from a SharePoint Group
This post covers how to leverage SharePoint REST API to get users from a SharePoint group from Power Automate using the Send an Http request to SharePoint action. In the example below a SharePoint Group has been defined for approvers of a particular process and needed to be retrieved to be assigned an approval task.
Within a Power Automate flow follow the steps below to retrieve users from a SharePoint group.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Power Automate : Update Author and Editor of a Page
This post outlines how to use Power Automate to update author and editor of a Page within SharePoint using the Send an Http request to SharePoint action.
Within a Power Automate flow, follow the following steps
Add Send an Http request to SharePoint renamed to Update Author Properties Property Value Site Address The SharePoint site URL Method POST Uri See Uri below Headers See Headers table below Body See Body below Uri _api/web/lists/GetByTitle(‘Site%20Pages’)/items(1)/ValidateUpdateListItem()`
posts
SharePoint Portals Site collections Inventory
As part of the Copilot for M365 rollout , questions were raised on the /portals/Community and /portals/hub as both ‘Everyone Except External Users’ was granted access raising concerns on the content on the site. These are legacy sites and are currently inaccessible. Historically, these sites were accessible via the legacy SharePoint admin centre, however, they are not available through the modern SharePoint admin centre interface.
Thanks to Gregory Zelfond’s blog post What are all these site collections in SharePoint?
posts
SharePoint Storage Monitoring Against Allocated Quota using PowerShell
There is limited space allocated to the tenant. To ensure business continuity and smooth ongoing operation, it is imperative to keep an eye on its usage and take relevant actions suited to the circumstances. By default a SharePoint site is allocated 25 TB by default and OneDrive for Business site is allocated 1 TB by default. These settings can be amended manually to a different quota to control SharePoint site. The script will help to proactively monitor percent used against quota for each SharePoint site.
posts
Exclude News Links from News WebPart in SharePoint Online
SharePoint Online offers the useful feature of news links to avoid duplication of news articles and promote existing posts across different sites. This is especially beneficial when news creation is enabled for various departments or directorates, allowing them to share significant news organization-wide.
However, the News WebPart might display both the news links and the original articles, resulting in duplicated content.
To manage this, you can utilize the OriginalSourceUrl column, which stores the link to the source news article.
posts
Update Choice values of List Items in SharePoint List
Maintaining up-to-date list items, especially when dealing with choice fields, can be a daunting task sepcially after choice field values are updated. We need a way to update these old values to the correct new ones.
The Challenge SharePoint lists use choice fields to categorise items. Over time, the need to update these choice values can arise, whether due to changes in terminology, business processes, or error correction. Manually updating these values across numerous list items is not only time-consuming but also prone to human error.
posts
Overcoming SharePoint's List View Threshold with CAML Queries in PowerShell
Overcoming SharePoint’s List View Threshold with CAML Queries in PowerShell Encountering the list view threshold error in SharePoint when dealing with lists exceeding 5,000 items is a common challenge. Using CAML queries within PowerShell scripts offers a server-side solution to efficiently filter and retrieve data, yet is prone to the list view threshold error.
Sample script This is the sample PowerShell script querying the specified SharePoint list using CAML query.
posts
Find orphaned choice values in SharePoint list/libraries using PowerShell
Find orphaned choice values in SharePoint list/libraries using PowerShell One common issue is orphaned choice values in SharePoint lists which may affect subsequent update to the list item. This can occur when list items contain values that are no longer valid according to the list’s choice field values. This post covers a PowerShell script to identify these orphaned choice values in SharePoint lists to either update them or add them back to the list of choice field values.
posts
Updating SharePoint Site Logo and Thumbnail with PowerShell
Update SharePoint Site Logo and Thumbnail with PowerShell In SharePoint Online sites, the distinction between the Site Logo and Site Thumbnail is crucial. The site logo appears in the site header, while the site thumbnail is used in search results, site cards, file copying/moving, and other areas.
Both site logo and thumbnail are part of SharePoint branding. This post covers how to update the site logo and thumbnail across multiple SharePoint sites within a hub using PowerShell.
posts
Update Content Type of List Items in SharePoint List
Update Content Type of List Items in SharePoint List A content type in SharePoint is a reusable collection of metadata (columns) allowing to organise, manage and handle content in a consistent way. If the content type of files and items need to be updated because of required changes how particular content have to be managed, it can be a daunting laborious task if done manually. PowerShell can help automating the update of content types and corresponding metadata (columns).
posts
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate Transferring data from Excel to SharePoint lists can encounter format issues, especially with datetime and number fields. This post covers solutions to some challenges particularly related to dates and numbers.
The flow is quite simple with an action to read contents from excel file and an action to create items into a sharepoint list.
Handling DateTime Fields When importing datetime data with the “List rows present in a table” action from the “Excel Online for Business” connector, you might encounter format related errors.
posts
Power Automate updating multi line field with more than 255 characters
Power Automate flow succeeded despite failure to update multi line text field within a SharePoint Library Updating multi-line text fields in a SharePoint Library from Power Automate flows, especially when the content exceeds 255 characters might fail if the field is not updated to allow unlimited length. This can cause workflows to fail silently.
In a recent scenario, an action was added to a Power Automate flow to update a SharePoint Library’s multi-line text field named ‘ErrorLog’ with error details captured during the flow’s execution.
posts
Publishing Major Versions of Files in SharePoint with Power Automate
Publishing Major Versions of Files in SharePoint with Power Automate This post covers how to publish major versions for Office documents (Word, Excel, or PowerPoint) in SharePoint using Power Automate, especially after an approval task using the checkin and publish REST endpoints. This applies to libraries having minor versions enabled
Just for context, a Power Automate approval flow with trigger for a selected file needed publishing for the selected file as major version after being approved.
posts
Column Validation for Sort Code and Account Number in SharePoint
Column Validation for Sort Code and Account Number in SharePoint Column validation provides a solution to validate data for data integrity. This post covers column validation for Sort Code and Account Number in SharePoint.
Validation for Sort Code =AND(LEN([Sort Code])=6,ISNUMBER([Sort Code]+0))
The above formula checks
The length of the sort code must be exactly 6 digits. The sort code must be a number. Validation for Account Number =AND(LEN([Account Number])=8,ISNUMBER([Account Number]+0))
posts
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX Encountering issues with opening “.dotx” templates in SharePoint is a common scenario that can disrupt your workflow. Typically, when you attempt to open a “.dotx” file in SharePoint, it opens in edit mode for the template itself, rather than generating a new “.docx” document as expected. This behavior diverges from the experience in Windows File Explorer and can hinder productivity.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Counting Files and folders within SharePoint Libraries using PnP PowerShell
Counting Files and Folders within SharePoint Libraries using PnP PowerShell This post shows a PowerShell script using PnP PowerShell module to count the number of files and folders within a SharePoint library. It might be useful doing an inventory of file count.
$SiteURL = "Counting Files within a SharePoint Library using PnP PowerShell" # Generate a unique log file name using today's date $dateTime = (Get-Date).toString("dd-MM-yyyy") $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.
posts
Retrieving File Count and Size of a folder using PnP PowerShell
Retrieving File Count and Size of a folder within a SharePoint Library using PnP PowerShell This post covers a PowerShell script that uses the PnP PowerShell module to retrieve the file count and total size of a specific folder within a SharePoint library.
#Parameters $SiteURL = "https://contoso.sharepoint.com/sites/company311" $FolderSiteRelativeURL = "Shared Documents/Test1" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get the folder $Folder = Get-PnPFolder -Url $FolderSiteRelativeURL -Includes ListItemAllFields #Get the total Size of the folder - with versions Write-host "Size of the Folder:" $([Math]::Round(($Folder.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
posts
Sharing Options Updates - Send Email Button Greyed Out
Sharing Options Updates - Send Email button greyed out Starting from March 2024, there has been a notable change in SharePoint’s sharing options. If a user is not allowed to share on a SharePoint site (for instance, when a user is a member and only owners have sharing privileges), the Send Email button appears greyed out. Additionally, a warning message is displayed: Sharing is limited on this item. You can only copy links for people who have existing access, and you can’t invite anyone new.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
posts
Troubleshooting NVM Setup Issues for SPFx Development
Troubleshooting NVM Setup Issues for SPFx Development I have not used my dev machine for SPFx development for over a year. Before diving into any new SPFx development, I followed the typical procedure of installing the latest Node.js version 18.19.0 supported by the current SPFx version (1.18.2) using nvm (node version management).nvm allows to maintain different development environment.
nvm install 18.19.0 Following this, I proceeded to install the SPFx toolchain:
posts
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem Introduction In this blog post, we will explore an alternative approach to retrieving folder item properties using PnP PowerShell. We will discuss the limitations of the Get-PnPFolderItem cmdlet and demonstrate how to use Get-PnPListItem to overcome those limitations.
The Limitations of Get-PnPFolderItem The Get-PnPFolderItem cmdlet is not suitable for working with large libraries. When attempting to retrieve items from a large library, you may encounter the following error message:
posts
Automating Site Reindexing with PowerShell
Automating Site Reindexing with PowerShell Introduction Keeping your SharePoint environment up-to-date is crucial, especially after making schema changes. One important aspect of maintaining accurate and relevant search results is to regularly reindex sites, libraries, or lists. In this blog post, we will explore a streamlined approach using PnP PowerShell to automate the reindexing process. By leveraging this script, you can ensure that your search results reflect the latest changes in your SharePoint environment.
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
posts
Updating Approval Details in SharePoint Library using 'Send HTTP Request to SharePoint' in Power Automate
Updating Approval Details in SharePoint Library using ‘Send HTTP Request to SharePoint’ in Power Automate In Power Automate, there are two methods for updating file properties:
Send HTTP Request to SharePoint Update File Properties While the latter suffices for most cases, I opted for the “Send HTTP Request to SharePoint” in specific scenarios:
To avoid triggering a new file version using system update. When modifying system columns such as author or modified date.
posts
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell Utilizing ChatGPT to generate test data for various applications is a powerful capability. After stumbling upon the sample script Create test users using MS Graph API from list or ask ChatGPT to generate test users by Valeras Narbutas on creating test users with MS Graph API, I decided to explore using ChatGPT to generate a list of data. This script harnesses OpenAI’s ChatGPT model to effortlessly generate a list of wellbeing activities.
posts
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency In this article, we explore how to efficiently update a large SharePoint list containing approximately 60,000 items using PnP-Batch. Updating such a substantial number of items individually can be time-consuming and prone to throttling issues. Prior to using PnP Batch , it was taking more than 12 hours to update 60k one by one. The article highlights the benefits of using PnP Batch, which significantly reduces the time taken for updates by sending fewer requests.
posts
Troubleshooting SharePoint Storage Reports with PowerShell
Troubleshooting SharePoint Storage Reports with PowerShell As the amount of data stored in SharePoint grows, it becomes important to monitor and manage storage usage. In this blog post, we will explore how to generate storage reports for SharePoint sites using PowerShell. These reports will provide insights into the storage usage of sites and individual files, including file versions and the size of the recycle bin. However the reports can only give a glimpse of at least 60-90% of storage.
Tag: Team site
posts
Adding M365 Group/Teams Owners and Members to SharePoint Group with PnP PowerShell
Introduction There are situations where you might want to reuse the M365 Group principals to assign permissions to other sites without creating additional Entra ID groups. This can be useful for:
Adding M365 group members to a SharePoint site, such as an intranet site for ‘Human Resources’ managed by the ‘Human Resources’ M365 Group/Teams or a hub site managed by a ‘Service Desk’ M365 Group/Teams. Adding M365 group members to custom or out-of-the-box SharePoint groups, such as adding particular M365 group owners or members to custom groups created for additional libraries within a different site.
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
Tag: Global settinga
posts
Managing Microsoft 365 Group Settings with PnP PowerShell and Microsoft Graph
Introduction Managing Microsoft 365 Group settings is crucial for maintaining a compliant and secure environment.PowerShell and Microsoft Graph can be used to configure various group settings, including naming policies, guest access, and more.
As a regular user of PnP PowerShell, I aimed to replicate the functionality of the Microsoft Entra cmdlets for configuring group settings using PnP PowerShell.
Example Script to Update naming policy Settings The following PowerShell script updates the naming group settings using the Microsoft Graph API and PnP PowerShell.
Tag: Group Settings
posts
Managing Microsoft 365 Group Settings with PnP PowerShell and Microsoft Graph
Introduction Managing Microsoft 365 Group settings is crucial for maintaining a compliant and secure environment.PowerShell and Microsoft Graph can be used to configure various group settings, including naming policies, guest access, and more.
As a regular user of PnP PowerShell, I aimed to replicate the functionality of the Microsoft Entra cmdlets for configuring group settings using PnP PowerShell.
Example Script to Update naming policy Settings The following PowerShell script updates the naming group settings using the Microsoft Graph API and PnP PowerShell.
Tag: Microsoft Graph
posts
Managing Microsoft 365 Group Settings with PnP PowerShell and Microsoft Graph
Introduction Managing Microsoft 365 Group settings is crucial for maintaining a compliant and secure environment.PowerShell and Microsoft Graph can be used to configure various group settings, including naming policies, guest access, and more.
As a regular user of PnP PowerShell, I aimed to replicate the functionality of the Microsoft Entra cmdlets for configuring group settings using PnP PowerShell.
Example Script to Update naming policy Settings The following PowerShell script updates the naming group settings using the Microsoft Graph API and PnP PowerShell.
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Retrieving SiteId from Microsoft Graph for Subsequent API Calls
Retrieving SiteId from Microsoft Graph for Subsequent API Calls This post offers an option to retrieve a SiteId from Microsoft Graph using PnP PowerShell. This can be particularly useful when making further API calls that require the SiteId.
$siteurl = "https://contoso.sharepoint.com/sites/Company311" Connect-PnPOnline -url $siteurl -interactive # for the site url https://contoso-admin.sharepoint.com/teams/app-m365 # Extract the domain and site name $uri = New-Object System.Uri($siteurl) $domain = $uri.Host $siteName = $uri.AbsolutePath # Construct the new URL $RestMethodUrl = "v1.
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
Tag: PnP PowerShell
posts
Managing Microsoft 365 Group Settings with PnP PowerShell and Microsoft Graph
Introduction Managing Microsoft 365 Group settings is crucial for maintaining a compliant and secure environment.PowerShell and Microsoft Graph can be used to configure various group settings, including naming policies, guest access, and more.
As a regular user of PnP PowerShell, I aimed to replicate the functionality of the Microsoft Entra cmdlets for configuring group settings using PnP PowerShell.
Example Script to Update naming policy Settings The following PowerShell script updates the naming group settings using the Microsoft Graph API and PnP PowerShell.
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
posts
Restoring Previous Versions of Items in a SharePoint List Using PnP PowerShell
When working with SharePoint lists, there might be times when you need to restore items to a previous version. Whether it’s due to an error, unwanted changes, or simply needing to revert to an earlier state, SharePoint’s versioning feature is a lifesaver. I used the script to undo bulk changes made by a Power Automate flow after the process failed halfway due to some data needing correction. For data integrity, the bulk update needed to be undone before running the Power Automate flow again after the data corrections were made.
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
posts
Teamifying an Existing M365 Group with PowerShell
Teamifying an Existing M365 Group with PowerShell Within M365 , SharePoint and Teams together provides a rich collaboaration platform. When a team site is created from SharePoint admin centre, it is not associated with a Teams despite a M365 group is created in the background. To extend SharePoint collaboration features , there is a need to “teamify” an existing Microsoft 365 Group, essentially attaching a new Teams instance to it to allow use of channels and other apps.
posts
Counting Files and folders within SharePoint Libraries using PnP PowerShell
Counting Files and Folders within SharePoint Libraries using PnP PowerShell This post shows a PowerShell script using PnP PowerShell module to count the number of files and folders within a SharePoint library. It might be useful doing an inventory of file count.
$SiteURL = "Counting Files within a SharePoint Library using PnP PowerShell" # Generate a unique log file name using today's date $dateTime = (Get-Date).toString("dd-MM-yyyy") $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.
posts
Resolving the 'PnP PowerShell Not Digitally Signed' Issue
Resolving the ‘PnP PowerShell Not Digitally Signed’ Issue If you’ve recently upgraded PnP PowerShell to the latest nightly build and are encountering errors when trying to execute any PnP PowerShell cmdlets, this guide is for you.
PS C:\Users\RAuckloo> connect-pnponline -url https://contoso-admin.sharepoint.com -Interactive connect-pnponline: The 'connect-pnponline' command was found in the module 'PnP. PowerShell', but the module could not be loaded due to the following error: [Errors occurred while loading the format data file: \\contoso-it.
posts
Retrieving File Count and Size of a folder using PnP PowerShell
Retrieving File Count and Size of a folder within a SharePoint Library using PnP PowerShell This post covers a PowerShell script that uses the PnP PowerShell module to retrieve the file count and total size of a specific folder within a SharePoint library.
#Parameters $SiteURL = "https://contoso.sharepoint.com/sites/company311" $FolderSiteRelativeURL = "Shared Documents/Test1" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get the folder $Folder = Get-PnPFolder -Url $FolderSiteRelativeURL -Includes ListItemAllFields #Get the total Size of the folder - with versions Write-host "Size of the Folder:" $([Math]::Round(($Folder.
posts
Retrieving SiteId from Microsoft Graph for Subsequent API Calls
Retrieving SiteId from Microsoft Graph for Subsequent API Calls This post offers an option to retrieve a SiteId from Microsoft Graph using PnP PowerShell. This can be particularly useful when making further API calls that require the SiteId.
$siteurl = "https://contoso.sharepoint.com/sites/Company311" Connect-PnPOnline -url $siteurl -interactive # for the site url https://contoso-admin.sharepoint.com/teams/app-m365 # Extract the domain and site name $uri = New-Object System.Uri($siteurl) $domain = $uri.Host $siteName = $uri.AbsolutePath # Construct the new URL $RestMethodUrl = "v1.
posts
Restrict certain SharePoint sites from tenant search and Copilot for M365 using PowerShell
Excluding certain SharePoint sites from search would mean the contents from the excluded sites won’t be available to M365 tenant search and Copilot for M365 using Restricted SharePoint Search feature.
The downsides using this feature are:
Limited Findability: By excluding certain SharePoint sites from search, you limit the findability of data. Users would need to know the specific sites where the data resides in order to search for it. This can hinder efficient data retrieval and records management.
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: Azure DevOps
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
posts
Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform There are loads of posts explaining Application Lifecycle Management for the Power Platform using Azure DevOps most using the graphical classical pipeline. The latest post I read on this is Application Lifecycle Management for the Power Platform using Azure DevOps by Luise Freese which is brilliant.
Please read article covering difference between YAML and Classic UI to explain why you may want the modern YAML pipeline.
posts
Coauthoring in power apps issues
Coauthoring with power apps issues Coauthoring in power apps allows multiple power apps developers to work on the same canvas app. Despite being an experimental feature we decided to give a try to speed up the development process. We used the blog post [How To Setup Power Apps Co-Authoring - Azure Dev Ops Version] (https://www.matthewdevaney.com/how-to-setup-power-apps-co-authoring-azure-dev-ops-version/). The tutorial covers step-by-step instructions for enabling co-authoring for canvas apps in Power Apps using Azure DevOps repository.
Tag: Deployment
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
posts
Unable to find Power Platform in Azure DevOps
Unable to find Power Platform in Azure DevOps Issue I was Unable to find the powerplatform in Azure devops
Solution The solution is to install the Extension: Power Platform Build Tools (2.0.5) to Organisation.
This will enable the Power Platform service connection.
References Unable to find the powerplatform in Azure devops
posts
Deploying SPFx Packages from Tenant App Catalog to Hub Site and Associated Sites
Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites There is the blog post how Deploying and Installing SharePoint Framework (SPFx) solutions using PnP PowerShell to Hub Site and Associated Sites using site collection app catalog. This post covers how to perform same objective but using the tenant level app catalog if the SPFx packages have not been added to all sites globally during deployment in the tenant level app catalog and instead need targeted deployment or upgrades on specific sites.
Tag: Pipelines
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
Tag: SPFx
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
posts
Upgrading SPFx to the Latest Version SPFx 1.20.0 - lessons learned
Introduction With the release of SPFx 1.20.0 in September 2024, I decided to upgrade an existing SPFx solution to the latest version following a post by Microsoft 365 & Power Platform Community on Linkedin This process can be challenging, especially when dealing with dependency version conflicts. In this blog post, I’ll walk you through the steps to upgrade your SPFx solution to version 1.20.0, including installing Node.js 18.18.0, using the CLI for Microsoft 365 to generate upgrade instructions, and addressing common issues.
posts
Fixing SPFx: Unable to Use the Latest Version in scaffolding project
Introduction The SharePoint Framework (SPFx) 1.20.0 has been generally available since September 2024. However, if you work with SPFx, you might encounter issues when trying to use the latest version. SPFx still requires Node.js 18.x.x. In this blog post, I’ll walk you through the steps I took to install Node.js 18.20.4 using NVM, install the SPFx toolchain, and troubleshoot an issue where the project scaffolding defaulted to an older version of SPFx.
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs This post covers a PowerShell script to generate an inventory of SPFx installations within your SharePoint Online environment which will help you maintain oversight of your SPFx solutions, ensuring they are up-to-date and compliant. The script was particularly useful in pinpointing sites within the tenant where third-party applications, specifically an analytics SPFx component, were deployed. This was crucial for ensuring that data collection was confined to designated sites, such as the intranet in my case study.
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
posts
Troubleshooting NVM Setup Issues for SPFx Development
Troubleshooting NVM Setup Issues for SPFx Development I have not used my dev machine for SPFx development for over a year. Before diving into any new SPFx development, I followed the typical procedure of installing the latest Node.js version 18.19.0 supported by the current SPFx version (1.18.2) using nvm (node version management).nvm allows to maintain different development environment.
nvm install 18.19.0 Following this, I proceeded to install the SPFx toolchain:
posts
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell SharePoint Framework (SPFx) solutions are a powerful tool for extending and customizing SharePoint sites. However, managing these solutions across multiple sites in a SharePoint tenant can be a daunting task. Fortunately, PnP PowerShell provides automation capabilities that can streamline these operations and ensure consistency across the tenant.
The blog post Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites covers how to deploy SPFx solutions across a hub site and associated sites.
posts
Deploying SPFx Packages from Tenant App Catalog to Hub Site and Associated Sites
Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites There is the blog post how Deploying and Installing SharePoint Framework (SPFx) solutions using PnP PowerShell to Hub Site and Associated Sites using site collection app catalog. This post covers how to perform same objective but using the tenant level app catalog if the SPFx packages have not been added to all sites globally during deployment in the tenant level app catalog and instead need targeted deployment or upgrades on specific sites.
Tag: Workload Identity Federation
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
Tag: Home Site
posts
Viva Connections Experiences to manage Home Site through REST API
Introduction The SharePoint Home Site experiences have moved to Viva Connections and is managed from the Microsoft 365 admin centre through the Viva Connections admin centre
I started exploring how to manage these SharePoint Home Sites/Viva Experiences using browser’s developer tools, considering I had little luck with the SPO PowerShell, PnP PowerShell, and CLI for M365. These PowerShell experiences will be updated at some point to work with the updated Viva Connections Experience.
Tag: REST API
posts
Viva Connections Experiences to manage Home Site through REST API
Introduction The SharePoint Home Site experiences have moved to Viva Connections and is managed from the Microsoft 365 admin centre through the Viva Connections admin centre
I started exploring how to manage these SharePoint Home Sites/Viva Experiences using browser’s developer tools, considering I had little luck with the SPO PowerShell, PnP PowerShell, and CLI for M365. These PowerShell experiences will be updated at some point to work with the updated Viva Connections Experience.
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
Power Automate : Move File bypassing locked issue using CreateCopyJobs endpoint
The SharePoint - Move file action can be used to move files, however the file can’t be moved if the file was accessed by the current Power Automate flow for any processing reslutng in a locked file error.
{ “status”: 400, “message”: “File ‘Shared Documents/Attendances/To Be Processed/Attendance -16072024.xlsx’ cannot be moved because it is in locked mode.\r\nclientRequestId: d6df7566-881f-4f14-8548-c5fac1eda46d\r\nserviceRequestId: 606841a1-40f0-9000-9c69-507df9b21720” }
Handling Locked Files There are two options to handlelocked files when using SharePoint - Move file action:
posts
Power Automate: Retrieve User Details
This post covers how to leverage SharePoint REST API to get user details from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to retrieve a user details.
Send an Http request to SharePoint action renamed to Get Page Author Details Site Address: https://test.sharepoint.com Method: GET URI: _api/Web/GetUserById(14) Here’s the output from the API:
Here’s the output from the API:
posts
Power Automate: Retrieve Users from a SharePoint Group
This post covers how to leverage SharePoint REST API to get users from a SharePoint group from Power Automate using the Send an Http request to SharePoint action. In the example below a SharePoint Group has been defined for approvers of a particular process and needed to be retrieved to be assigned an approval task.
Within a Power Automate flow follow the steps below to retrieve users from a SharePoint group.
posts
Power Automate : Update Author and Editor of a Page
This post outlines how to use Power Automate to update author and editor of a Page within SharePoint using the Send an Http request to SharePoint action.
Within a Power Automate flow, follow the following steps
Add Send an Http request to SharePoint renamed to Update Author Properties Property Value Site Address The SharePoint site URL Method POST Uri See Uri below Headers See Headers table below Body See Body below Uri _api/web/lists/GetByTitle(‘Site%20Pages’)/items(1)/ValidateUpdateListItem()`
Tag: Viva Connections Experiences
posts
Viva Connections Experiences to manage Home Site through REST API
Introduction The SharePoint Home Site experiences have moved to Viva Connections and is managed from the Microsoft 365 admin centre through the Viva Connections admin centre
I started exploring how to manage these SharePoint Home Sites/Viva Experiences using browser’s developer tools, considering I had little luck with the SPO PowerShell, PnP PowerShell, and CLI for M365. These PowerShell experiences will be updated at some point to work with the updated Viva Connections Experience.
Tag: CAML
posts
Restoring Previous Versions of Items in a SharePoint List Using PnP PowerShell
When working with SharePoint lists, there might be times when you need to restore items to a previous version. Whether it’s due to an error, unwanted changes, or simply needing to revert to an earlier state, SharePoint’s versioning feature is a lifesaver. I used the script to undo bulk changes made by a Power Automate flow after the process failed halfway due to some data needing correction. For data integrity, the bulk update needed to be undone before running the Power Automate flow again after the data corrections were made.
posts
Overcoming SharePoint's List View Threshold with CAML Queries in PowerShell
Overcoming SharePoint’s List View Threshold with CAML Queries in PowerShell Encountering the list view threshold error in SharePoint when dealing with lists exceeding 5,000 items is a common challenge. Using CAML queries within PowerShell scripts offers a server-side solution to efficiently filter and retrieve data, yet is prone to the list view threshold error.
Sample script This is the sample PowerShell script querying the specified SharePoint list using CAML query.
Tag: List
posts
Restoring Previous Versions of Items in a SharePoint List Using PnP PowerShell
When working with SharePoint lists, there might be times when you need to restore items to a previous version. Whether it’s due to an error, unwanted changes, or simply needing to revert to an earlier state, SharePoint’s versioning feature is a lifesaver. I used the script to undo bulk changes made by a Power Automate flow after the process failed halfway due to some data needing correction. For data integrity, the bulk update needed to be undone before running the Power Automate flow again after the data corrections were made.
posts
Update Choice values of List Items in SharePoint List
Maintaining up-to-date list items, especially when dealing with choice fields, can be a daunting task sepcially after choice field values are updated. We need a way to update these old values to the correct new ones.
The Challenge SharePoint lists use choice fields to categorise items. Over time, the need to update these choice values can arise, whether due to changes in terminology, business processes, or error correction. Manually updating these values across numerous list items is not only time-consuming but also prone to human error.
posts
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell Utilizing ChatGPT to generate test data for various applications is a powerful capability. After stumbling upon the sample script Create test users using MS Graph API from list or ask ChatGPT to generate test users by Valeras Narbutas on creating test users with MS Graph API, I decided to explore using ChatGPT to generate a list of data. This script harnesses OpenAI’s ChatGPT model to effortlessly generate a list of wellbeing activities.
posts
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency In this article, we explore how to efficiently update a large SharePoint list containing approximately 60,000 items using PnP-Batch. Updating such a substantial number of items individually can be time-consuming and prone to throttling issues. Prior to using PnP Batch , it was taking more than 12 hours to update 60k one by one. The article highlights the benefits of using PnP Batch, which significantly reduces the time taken for updates by sending fewer requests.
posts
Expanding Doughnut Chart in Microsoft Lists: Visualize Data in Segments and Track Progress
Expanding Doughnut Chart in Microsoft Lists: Visualize Data in Segments and Track Progress The doughnut chart is a powerful visualization tool that allows users to represent data in segments and track progress against targets. Frederico Sapia’s Doughnut Chart with percentage and values displayed is a valuable custom chart for Microsoft Lists, enabling users to visualize data effectively. However, the original chart allowed for only six slices, limiting its flexibility. In this blog post, we explore how to extend the doughnut chart to support up to nine slices, and we’ll also demonstrate how to display the percentage of each segment within the chart.
Tag: version
posts
Restoring Previous Versions of Items in a SharePoint List Using PnP PowerShell
When working with SharePoint lists, there might be times when you need to restore items to a previous version. Whether it’s due to an error, unwanted changes, or simply needing to revert to an earlier state, SharePoint’s versioning feature is a lifesaver. I used the script to undo bulk changes made by a Power Automate flow after the process failed halfway due to some data needing correction. For data integrity, the bulk update needed to be undone before running the Power Automate flow again after the data corrections were made.
Tag: DriveId
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
Tag: DriveItemId
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
Tag: File
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
posts
Getting Storage Metrics for a SharePoint site
Gaining an overview of what takes up space in a SharePoint site is crucial for monitoring large files or a significant number of versions.
Unfortunately, the storage metrics link, <siteurl>/_layouts/15/storman.aspx, won’t work for libraries with more than 5,000 files without nested folders. While this might go against information architecture principles, creating folders is an option to avoid the list view threshold error.
Here’s a PowerShell script to help you get storage metrics for your SharePoint site:
posts
Publishing Major Versions of Files in SharePoint with Power Automate
Publishing Major Versions of Files in SharePoint with Power Automate This post covers how to publish major versions for Office documents (Word, Excel, or PowerPoint) in SharePoint using Power Automate, especially after an approval task using the checkin and publish REST endpoints. This applies to libraries having minor versions enabled
Just for context, a Power Automate approval flow with trigger for a selected file needed publishing for the selected file as major version after being approved.
Tag: VroomDriveID
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
Tag: VroomItemID
posts
Get Drive ID and Drive Item ID for File for Further Microsoft Graph Operations using PnP PowerShell
Introduction When working with files in SharePoint, the drive ID and drive item ID are essential parameters for further manipulation using Microsoft Graph API. The drive ID is a base64 encoded string composed of the site ID, web ID, and list ID for a particular SharePoint library. For more details, refer to Microsoft Graph: Encoding and decoding the drive ID by Mikael Svenson. The item ID part appears to be a base32 encoding of the SharePoint item’s unique ID, though the exact mechanics are still being explored.
Tag: Microsoft 365 group
posts
Prevent Guests from Being Added to a Specific Microsoft 365 Group or Microsoft Teams team using PnP PowerShell
Introduction By default, guest access for Microsoft 365 groups is enabled within the tenant. This can be controlled either to allow or block guest access at the tenant level or for individual Microsoft 365 groups / Teams. For more information, check out Manage guest access in Microsoft 365 groups.
PowerShell Script to Prevent Guest Access Below is a PowerShell script that allows you to disable/enable guest access for specific Microsoft 365 groups.
Tag: Teams
posts
Prevent Guests from Being Added to a Specific Microsoft 365 Group or Microsoft Teams team using PnP PowerShell
Introduction By default, guest access for Microsoft 365 groups is enabled within the tenant. This can be controlled either to allow or block guest access at the tenant level or for individual Microsoft 365 groups / Teams. For more information, check out Manage guest access in Microsoft 365 groups.
PowerShell Script to Prevent Guest Access Below is a PowerShell script that allows you to disable/enable guest access for specific Microsoft 365 groups.
posts
Microsoft Teams - Teams icon missing in New chats & channels experience
Introduction If ever you had the chance to get your hands onto the New chats & channels experience, you may notice that the Teams icon is missing from the tray on the left To access the channels, it is an option within the chats.
Revert In case you find it confusing you can turn it off by following those steps
Click on the button Update, settings and more at the top of Teams
posts
Teamifying an Existing M365 Group with PowerShell
Teamifying an Existing M365 Group with PowerShell Within M365 , SharePoint and Teams together provides a rich collaboaration platform. When a team site is created from SharePoint admin centre, it is not associated with a Teams despite a M365 group is created in the background. To extend SharePoint collaboration features , there is a need to “teamify” an existing Microsoft 365 Group, essentially attaching a new Teams instance to it to allow use of channels and other apps.
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
posts
Teams Add-in Not Showing Within Outlook
Teams Add-in Not Showing Within Outlook The add-in for setting up a teams meeting within the outlook application was no longer showing. The add-in was not available to be enabled within Outlook as per Troubleshoot the Teams Meeting add-in in Outlook for Windows. Even after reinstalling Teams or creating a new profile within Outlook, it did not fix the issue. As a workaround I was using
Use Team calendar to create meeting Use Outlook Web App to create meetings With Microsoft Support’s help via a case we identified the issue was the missing following key:
Tag: Classic Designer
posts
Switching from Classic to New Designer in Power Automate
Introduction Have you ever encountered a stubborn Power Automate flow that won’t open in the new designer? For a long time, I stuck with the classic designer due to issues I faced with the new designer. However, I recently decided to make the switch for these reasons:
New Power Automate features will only be available in the new designer Microsoft will get rid of classic designer Future proof flows as they might not be editable if classic designer is gone unless Microsoft caters for incompatible action schemas In this blog post, I’ll share my experience and the steps I took to transition from the classic designer to the new designer in Power Automate.
Tag: M365 Groups
posts
Automate Renewal of Expiring M365 Groups Using PowerShell
Introduction Managing the lifecycle of Microsoft 365 Groups is important to prevent accidental deletion of M365 Groups. It is a good practice to set lifecycle expiration policy to control sprawl. However that means that the group will get automatically deleted after they expire. The Teams/M365 groups owners will get email notifications to renew within a certain timeframe , however if the owners missed the renewal notifications for different reasons, it may lead to accidental data loss.
Tag: New Designer
posts
Switching from Classic to New Designer in Power Automate
Introduction Have you ever encountered a stubborn Power Automate flow that won’t open in the new designer? For a long time, I stuck with the classic designer due to issues I faced with the new designer. However, I recently decided to make the switch for these reasons:
New Power Automate features will only be available in the new designer Microsoft will get rid of classic designer Future proof flows as they might not be editable if classic designer is gone unless Microsoft caters for incompatible action schemas In this blog post, I’ll share my experience and the steps I took to transition from the classic designer to the new designer in Power Automate.
Tag: Power Automate
posts
Switching from Classic to New Designer in Power Automate
Introduction Have you ever encountered a stubborn Power Automate flow that won’t open in the new designer? For a long time, I stuck with the classic designer due to issues I faced with the new designer. However, I recently decided to make the switch for these reasons:
New Power Automate features will only be available in the new designer Microsoft will get rid of classic designer Future proof flows as they might not be editable if classic designer is gone unless Microsoft caters for incompatible action schemas In this blog post, I’ll share my experience and the steps I took to transition from the classic designer to the new designer in Power Automate.
posts
Power Automate - Trigger a Flow from multiple Libraries and sites
Introduction In this blog post, we’ll explore how to trigger a single Power Automate flow from multiple SharePoint libraries and sites. This approach is particularly useful for scenarios where you need to standardize workflows across different document libraries and sites. It will avoid the need replicating the flows multiple times which may be harder to maintain and deploy.
The For a selected file action is used to achieve this. I have tried the Manually trigger a flowin vain as the context (site URL, library ID/name, and item ID) is not passed to the flow.
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
posts
Power Automate: Filter Array to Exclude First Approver from List of Approvers
Introduction In Power Automate, there are scenarios where a specific item needs to be excluded from an array to exclude. This blog post will guide you through the process of filtering an array to exclude the first approver from a list of approvers. This can be particularly useful in approval workflows where same person does not approve multiple stages.
Step-by-Step Guide Add Filter Array Action This action will allow filtering out the first approver from the list of approvers.
posts
Power Automate: Using Arrays as Environment Variables
Introduction In Power Automate/Power Platform, environment variables within solutions are essential for managing and configuring flows across different environments. However, there is no direct way to declare an environment variable as an array. This blog post will cover how to use JSON to store arrays as environment variables, enabling you to manage complex data structures efficiently.
Available Environment Variable Types Power Automate offers various types of environment variables you can select and configure:
posts
Power Automate: Get Page Author Details
Introduction In Power Automate, retrieving details about the author of a SharePoint page can be essential for various workflows. This blog post will guide you through the steps to get the page author details using Power Automate.
Add Send an Http request to SharePoint action and rename it to Get Page Author Details.Configure the action with the following settings: Site Address: triggerOutputs()?[‘body/SiteUrl’] Method: Get Uri : /_api/web/_api/Web/GetUserById(body(‘Parse_Page_Details_JSON’)?[’d’]?[‘AuthorId’]) Output of the API
posts
Power Automate: Export Flow within solution as package (.zip)
I had a flow created in the default environment that needed to be moved into a solution in a managed environment. However, the export link for Package (.zip) was missing as the flow was within a default solution (preferred).
It was a huge flow, and manually recreating each action would have taken a considerable amount of time.
I checked another flow where the Package (.zip) was available.
Upon clicking the link, I noticed that /export was appended to the URL of the flow.
posts
Power Automate : Move File bypassing locked issue using CreateCopyJobs endpoint
The SharePoint - Move file action can be used to move files, however the file can’t be moved if the file was accessed by the current Power Automate flow for any processing reslutng in a locked file error.
{ “status”: 400, “message”: “File ‘Shared Documents/Attendances/To Be Processed/Attendance -16072024.xlsx’ cannot be moved because it is in locked mode.\r\nclientRequestId: d6df7566-881f-4f14-8548-c5fac1eda46d\r\nserviceRequestId: 606841a1-40f0-9000-9c69-507df9b21720” }
Handling Locked Files There are two options to handlelocked files when using SharePoint - Move file action:
posts
JSON Data Handling in Power Automate: Double Quotes
When using Power Automate action Send an Http request to SharePoint specially to send data in the body to a REST API call, for instance to create a news link from a SharePoint List Item, you might encounter issues if the body contains double quotes in the title or description. This blog post will walk you through the problem and provide solutions to handle double quotes in JSON strings.
Problem Overview Using the Send an Http request to SharePoint action to create a news link can fail if the JSON body contains double quotes.
posts
Power Automate: Create and Publish a News Link
This post covers how to leverage SharePoint REST API to create and publish a news link from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to create and publish a news link details.
Send an Http request to SharePoint action renamed to Get Page Details. Site Address : site url Method : GET Uri : /_api/web/lists/GetByTitle(‘Site%20Pages’)/items(10) Parse JSON renamed to Parse Page Details JSON Add the action Parse JSON and refer to the content from previous steps
posts
Power Automate: Retrieve User Details
This post covers how to leverage SharePoint REST API to get user details from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to retrieve a user details.
Send an Http request to SharePoint action renamed to Get Page Author Details Site Address: https://test.sharepoint.com Method: GET URI: _api/Web/GetUserById(14) Here’s the output from the API:
Here’s the output from the API:
posts
Power Automate: Retrieve Users from a SharePoint Group
This post covers how to leverage SharePoint REST API to get users from a SharePoint group from Power Automate using the Send an Http request to SharePoint action. In the example below a SharePoint Group has been defined for approvers of a particular process and needed to be retrieved to be assigned an approval task.
Within a Power Automate flow follow the steps below to retrieve users from a SharePoint group.
posts
Power Automate : Update Author and Editor of a Page
This post outlines how to use Power Automate to update author and editor of a Page within SharePoint using the Send an Http request to SharePoint action.
Within a Power Automate flow, follow the following steps
Add Send an Http request to SharePoint renamed to Update Author Properties Property Value Site Address The SharePoint site URL Method POST Uri See Uri below Headers See Headers table below Body See Body below Uri _api/web/lists/GetByTitle(‘Site%20Pages’)/items(1)/ValidateUpdateListItem()`
posts
Update A row action from Dataverse connector missing in Power Automate flow
Update A row action from Dataverse connector was not available to an older Power Automate.The requirement was to add ability to cancel an approval task created via action ‘Create Approval’ within 30 days as Power Automate flows timeout after 30 days. I noticed the action Update a Row in Selected Environment and decided to try it instead.
Unfortunately it threw the forbidden error for no apparent reason with no obvious permissions to grant.
posts
Power Automate copy actions across different environments
Power Automate copy actions across different environments If an action is copied from a different environment, the action is not avaible from the My Clipboard, if not you are presented with the following message only.
Save time and paste your most-used Flow code snippets here.
Select the ellipsis menu on any trigger or action, then choose Copy to my Clipboard.
Note: Pasted code clears each time you log out of Power Automate.
posts
Handling Locked Office Files issue In Power Automate
Handling Locked Office Files issue In Power Automate Inspired by the workaround described by Pieter Veenstra System Updates in SharePoint from Power Automate using the ValidateUpdateListItem endpoint to help with the locked file issue, this post covers file version creation as well.
File Locked Issue File lock issues in Power Automate can occur due to:
The file being opened by a user. The file being updated by a Power Automate flow, which may take up to 6 minutes to release the lock.
posts
Power Automate updating multi line field with more than 255 characters
Power Automate flow succeeded despite failure to update multi line text field within a SharePoint Library Updating multi-line text fields in a SharePoint Library from Power Automate flows, especially when the content exceeds 255 characters might fail if the field is not updated to allow unlimited length. This can cause workflows to fail silently.
In a recent scenario, an action was added to a Power Automate flow to update a SharePoint Library’s multi-line text field named ‘ErrorLog’ with error details captured during the flow’s execution.
posts
DateTime Handling in Power Automate
DateTime Handling in Power Automate Manipulating dates and times in Power Automate is a requirement at times. This post covers a few useful scenerios.
Add To Time For instance, adding a specific number of months to a date retrieved from an action using AddToTime function:
addToTime(body(‘Wait_for_an_approval_2’)?[‘completionDate’], int(body(‘Get_file_properties’)?[‘ReviewFrequency’]?[‘Value’]), ‘Month’, ‘dd/MM/yyyy HH:mm’)
Substract Time Specific number of months can be substracted from the date retrieved from an action
string(subtractFromTime(items(‘Apply_to_each’)?[‘DueDate’],1,‘Month’,‘dd/MM/yyyy HH:mm’))
Format Date Time Formatting date to a specific string format is essential otherwise update of data fields might fail because of culture differences.
posts
Power Automate fix for InvalidTemplate: Unable to process template language expressions
Power Automate fix for InvalidTemplate: Unable to process template language expressions InvalidTemplate. Unable to process template language expressions in action can happen with actions within PowerAutomate. In my scenerio I added the encodian action ‘Convert_to_PDF’ and was resubmitting a flow for testing and kept getting the error message.
InvalidTemplate. Unable to process template language expressions in action ‘Convert_to_PDF’ inputs at line ‘0’ and column ‘0’: ‘The template language expression ‘json(decodeBase64(secrets(‘X-MS-APIM-Tokens’)))[’$connections’][‘shared_encodiandocumentmanager’][‘connectionId’]’ cannot be evaluated because property ‘shared_encodiandocumentmanager’ doesn’t exist, available properties are ‘shared_sharepointonline, shared_office365, shared_approvals, shared_teams_1’.
posts
Publishing Major Versions of Files in SharePoint with Power Automate
Publishing Major Versions of Files in SharePoint with Power Automate This post covers how to publish major versions for Office documents (Word, Excel, or PowerPoint) in SharePoint using Power Automate, especially after an approval task using the checkin and publish REST endpoints. This applies to libraries having minor versions enabled
Just for context, a Power Automate approval flow with trigger for a selected file needed publishing for the selected file as major version after being approved.
posts
Power Automate - Restore deleted flows
I accidentally deleted a power automate flow and needed a way of restoring it. I stumbled on Restore deleted flows to restore the deleted flows.
However the action List Flows as Admin (v2) was not returning all the flows, hence the deleted flow was missing. If it happens , enables the pagination setting of the action withing settings tab and set the threshold to ensure the number is more than number of flows you have in the environment.
posts
JSON Data Handling in Power Automate: outputs versus body
JSON Data Handling in Power Automate : outputs versus body In Power Automate, JSON data output from various actions is key to connect each other.
Accessing Action Outputs Accessing the outputs of a specific action, such as the action ‘Get file properties’, the spcific property can be accessed via the outputs, for instance file name with extension.:
outputs(‘Get_file_properties’)?[‘body/{FilenameWithExtension}’]
Referencing Action Body A streamlined way is to reference the body directly making it simpler.
posts
Optimizing Email HTML for Outlook
Optimizing Email HTML for Outlook using the ‘Send Email’ action within Power Automate When crafting attention-grabbing emails, the HTML structure plays a pivotal role. I recently encountered challenges in achieving consistent formatting across Outlook desktop and web versions using the Send Email action within Power Automate.
Using div Tags for Responsiveness At first, I experimented with divs to ensure responsiveness and modern HTML formatting. The code appeared as follows:
<style> .
posts
Exploring some Limitations of Copilot in Power Automate
Exploring some Limitations of Copilot in Power Automate I was thrilled when Copilot became available in the UK region within Power Automate around mid-November 2023. To understand its functionalities and limitations, I started exploring. Please refer to Understanding the Cloud Flows Designer, which outlines some limitations and described the Flows Designer experience.
Creating New Flows While creating a new flow using the prompt “Start an approval process and update the item in a SharePoint list when a new item is created,” I noticed a functional flow generated.
Tag: mMdules
posts
Upgrading SPFx to the Latest Version SPFx 1.20.0 - lessons learned
Introduction With the release of SPFx 1.20.0 in September 2024, I decided to upgrade an existing SPFx solution to the latest version following a post by Microsoft 365 & Power Platform Community on Linkedin This process can be challenging, especially when dealing with dependency version conflicts. In this blog post, I’ll walk you through the steps to upgrade your SPFx solution to version 1.20.0, including installing Node.js 18.18.0, using the CLI for Microsoft 365 to generate upgrade instructions, and addressing common issues.
Tag: Node.js
posts
Upgrading SPFx to the Latest Version SPFx 1.20.0 - lessons learned
Introduction With the release of SPFx 1.20.0 in September 2024, I decided to upgrade an existing SPFx solution to the latest version following a post by Microsoft 365 & Power Platform Community on Linkedin This process can be challenging, especially when dealing with dependency version conflicts. In this blog post, I’ll walk you through the steps to upgrade your SPFx solution to version 1.20.0, including installing Node.js 18.18.0, using the CLI for Microsoft 365 to generate upgrade instructions, and addressing common issues.
Tag: New chats & channels experience
posts
Microsoft Teams - Teams icon missing in New chats & channels experience
Introduction If ever you had the chance to get your hands onto the New chats & channels experience, you may notice that the Teams icon is missing from the tray on the left To access the channels, it is an option within the chats.
Revert In case you find it confusing you can turn it off by following those steps
Click on the button Update, settings and more at the top of Teams
Tag: Check SPFx version
posts
Fixing SPFx: Unable to Use the Latest Version in scaffolding project
Introduction The SharePoint Framework (SPFx) 1.20.0 has been generally available since September 2024. However, if you work with SPFx, you might encounter issues when trying to use the latest version. SPFx still requires Node.js 18.x.x. In this blog post, I’ll walk you through the steps I took to install Node.js 18.20.4 using NVM, install the SPFx toolchain, and troubleshoot an issue where the project scaffolding defaulted to an older version of SPFx.
Tag: cmd
posts
Fixing SPFx: Unable to Use the Latest Version in scaffolding project
Introduction The SharePoint Framework (SPFx) 1.20.0 has been generally available since September 2024. However, if you work with SPFx, you might encounter issues when trying to use the latest version. SPFx still requires Node.js 18.x.x. In this blog post, I’ll walk you through the steps I took to install Node.js 18.20.4 using NVM, install the SPFx toolchain, and troubleshoot an issue where the project scaffolding defaulted to an older version of SPFx.
Tag: Node
posts
Fixing SPFx: Unable to Use the Latest Version in scaffolding project
Introduction The SharePoint Framework (SPFx) 1.20.0 has been generally available since September 2024. However, if you work with SPFx, you might encounter issues when trying to use the latest version. SPFx still requires Node.js 18.x.x. In this blog post, I’ll walk you through the steps I took to install Node.js 18.20.4 using NVM, install the SPFx toolchain, and troubleshoot an issue where the project scaffolding defaulted to an older version of SPFx.
posts
Troubleshooting NVM Setup Issues for SPFx Development
Troubleshooting NVM Setup Issues for SPFx Development I have not used my dev machine for SPFx development for over a year. Before diving into any new SPFx development, I followed the typical procedure of installing the latest Node.js version 18.19.0 supported by the current SPFx version (1.18.2) using nvm (node version management).nvm allows to maintain different development environment.
nvm install 18.19.0 Following this, I proceeded to install the SPFx toolchain:
Tag: nvm
posts
Fixing SPFx: Unable to Use the Latest Version in scaffolding project
Introduction The SharePoint Framework (SPFx) 1.20.0 has been generally available since September 2024. However, if you work with SPFx, you might encounter issues when trying to use the latest version. SPFx still requires Node.js 18.x.x. In this blog post, I’ll walk you through the steps I took to install Node.js 18.20.4 using NVM, install the SPFx toolchain, and troubleshoot an issue where the project scaffolding defaulted to an older version of SPFx.
posts
Troubleshooting NVM Setup Issues for SPFx Development
Troubleshooting NVM Setup Issues for SPFx Development I have not used my dev machine for SPFx development for over a year. Before diving into any new SPFx development, I followed the typical procedure of installing the latest Node.js version 18.19.0 supported by the current SPFx version (1.18.2) using nvm (node version management).nvm allows to maintain different development environment.
nvm install 18.19.0 Following this, I proceeded to install the SPFx toolchain:
Tag: Everyone
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
Tag: Everyone except external users
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
Tag: Microsoft 365 Copilot
posts
Manage 'Everyone' and 'Everyone except external users' claim within a SharePoint site using PowerShell
Introduction As part of Microsoft 365 Copilot readiness, you may want to find where “Everyone and “Everyone except external users” claims are granted permissions which is a cause of oversharing. This blog post will guide you through using PowerShell to manage and audit the “Everyone” and “Everyone except external users” claims within your SharePoint site collection.
For more insights on why the “Everyone except external users” group is riskier than “People in your organization,” refer to Copilot for Microsoft 365 Data Ready – Where “Everyone except external users” group is more risky than “People in your organization” links!
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
Tag: Audit
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
Tag: Compliance
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
Tag: M365 Copilot rollout
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
Tag: Retention Label
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
Tag: Sensitivity Label
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: SharePoint Online
posts
PowerShell: Fetch Files with Retention or Sensitivity Labels in SharePoint Online
Introduction Understanding the sensitivity and retention labels applied to files in your SharePoint Online sites is essential for maintaining data security and compliance. These labels enable you to manage and protect your data by defining retention periods and handling sensitive information appropriately. This is particularly important for initiatives like the Microsoft 365 Copilot rollout, ensuring that the correct files are stored within the appropriate SharePoint sites. For example, if a SharePoint site is a public Team site, files labeled as confidential should be moved to a private Team site or existing Team site updated from public to private.
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
How to Filter SharePoint Libraries to Return Less Than 5,000 Items
SharePoint Online has a list view threshold (LVT) of 5,000 items, which can cause performance issues if exceeded.
This post provides a workaround through filtering libraries/lists to stay within this limit and avoid common problems associated with large lists.
The Problem When a SharePoint library exceeds the 5,000-item threshold, various issues can arise. These include:
Inability to Browse Folders Navigating through folders becomes challenging and sometimes impossible through desktop office apps (Excel, Word,etc.
posts
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell This PowerShell script powered by PnP PowerShell can help to get total count of files, folders, and list items across SharePoint tenant. This script is invaluable for administrators looking to perform audits, verify data migrations, or simply keep tabs on the content sprawl within their environments. The use case of this script was to get a total number of items that would be ingested into a third party application Records365 (provided by RecordPoint) to ensure the number tally for compliance purposes and identify any gaps.
posts
SharePoint Search: Excluding Columns from Search Results
SharePoint Search: Excluding Columns from Search Results SharePoint empowers users to manage and organize vast amounts of data efficiently. However, not all data within a SharePoint site might need to be searchable. Do you miss the functionality to control visibility of sensitive or irrelevant information in column.
The Challenge You might have encountered instances where you need certain columns in your SharePoint lists or libraries to be excluded from search results.
Tag: API Permissions
posts
PnP Powershell GetPnPflow using asAdmin parameter
As part of the multi tenant app registration for PnP PowerShell deprecated on the 9th September 2024, we need to have our own app registration and grant the required permissions. Read more from Changes in PnP Management Shell registration in Microsoft 365
For the cmdlet Get-PnPFlow it requires permissions Azure: management.azure.com which is Azure Service Management
Simply adding the permission as it does not require admin consent and executing the cmdlet below yields no results
Tag: Azure Service Management
posts
PnP Powershell GetPnPflow using asAdmin parameter
As part of the multi tenant app registration for PnP PowerShell deprecated on the 9th September 2024, we need to have our own app registration and grant the required permissions. Read more from Changes in PnP Management Shell registration in Microsoft 365
For the cmdlet Get-PnPFlow it requires permissions Azure: management.azure.com which is Azure Service Management
Simply adding the permission as it does not require admin consent and executing the cmdlet below yields no results
Tag: EntraID
posts
PnP Powershell GetPnPflow using asAdmin parameter
As part of the multi tenant app registration for PnP PowerShell deprecated on the 9th September 2024, we need to have our own app registration and grant the required permissions. Read more from Changes in PnP Management Shell registration in Microsoft 365
For the cmdlet Get-PnPFlow it requires permissions Azure: management.azure.com which is Azure Service Management
Simply adding the permission as it does not require admin consent and executing the cmdlet below yields no results
Tag: Library
posts
SharePoint - working round restore a library link missing
Introduction Have you ever encountered the frustrating situation where the Restore a library link in SharePoint is missing or inconsistently available? This can be a significant issue when you need to restore a library urgently.
The Problem Typically, you would expect to see the link ‘Restore This Library’ in the SharePoint interface: Restore library
However, in some cases, this link might be missing:
Restore Library Missing
The Workaround After some investigation, I discovered a workaround.
posts
Getting Storage Metrics for a SharePoint site
Gaining an overview of what takes up space in a SharePoint site is crucial for monitoring large files or a significant number of versions.
Unfortunately, the storage metrics link, <siteurl>/_layouts/15/storman.aspx, won’t work for libraries with more than 5,000 files without nested folders. While this might go against information architecture principles, creating folders is an option to avoid the list view threshold error.
Here’s a PowerShell script to help you get storage metrics for your SharePoint site:
posts
Counting Files and folders within SharePoint Libraries using PnP PowerShell
Counting Files and Folders within SharePoint Libraries using PnP PowerShell This post shows a PowerShell script using PnP PowerShell module to count the number of files and folders within a SharePoint library. It might be useful doing an inventory of file count.
$SiteURL = "Counting Files within a SharePoint Library using PnP PowerShell" # Generate a unique log file name using today's date $dateTime = (Get-Date).toString("dd-MM-yyyy") $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.
Tag: Restore a library
posts
SharePoint - working round restore a library link missing
Introduction Have you ever encountered the frustrating situation where the Restore a library link in SharePoint is missing or inconsistently available? This can be a significant issue when you need to restore a library urgently.
The Problem Typically, you would expect to see the link ‘Restore This Library’ in the SharePoint interface: Restore library
However, in some cases, this link might be missing:
Restore Library Missing
The Workaround After some investigation, I discovered a workaround.
Tag: For a selected file
posts
Power Automate - Trigger a Flow from multiple Libraries and sites
Introduction In this blog post, we’ll explore how to trigger a single Power Automate flow from multiple SharePoint libraries and sites. This approach is particularly useful for scenarios where you need to standardize workflows across different document libraries and sites. It will avoid the need replicating the flows multiple times which may be harder to maintain and deploy.
The For a selected file action is used to achieve this. I have tried the Manually trigger a flowin vain as the context (site URL, library ID/name, and item ID) is not passed to the flow.
Tag: libraries
posts
Power Automate - Trigger a Flow from multiple Libraries and sites
Introduction In this blog post, we’ll explore how to trigger a single Power Automate flow from multiple SharePoint libraries and sites. This approach is particularly useful for scenarios where you need to standardize workflows across different document libraries and sites. It will avoid the need replicating the flows multiple times which may be harder to maintain and deploy.
The For a selected file action is used to achieve this. I have tried the Manually trigger a flowin vain as the context (site URL, library ID/name, and item ID) is not passed to the flow.
posts
Update managed metadata field using list formatting
Using column formatting in SharePoint, you can update the values of other fields using the setValue function. This approach allows you to create dynamic functionality in your lists and libraries without extensive development, helping to avoid accumulating technical debt.
Updating a Managed Metadata field, however, is not as straightforward as simply specifying the display value. The field expects a specific format that includes the term’s ID (termId).
Understanding Column Formatting Column formatting in SharePoint involves using a combination of inline CSS, HTML, and JSON to control how fields in lists and libraries are displayed.
posts
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell This PowerShell script powered by PnP PowerShell can help to get total count of files, folders, and list items across SharePoint tenant. This script is invaluable for administrators looking to perform audits, verify data migrations, or simply keep tabs on the content sprawl within their environments. The use case of this script was to get a total number of items that would be ingested into a third party application Records365 (provided by RecordPoint) to ensure the number tally for compliance purposes and identify any gaps.
posts
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem Introduction In this blog post, we will explore an alternative approach to retrieving folder item properties using PnP PowerShell. We will discuss the limitations of the Get-PnPFolderItem cmdlet and demonstrate how to use Get-PnPListItem to overcome those limitations.
The Limitations of Get-PnPFolderItem The Get-PnPFolderItem cmdlet is not suitable for working with large libraries. When attempting to retrieve items from a large library, you may encounter the following error message:
posts
Internal References in SharePoint Column Formatting for Document libraries: leveraging Name, Folder and Path properties
SharePoint Column Formatting for Document libraries: Leveraging Name, Folder and Path properties While referencing [$Title] in lists is straightforward, document libraries demand a nuanced approach. Instead of [$Name], had to delve into the intricacies of internal names like $FileLeafRef and $FileRef when working with column formatting.
$FileLeafRef: Denotes the name of the file.
$FileRef: Represents the server-relative URL of the file.
Initial attempts to incorporate $FileSystemObjectType for folder identification was challenging, indicating that not all document library internal column names are supported.
Tag: Trigger
posts
Power Automate - Trigger a Flow from multiple Libraries and sites
Introduction In this blog post, we’ll explore how to trigger a single Power Automate flow from multiple SharePoint libraries and sites. This approach is particularly useful for scenarios where you need to standardize workflows across different document libraries and sites. It will avoid the need replicating the flows multiple times which may be harder to maintain and deploy.
The For a selected file action is used to achieve this. I have tried the Manually trigger a flowin vain as the context (site URL, library ID/name, and item ID) is not passed to the flow.
Tag: Permission
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: Service Principal
posts
Audit Service Principal Access to SharePoint Sites with Sites.Selected Permissions
Ensuring the security and compliance of your SharePoint environment is crucial, especially when dealing with service principals, Entra ID apps, or federated identities. These entities often have elevated permissions that, if mismanaged, can lead to unauthorized access and potential data breaches. Regularly auditing these permissions is a best practice for maintaining a secure and compliant SharePoint environment.
Application only or granular access to individual site instead of whole tenant, scope called “Sites.
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: Modified
posts
SharePoint Search for Documents: Modified Date and Title of Results
Introduction Have you ever encountered a situation where the search results in SharePoint show incorrect document titles and modified dates? This can be frustrating, especially when you rely on accurate metadata for document management. In this blog post, we’ll explore why this happens and how to resolve it.
Problem Statement A business user reported that the search results for a particular document displayed the wrong name and modified date. Upon investigation, we found that the title and modified date were being pulled from the document properties rather than the metadata shown in the SharePoint library.
Tag: Search
posts
SharePoint Search for Documents: Modified Date and Title of Results
Introduction Have you ever encountered a situation where the search results in SharePoint show incorrect document titles and modified dates? This can be frustrating, especially when you rely on accurate metadata for document management. In this blog post, we’ll explore why this happens and how to resolve it.
Problem Statement A business user reported that the search results for a particular document displayed the wrong name and modified date. Upon investigation, we found that the title and modified date were being pulled from the document properties rather than the metadata shown in the SharePoint library.
posts
Exclude News Links from News WebPart in SharePoint Online
SharePoint Online offers the useful feature of news links to avoid duplication of news articles and promote existing posts across different sites. This is especially beneficial when news creation is enabled for various departments or directorates, allowing them to share significant news organization-wide.
However, the News WebPart might display both the news links and the original articles, resulting in duplicated content.
To manage this, you can utilize the OriginalSourceUrl column, which stores the link to the source news article.
posts
SharePoint Search: Excluding Columns from Search Results
SharePoint Search: Excluding Columns from Search Results SharePoint empowers users to manage and organize vast amounts of data efficiently. However, not all data within a SharePoint site might need to be searchable. Do you miss the functionality to control visibility of sensitive or irrelevant information in column.
The Challenge You might have encountered instances where you need certain columns in your SharePoint lists or libraries to be excluded from search results.
Tag: Title
posts
SharePoint Search for Documents: Modified Date and Title of Results
Introduction Have you ever encountered a situation where the search results in SharePoint show incorrect document titles and modified dates? This can be frustrating, especially when you rely on accurate metadata for document management. In this blog post, we’ll explore why this happens and how to resolve it.
Problem Statement A business user reported that the search results for a particular document displayed the wrong name and modified date. Upon investigation, we found that the title and modified date were being pulled from the document properties rather than the metadata shown in the SharePoint library.
Tag: Drive Id
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
Tag: Environment Variable
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
posts
Power Automate: Using Arrays as Environment Variables
Introduction In Power Automate/Power Platform, environment variables within solutions are essential for managing and configuring flows across different environments. However, there is no direct way to declare an environment variable as an array. This blog post will cover how to use JSON to store arrays as environment variables, enabling you to manage complex data structures efficiently.
Available Environment Variable Types Power Automate offers various types of environment variables you can select and configure:
Tag: Excel for Business
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
Tag: REST
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Handling Locked Office Files issue In Power Automate
Handling Locked Office Files issue In Power Automate Inspired by the workaround described by Pieter Veenstra System Updates in SharePoint from Power Automate using the ValidateUpdateListItem endpoint to help with the locked file issue, this post covers file version creation as well.
File Locked Issue File lock issues in Power Automate can occur due to:
The file being opened by a user. The file being updated by a Power Automate flow, which may take up to 6 minutes to release the lock.
posts
Publishing Major Versions of Files in SharePoint with Power Automate
Publishing Major Versions of Files in SharePoint with Power Automate This post covers how to publish major versions for Office documents (Word, Excel, or PowerPoint) in SharePoint using Power Automate, especially after an approval task using the checkin and publish REST endpoints. This applies to libraries having minor versions enabled
Just for context, a Power Automate approval flow with trigger for a selected file needed publishing for the selected file as major version after being approved.
Tag: Solution
posts
Get Library Drive Id using Power Automate
When using Power Automate with Excel for Business actions, the drive ID for a library is automatically determined. However, if you deploy a Power Automate solution across different environments and use a library as a datasource environment variable, referencing this variable in the flow can result in an error due to an invalid drive ID.
Referencing the variable in the Power Automate flow, it will throw an error message failing to work our the drive id of the library.
posts
Power Automate: Using Arrays as Environment Variables
Introduction In Power Automate/Power Platform, environment variables within solutions are essential for managing and configuring flows across different environments. However, there is no direct way to declare an environment variable as an array. This blog post will cover how to use JSON to store arrays as environment variables, enabling you to manage complex data structures efficiently.
Available Environment Variable Types Power Automate offers various types of environment variables you can select and configure:
posts
Guide to Preparing setting files for Power Platform managed solution deployment
Guide to Preparing setting files for Power Platform managed solution deployment This guide will walk you through the process of creating a settings file for Power Platform managed solution deployment. Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform for detailed steps for ALM for power platform solutions.
posts
Power Platform Managed Solution Deployment with Connection References - Allow customisations
Power Platform Managed Solution Deployment with Connection References - Allow customisations This article explores the challenges and solutions associated with Power Platform managed solution deployment, specifically focusing on connection references and the “Allow Customisations” property.
Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: Sharing Links
posts
Remove Expired Sharing Links and Update Sharing Link Role to Read
Updating the expiration time and role for sharing links is still limited. Although it seems possible through the Graph API Update permission, I have been unable to pass the roles as body parameters.
Graph Explorer Attempts Using the following script:
Invoke-PnPGraphMethod -Url "v1.0/drives/$driveId/items/$driveItemId/permissions/$($ShareLink.Id)" -Method Patch -Content @{ roles = @("read") } threw the error message
“Invalid input: No Information provided to update the specifed permission”
From the UI Anyone link can’t be edited Organisation link can’t be edited Specific people links can be edited Using the network tab from the browser developer tools enables identifying the endpoint to update specific people links only.
posts
Deletion of sharing links with PowerShell
Deletion of sharing links with PowerShell As organisations look to deploy Copilot for Microsoft 365, ensuring the security and proper governance of shared content is important. The rollout of Copilot introduces advanced AI capabilities across Microsoft 365 apps using content from SharePoint/OneDrive, making it even more essential to manage sharing links judiciously to tackle the issue of oversharing.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
Tag: Enhanced Version Controls
posts
Enhanced Version Controls/Intelligent Versioning Trim with PowerShell
Microsoft has introduced Enhanced Version Controls, previously known as Intelligent Versioning, as part of its public preview in May 2024. This feature, detailed in the Microsoft 365 Roadmap 145802, aims to help administrators manage file versions more effectively, reducing storage costs by removing unnecessary versions.
Extract from the Roadmap
We are introducing new version controls that help tenant and site admins or document library owners reduce the storage footprint driven by low value file versions.
Tag: Intelligent Version
posts
Enhanced Version Controls/Intelligent Versioning Trim with PowerShell
Microsoft has introduced Enhanced Version Controls, previously known as Intelligent Versioning, as part of its public preview in May 2024. This feature, detailed in the Microsoft 365 Roadmap 145802, aims to help administrators manage file versions more effectively, reducing storage costs by removing unnecessary versions.
Extract from the Roadmap
We are introducing new version controls that help tenant and site admins or document library owners reduce the storage footprint driven by low value file versions.
Tag: Version Trim
posts
Enhanced Version Controls/Intelligent Versioning Trim with PowerShell
Microsoft has introduced Enhanced Version Controls, previously known as Intelligent Versioning, as part of its public preview in May 2024. This feature, detailed in the Microsoft 365 Roadmap 145802, aims to help administrators manage file versions more effectively, reducing storage costs by removing unnecessary versions.
Extract from the Roadmap
We are introducing new version controls that help tenant and site admins or document library owners reduce the storage footprint driven by low value file versions.
Tag: Array
posts
Power Automate: Filter Array to Exclude First Approver from List of Approvers
Introduction In Power Automate, there are scenarios where a specific item needs to be excluded from an array to exclude. This blog post will guide you through the process of filtering an array to exclude the first approver from a list of approvers. This can be particularly useful in approval workflows where same person does not approve multiple stages.
Step-by-Step Guide Add Filter Array Action This action will allow filtering out the first approver from the list of approvers.
Tag: Array Actions
posts
Power Automate: Filter Array to Exclude First Approver from List of Approvers
Introduction In Power Automate, there are scenarios where a specific item needs to be excluded from an array to exclude. This blog post will guide you through the process of filtering an array to exclude the first approver from a list of approvers. This can be particularly useful in approval workflows where same person does not approve multiple stages.
Step-by-Step Guide Add Filter Array Action This action will allow filtering out the first approver from the list of approvers.
Tag: Power Platform
posts
Power Automate: Using Arrays as Environment Variables
Introduction In Power Automate/Power Platform, environment variables within solutions are essential for managing and configuring flows across different environments. However, there is no direct way to declare an environment variable as an array. This blog post will cover how to use JSON to store arrays as environment variables, enabling you to manage complex data structures efficiently.
Available Environment Variable Types Power Automate offers various types of environment variables you can select and configure:
posts
AzureDevOps Powerplatform Deployment error due to timing issue
If it takes too long to deploy the solution, time out issues might occur. In this instance consider checking and updating the MaxAsyncWaitTime. Its value has been increased to 120 which means the deployment process will wait up to 120 seconds (or 2 minutes) for asynchronous operations such as import power platform solution to complete fixing the timing out issue.
The fix is to amend the MaxAsyncWaitTime to 120
- task: PowerPlatformImportSolution@2 inputs: authenticationType: PowerPlatformSPN PowerPlatformSPN: 'powerplatform-t-connection' Environment: 'https://contoso-st.
posts
Guide to Preparing setting files for Power Platform managed solution deployment
Guide to Preparing setting files for Power Platform managed solution deployment This guide will walk you through the process of creating a settings file for Power Platform managed solution deployment. Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform for detailed steps for ALM for power platform solutions.
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
posts
Power Platform Managed Solution Deployment with Connection References - Allow customisations
Power Platform Managed Solution Deployment with Connection References - Allow customisations This article explores the challenges and solutions associated with Power Platform managed solution deployment, specifically focusing on connection references and the “Allow Customisations” property.
Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
posts
Unable to find Power Platform in Azure DevOps
Unable to find Power Platform in Azure DevOps Issue I was Unable to find the powerplatform in Azure devops
Solution The solution is to install the Extension: Power Platform Build Tools (2.0.5) to Organisation.
This will enable the Power Platform service connection.
References Unable to find the powerplatform in Azure devops
Tag: Get User Details
posts
Power Automate: Get Page Author Details
Introduction In Power Automate, retrieving details about the author of a SharePoint page can be essential for various workflows. This blog post will guide you through the steps to get the page author details using Power Automate.
Add Send an Http request to SharePoint action and rename it to Get Page Author Details.Configure the action with the following settings: Site Address: triggerOutputs()?[‘body/SiteUrl’] Method: Get Uri : /_api/web/_api/Web/GetUserById(body(‘Parse_Page_Details_JSON’)?[’d’]?[‘AuthorId’]) Output of the API
posts
Power Automate: Retrieve User Details
This post covers how to leverage SharePoint REST API to get user details from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to retrieve a user details.
Send an Http request to SharePoint action renamed to Get Page Author Details Site Address: https://test.sharepoint.com Method: GET URI: _api/Web/GetUserById(14) Here’s the output from the API:
Here’s the output from the API:
Tag: Copilot for M365
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
posts
Restrict certain SharePoint sites from tenant search and Copilot for M365 using PowerShell
Excluding certain SharePoint sites from search would mean the contents from the excluded sites won’t be available to M365 tenant search and Copilot for M365 using Restricted SharePoint Search feature.
The downsides using this feature are:
Limited Findability: By excluding certain SharePoint sites from search, you limit the findability of data. Users would need to know the specific sites where the data resides in order to search for it. This can hinder efficient data retrieval and records management.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
Tag: SharePoint Advanced Management - SharePoint Premium
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
Tag: Sharing
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
Tag: Sites
posts
Get SharePoint site sharing Settings with PowerShell
Managing sharing settings for SharePoint sites is crucial for maintaining a secure and well-governed environment. With the help of PowerShell, administrators can efficiently retrieve and manage these settings across their SharePoint Online tenant. This ensures that sensitive information is not overshared and that your organisation’s data remains secure.
Importance of Reviewing Sharing Settings Reviewing sharing settings is essential to prevent oversharing, which can lead to data breaches and unauthorized access to sensitive information.
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
posts
Automating Site Reindexing with PowerShell
Automating Site Reindexing with PowerShell Introduction Keeping your SharePoint environment up-to-date is crucial, especially after making schema changes. One important aspect of maintaining accurate and relevant search results is to regularly reindex sites, libraries, or lists. In this blog post, we will explore a streamlined approach using PnP PowerShell to automate the reindexing process. By leveraging this script, you can ensure that your search results reflect the latest changes in your SharePoint environment.
Tag: Data Loss Prevention
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
Tag: DLP
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
Tag: Restricted SharePoint Search
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
Tag: Retention Policies
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
Tag: RSS
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
Tag: Tenant
posts
Empowering Secure Collaboration: Configuring SharePoint Tenant and Site Settings with PowerShell to prevent oversharing
Sharing lies at the heart of collaboration within SharePoint, facilitating seamless communication and teamwork. However, effective management of sharing settings is crucial to maintain data security and prevent unintended exposure. This is particularly important in light of tools like Copilot for M365.
An extract from Announcing SharePoint advanced management innovations for the AI and Copilot era
“With Copilot and AI, security has become a concern. Not because Copilot allows people to access anything more than they could previously; it just allows them to find information they have access to faster.
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
Tag: Basic Display API
posts
Display instagram posts into SharePoint using Instagram Basic Display Independent Publisher Connector
How to Use the Instagram Basic Display Connector in Power Apps and Power Automate Instagram is a popular social media platform with over 1 billion monthly active users. It is a great platform for sharing photos and videos, and many businesses use it to promote their products and services. With the Instagram Basic Display (IndependentPublisher) connector, you can now easily retrieve data from Instagram accounts and use it in Power Apps and Power Automate.
posts
Refresh long-lived token via Instagram Graph API
Learn how to automatically refresh long-lived access tokens using the Instagram Graph API. Refer to how the Long-Lived Access Tokens for more info.
Long-lived tokens are valid for 60 days and can be refreshed as long as they are at least 24 hours old but have not expired, and the app user has granted your app the instagram_graph_user_profile permission. Refreshed tokens are valid for 60 days from the date at which they are refreshed.
Tag: Instagram
posts
Display instagram posts into SharePoint using Instagram Basic Display Independent Publisher Connector
How to Use the Instagram Basic Display Connector in Power Apps and Power Automate Instagram is a popular social media platform with over 1 billion monthly active users. It is a great platform for sharing photos and videos, and many businesses use it to promote their products and services. With the Instagram Basic Display (IndependentPublisher) connector, you can now easily retrieve data from Instagram accounts and use it in Power Apps and Power Automate.
posts
Refresh long-lived token via Instagram Graph API
Learn how to automatically refresh long-lived access tokens using the Instagram Graph API. Refer to how the Long-Lived Access Tokens for more info.
Long-lived tokens are valid for 60 days and can be refreshed as long as they are at least 24 hours old but have not expired, and the app user has granted your app the instagram_graph_user_profile permission. Refreshed tokens are valid for 60 days from the date at which they are refreshed.
Tag: ListViewFormatting
posts
Display instagram posts into SharePoint using Instagram Basic Display Independent Publisher Connector
How to Use the Instagram Basic Display Connector in Power Apps and Power Automate Instagram is a popular social media platform with over 1 billion monthly active users. It is a great platform for sharing photos and videos, and many businesses use it to promote their products and services. With the Instagram Basic Display (IndependentPublisher) connector, you can now easily retrieve data from Instagram accounts and use it in Power Apps and Power Automate.
Tag: Power Apps
posts
Display instagram posts into SharePoint using Instagram Basic Display Independent Publisher Connector
How to Use the Instagram Basic Display Connector in Power Apps and Power Automate Instagram is a popular social media platform with over 1 billion monthly active users. It is a great platform for sharing photos and videos, and many businesses use it to promote their products and services. With the Instagram Basic Display (IndependentPublisher) connector, you can now easily retrieve data from Instagram accounts and use it in Power Apps and Power Automate.
posts
Coauthoring in power apps issues
Coauthoring with power apps issues Coauthoring in power apps allows multiple power apps developers to work on the same canvas app. Despite being an experimental feature we decided to give a try to speed up the development process. We used the blog post [How To Setup Power Apps Co-Authoring - Azure Dev Ops Version] (https://www.matthewdevaney.com/how-to-setup-power-apps-co-authoring-azure-dev-ops-version/). The tutorial covers step-by-step instructions for enabling co-authoring for canvas apps in Power Apps using Azure DevOps repository.
Tag: PowerAutomate
posts
Display instagram posts into SharePoint using Instagram Basic Display Independent Publisher Connector
How to Use the Instagram Basic Display Connector in Power Apps and Power Automate Instagram is a popular social media platform with over 1 billion monthly active users. It is a great platform for sharing photos and videos, and many businesses use it to promote their products and services. With the Instagram Basic Display (IndependentPublisher) connector, you can now easily retrieve data from Instagram accounts and use it in Power Apps and Power Automate.
posts
Refresh long-lived token via Instagram Graph API
Learn how to automatically refresh long-lived access tokens using the Instagram Graph API. Refer to how the Long-Lived Access Tokens for more info.
Long-lived tokens are valid for 60 days and can be refreshed as long as they are at least 24 hours old but have not expired, and the app user has granted your app the instagram_graph_user_profile permission. Refreshed tokens are valid for 60 days from the date at which they are refreshed.
posts
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate Transferring data from Excel to SharePoint lists can encounter format issues, especially with datetime and number fields. This post covers solutions to some challenges particularly related to dates and numbers.
The flow is quite simple with an action to read contents from excel file and an action to create items into a sharepoint list.
Handling DateTime Fields When importing datetime data with the “List rows present in a table” action from the “Excel Online for Business” connector, you might encounter format related errors.
posts
Converting a HTTP Trigger into a Child Workflow in Power Automate
Converting a HTTP Trigger into a Child Workflow in Power Automate Using a HTTP trigger requires Premium licence and with the Child Workflow in a solution alleviates the need of premium license.
Other advantages using a solution:
Application Lifecycle Management: Facilitates deployment. Child Workflow: Allows for a more modular and manageable flow structure. Easier Ownership Management: Simplifies updates to the flow owner. I recreated the child workflow within the solution selecting the Manually trigger a flow trigger and updated the parent flow to use the flow as child workflow.
posts
Updating Approval Details in SharePoint Library using 'Send HTTP Request to SharePoint' in Power Automate
Updating Approval Details in SharePoint Library using ‘Send HTTP Request to SharePoint’ in Power Automate In Power Automate, there are two methods for updating file properties:
Send HTTP Request to SharePoint Update File Properties While the latter suffices for most cases, I opted for the “Send HTTP Request to SharePoint” in specific scenarios:
To avoid triggering a new file version using system update. When modifying system columns such as author or modified date.
Tag: Long-Lived Token
posts
Refresh long-lived token via Instagram Graph API
Learn how to automatically refresh long-lived access tokens using the Instagram Graph API. Refer to how the Long-Lived Access Tokens for more info.
Long-lived tokens are valid for 60 days and can be refreshed as long as they are at least 24 hours old but have not expired, and the app user has granted your app the instagram_graph_user_profile permission. Refreshed tokens are valid for 60 days from the date at which they are refreshed.
Tag: Export
posts
Power Automate: Export Flow within solution as package (.zip)
I had a flow created in the default environment that needed to be moved into a solution in a managed environment. However, the export link for Package (.zip) was missing as the flow was within a default solution (preferred).
It was a huge flow, and manually recreating each action would have taken a considerable amount of time.
I checked another flow where the Package (.zip) was available.
Upon clicking the link, I noticed that /export was appended to the URL of the flow.
Tag: App Catalog
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell SharePoint Framework (SPFx) solutions are a powerful tool for extending and customizing SharePoint sites. However, managing these solutions across multiple sites in a SharePoint tenant can be a daunting task. Fortunately, PnP PowerShell provides automation capabilities that can streamline these operations and ensure consistency across the tenant.
The blog post Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites covers how to deploy SPFx solutions across a hub site and associated sites.
posts
Deploying SPFx Packages from Tenant App Catalog to Hub Site and Associated Sites
Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites There is the blog post how Deploying and Installing SharePoint Framework (SPFx) solutions using PnP PowerShell to Hub Site and Associated Sites using site collection app catalog. This post covers how to perform same objective but using the tenant level app catalog if the SPFx packages have not been added to all sites globally during deployment in the tenant level app catalog and instead need targeted deployment or upgrades on specific sites.
Tag: SharePoint Online Client Extensibility Web Application Principal
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
Tag: WebAPIPermissions
posts
PowerShell: Removing Web API Permissions for SPFx Solutions used by EntraId SharePoint Online Web Client Extensibility
The script checks the ‘SharePoint Online Web Client Extensibility’ Principal within Entra ID for the actual assigned permissions as the SPFx solutions requests are all be added to that single shared permission group.
As hilghlighted by “Wes Hackett”:
I’ve personally seen plenty of tenants with Mailbox permissions with no corresponding solutions live in the app catalogs. Early SPFx doc examples encouraged the use of MS Graph into Mailbox permissions in one of the how to learn samples, older tenants sometimes have this breadcrumb left behind.
Tag: Inventory
posts
Retrieve SPFx Details from Tenant and Site Collection App Catalogs Using PowerShell
Have you ever needed to gather detailed information about SPFx solutions installed in your SharePoint environment, such as API permissions, for auditing, inventory, or compliance purposes? The PowerShell script below helps you retrieve these details from both the tenant-level and site collection app catalogs for auditing with the aim to improve security posture by removing unneeded apps and access rights.
To execute this script, you must have Global Administrator or SharePoint Administrator roles.
posts
SharePoint Portals Site collections Inventory
As part of the Copilot for M365 rollout , questions were raised on the /portals/Community and /portals/hub as both ‘Everyone Except External Users’ was granted access raising concerns on the content on the site. These are legacy sites and are currently inaccessible. Historically, these sites were accessible via the legacy SharePoint admin centre, however, they are not available through the modern SharePoint admin centre interface.
Thanks to Gregory Zelfond’s blog post What are all these site collections in SharePoint?
posts
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell This PowerShell script powered by PnP PowerShell can help to get total count of files, folders, and list items across SharePoint tenant. This script is invaluable for administrators looking to perform audits, verify data migrations, or simply keep tabs on the content sprawl within their environments. The use case of this script was to get a total number of items that would be ingested into a third party application Records365 (provided by RecordPoint) to ensure the number tally for compliance purposes and identify any gaps.
posts
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs This post covers a PowerShell script to generate an inventory of SPFx installations within your SharePoint Online environment which will help you maintain oversight of your SPFx solutions, ensuring they are up-to-date and compliant. The script was particularly useful in pinpointing sites within the tenant where third-party applications, specifically an analytics SPFx component, were deployed. This was crucial for ensuring that data collection was confined to designated sites, such as the intranet in my case study.
Tag: Column Formatting
posts
Update managed metadata field using list formatting
Using column formatting in SharePoint, you can update the values of other fields using the setValue function. This approach allows you to create dynamic functionality in your lists and libraries without extensive development, helping to avoid accumulating technical debt.
Updating a Managed Metadata field, however, is not as straightforward as simply specifying the display value. The field expects a specific format that includes the term’s ID (termId).
Understanding Column Formatting Column formatting in SharePoint involves using a combination of inline CSS, HTML, and JSON to control how fields in lists and libraries are displayed.
Tag: List Formatting
posts
Update managed metadata field using list formatting
Using column formatting in SharePoint, you can update the values of other fields using the setValue function. This approach allows you to create dynamic functionality in your lists and libraries without extensive development, helping to avoid accumulating technical debt.
Updating a Managed Metadata field, however, is not as straightforward as simply specifying the display value. The field expects a specific format that includes the term’s ID (termId).
Understanding Column Formatting Column formatting in SharePoint involves using a combination of inline CSS, HTML, and JSON to control how fields in lists and libraries are displayed.
posts
Internal References in SharePoint Column Formatting for Document libraries: leveraging Name, Folder and Path properties
SharePoint Column Formatting for Document libraries: Leveraging Name, Folder and Path properties While referencing [$Title] in lists is straightforward, document libraries demand a nuanced approach. Instead of [$Name], had to delve into the intricacies of internal names like $FileLeafRef and $FileRef when working with column formatting.
$FileLeafRef: Denotes the name of the file.
$FileRef: Represents the server-relative URL of the file.
Initial attempts to incorporate $FileSystemObjectType for folder identification was challenging, indicating that not all document library internal column names are supported.
posts
Enhance List Formatting for Multi-Line Text fields challenges
Enhance List Formatting for Multi-Line Text fields challenges Summary The following sample shows how you can view more of a truncated multi line text column on click. Column formatting in SharePoint is a powerful tool to customize how data is displayed. Multi-line text fields, however, present unique challenges when applying these formats. This guide explores a method to expand truncated multi-line text on click and discusses its limitations.
Understanding the Concept The objective is to provide users with a preview of truncated text and enable expansion on hover.
posts
Executing a Flow from Column Formatting from a page using the Embed Webpart
Executing a Flow from Column Formatting from a page using the Embed Webpart I encountered an intriguing challenge: triggering a flow from column formatting within a List View Webpart. Initially, I successfully created a button within a list to execute a flow on a specific item, following the steps outlined in Microsoft’s documentation here. It worked seamlessly within the list interface directly.
However, when attempting to add the list with the formatting column using the list view webpart on a page to allow end-users to trigger the flow the results were different.
Tag: Managed Metadata
posts
Update managed metadata field using list formatting
Using column formatting in SharePoint, you can update the values of other fields using the setValue function. This approach allows you to create dynamic functionality in your lists and libraries without extensive development, helping to avoid accumulating technical debt.
Updating a Managed Metadata field, however, is not as straightforward as simply specifying the display value. The field expects a specific format that includes the term’s ID (termId).
Understanding Column Formatting Column formatting in SharePoint involves using a combination of inline CSS, HTML, and JSON to control how fields in lists and libraries are displayed.
posts
Ensure Taxonomy Feature in SharePoint Sites Connected to Private/Shared Teams Channels
Ensure Taxonomy Feature In SharePoint site connected to a Private/Shared Channel Sites Taxonomy feature is not activated by default in SharePoint sites linked to a private or shared Teams Channels. When attempting to add content types with managed metadata columns, you may encounter an error message stating “Taxonomy disabled”.
To resolve this issue, you can enable the taxonomy feature with the ID 73ef14b1-13a9-416b-a9b5-ececa2b0604c using the PowerShell cmdlet Enable-PnPFeature before adding the content types to the sites with the template TEAMCHANNEL#1.
Tag: HasUniqueRoleAssignments
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
Tag: Throttling handling
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
Tag: Unique Permissions
posts
Optimizing PowerShell Scripts to check for unique permissions in SharePoint: REST API vs. Get-PnPListItem
When working with large SharePoint sites, checking for unique permissions can be a time-consuming task. This blog post explores methods to optimize PowerShell scripts for fetching property HasUniqueRoleAssignments to determine unique permissions, including using PnP PowerShell and the SharePoint REST API. We compare their performance and highlight the advantages and limitations of each approach.
Using PnP PowerShell PnP PowerShell provides an efficient way to interact with SharePoint Online and retrieve list items to check for unique permissions.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
Tag: Copy Structure with data
posts
Copy SharePoint list structure with data - ALM
If you have built Power Platform solutions using SharePoint as a datasource, you may want to export the list structure along with its data from the source environment (e.g., DEV) and deploy it across different environments such as Test, UAT, and PROD. Fortunately, the PnP Provisioning from PnP PowerShell provides this capability. Power Platform solutions can be deployed using pipelines after the SharePoint structure is deployed.
Export Structure and Data from SharePoint Lists PnP PowerShell makes this process straightforward with Get-PnPSiteTemplate:
Tag: BypassSharedLock
posts
Power Automate : Move File bypassing locked issue using CreateCopyJobs endpoint
The SharePoint - Move file action can be used to move files, however the file can’t be moved if the file was accessed by the current Power Automate flow for any processing reslutng in a locked file error.
{ “status”: 400, “message”: “File ‘Shared Documents/Attendances/To Be Processed/Attendance -16072024.xlsx’ cannot be moved because it is in locked mode.\r\nclientRequestId: d6df7566-881f-4f14-8548-c5fac1eda46d\r\nserviceRequestId: 606841a1-40f0-9000-9c69-507df9b21720” }
Handling Locked Files There are two options to handlelocked files when using SharePoint - Move file action:
Tag: M365 Group
posts
Delete M365 connected Team Site using PowerShell
If a M365 group connected Team site is deleted from SharePoint Admin Centre, from the UI it is not possible to delete the site from the deleted sites to be able to resuse the URL or name of the deleted site.
The end user is presented with the following prompt This site belongs to a Microsoft 365 group. Deleting the site will delete the group and all its resources, including the Outlook mailbox and calendar, and any Teams channels.
posts
Teamifying an Existing M365 Group with PowerShell
Teamifying an Existing M365 Group with PowerShell Within M365 , SharePoint and Teams together provides a rich collaboaration platform. When a team site is created from SharePoint admin centre, it is not associated with a Teams despite a M365 group is created in the background. To extend SharePoint collaboration features , there is a need to “teamify” an existing Microsoft 365 Group, essentially attaching a new Teams instance to it to allow use of channels and other apps.
posts
Ensuring Owners Are Members
Ensure Owners Are Members M365Group Microsoft 365 (M365) Groups serve as a central hub for collaboration across various M365 applications like Teams, Planner, SharePoint, and more. While M365 roles include Owners, Members, and Guests, it’s crucial to understand that being an owner doesn’t always inherit member privileges. In this article, we’ll explore why it’s imperative to have M365 Group owners also serve as active members for seamless group management and productivity.
Tag: Teams Site
posts
Delete M365 connected Team Site using PowerShell
If a M365 group connected Team site is deleted from SharePoint Admin Centre, from the UI it is not possible to delete the site from the deleted sites to be able to resuse the URL or name of the deleted site.
The end user is presented with the following prompt This site belongs to a Microsoft 365 group. Deleting the site will delete the group and all its resources, including the Outlook mailbox and calendar, and any Teams channels.
Tag: Update Author
posts
Power Automate : Move File bypassing locked issue using CreateCopyJobs endpoint
The SharePoint - Move file action can be used to move files, however the file can’t be moved if the file was accessed by the current Power Automate flow for any processing reslutng in a locked file error.
{ “status”: 400, “message”: “File ‘Shared Documents/Attendances/To Be Processed/Attendance -16072024.xlsx’ cannot be moved because it is in locked mode.\r\nclientRequestId: d6df7566-881f-4f14-8548-c5fac1eda46d\r\nserviceRequestId: 606841a1-40f0-9000-9c69-507df9b21720” }
Handling Locked Files There are two options to handlelocked files when using SharePoint - Move file action:
posts
Power Automate : Update Author and Editor of a Page
This post outlines how to use Power Automate to update author and editor of a Page within SharePoint using the Send an Http request to SharePoint action.
Within a Power Automate flow, follow the following steps
Add Send an Http request to SharePoint renamed to Update Author Properties Property Value Site Address The SharePoint site URL Method POST Uri See Uri below Headers See Headers table below Body See Body below Uri _api/web/lists/GetByTitle(‘Site%20Pages’)/items(1)/ValidateUpdateListItem()`
Tag: Update Editor
posts
Power Automate : Move File bypassing locked issue using CreateCopyJobs endpoint
The SharePoint - Move file action can be used to move files, however the file can’t be moved if the file was accessed by the current Power Automate flow for any processing reslutng in a locked file error.
{ “status”: 400, “message”: “File ‘Shared Documents/Attendances/To Be Processed/Attendance -16072024.xlsx’ cannot be moved because it is in locked mode.\r\nclientRequestId: d6df7566-881f-4f14-8548-c5fac1eda46d\r\nserviceRequestId: 606841a1-40f0-9000-9c69-507df9b21720” }
Handling Locked Files There are two options to handlelocked files when using SharePoint - Move file action:
posts
Power Automate : Update Author and Editor of a Page
This post outlines how to use Power Automate to update author and editor of a Page within SharePoint using the Send an Http request to SharePoint action.
Within a Power Automate flow, follow the following steps
Add Send an Http request to SharePoint renamed to Update Author Properties Property Value Site Address The SharePoint site URL Method POST Uri See Uri below Headers See Headers table below Body See Body below Uri _api/web/lists/GetByTitle(‘Site%20Pages’)/items(1)/ValidateUpdateListItem()`
Tag: IG
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: Information Governance
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: OneDrive
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
posts
Empowering Secure Collaboration: Configuring OneDrive Tenant and Site Settings
Empowering Secure Collaboration: Configuring OneDrive Tenant Settings with PowerShell OneDrive makes it easy to collaborate by sharing files and folders with others. OneDrive is the storage space for personal productivity and not meant for collaboration. Data stored within OneDrive are
Files shared to chats within Teams Files shared with end user by other OneDrive users. OneNote Personal lists and Document storage Shortcuts to SharePoint sites/libraries Favourites Loops within chats Streams In this article, we’ll explore into how PowerShell can empower SharePoint administrators to configure OneDrive sharing settings proactively at the tenant level, addressing oversharing concerns for the Copilot for M365 rollout.
posts
Discovering All Checked Out Files including those with no checked in versions with PnP PowerShell
Discovering All Checked Out Files including those with no checked in versions There are scenarios when files uploaded won’t have “checked-in version” which will make the files visible only to their uploader. Two possible scenarios that can lead to the situation:
Mandatory Metadata Requirements: When there are mandatory fields configured on the libraries and end users use Onedrive as a medium to upload the files to SharePoint via a shortcut to OneDrive.
Tag: Tackling oversharing
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
Tag: Teams Chat
posts
Teams Chats - default Sharing Links to 'People Currently in this Chat
Have you ever wondered how to default the default sharing link in Teams chats to ‘People currently in this chat’? By default, if “Anyone” is disabled within the tenant, the sharing link is set to “People in my organization”. This can be a challenge when you want to limit access to only those in the current chat. All files uploaded to a Teams Chat are stored in the uploader’s OneDrive for Business.
Tag: Folder
posts
Getting Storage Metrics for a SharePoint site
Gaining an overview of what takes up space in a SharePoint site is crucial for monitoring large files or a significant number of versions.
Unfortunately, the storage metrics link, <siteurl>/_layouts/15/storman.aspx, won’t work for libraries with more than 5,000 files without nested folders. While this might go against information architecture principles, creating folders is an option to avoid the list view threshold error.
Here’s a PowerShell script to help you get storage metrics for your SharePoint site:
posts
Retrieving File Count and Size of a folder using PnP PowerShell
Retrieving File Count and Size of a folder within a SharePoint Library using PnP PowerShell This post covers a PowerShell script that uses the PnP PowerShell module to retrieve the file count and total size of a specific folder within a SharePoint library.
#Parameters $SiteURL = "https://contoso.sharepoint.com/sites/company311" $FolderSiteRelativeURL = "Shared Documents/Test1" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get the folder $Folder = Get-PnPFolder -Url $FolderSiteRelativeURL -Includes ListItemAllFields #Get the total Size of the folder - with versions Write-host "Size of the Folder:" $([Math]::Round(($Folder.
Tag: Site
posts
Getting Storage Metrics for a SharePoint site
Gaining an overview of what takes up space in a SharePoint site is crucial for monitoring large files or a significant number of versions.
Unfortunately, the storage metrics link, <siteurl>/_layouts/15/storman.aspx, won’t work for libraries with more than 5,000 files without nested folders. While this might go against information architecture principles, creating folders is an option to avoid the list view threshold error.
Here’s a PowerShell script to help you get storage metrics for your SharePoint site:
Tag: Storage Metrics
posts
Getting Storage Metrics for a SharePoint site
Gaining an overview of what takes up space in a SharePoint site is crucial for monitoring large files or a significant number of versions.
Unfortunately, the storage metrics link, <siteurl>/_layouts/15/storman.aspx, won’t work for libraries with more than 5,000 files without nested folders. While this might go against information architecture principles, creating folders is an option to avoid the list view threshold error.
Here’s a PowerShell script to help you get storage metrics for your SharePoint site:
Tag: Highlighted Content Web Part
posts
SharePoint Highlighted Content Web Part versus News Web Part: Author versus Editor
The Highlighted Content Web Part and the News Web Part in SharePoint can be used to display news on a page. Both webparts serve different purposes and have distinct features. One particular difference is the display of author in News Webpart and display of editor in the Highlighted Content Web Part.
The Highlighted Content Web Part displays editing details like editor and last updated date with the news information. Unfortunately there is no option to change it to the author name.
Tag: News WebPart
posts
SharePoint Highlighted Content Web Part versus News Web Part: Author versus Editor
The Highlighted Content Web Part and the News Web Part in SharePoint can be used to display news on a page. Both webparts serve different purposes and have distinct features. One particular difference is the display of author in News Webpart and display of editor in the Highlighted Content Web Part.
The Highlighted Content Web Part displays editing details like editor and last updated date with the news information. Unfortunately there is no option to change it to the author name.
posts
Exclude News Links from News WebPart in SharePoint Online
SharePoint Online offers the useful feature of news links to avoid duplication of news articles and promote existing posts across different sites. This is especially beneficial when news creation is enabled for various departments or directorates, allowing them to share significant news organization-wide.
However, the News WebPart might display both the news links and the original articles, resulting in duplicated content.
To manage this, you can utilize the OriginalSourceUrl column, which stores the link to the source news article.
Tag: Coalesce
posts
JSON Data Handling in Power Automate: Double Quotes
When using Power Automate action Send an Http request to SharePoint specially to send data in the body to a REST API call, for instance to create a news link from a SharePoint List Item, you might encounter issues if the body contains double quotes in the title or description. This blog post will walk you through the problem and provide solutions to handle double quotes in JSON strings.
Problem Overview Using the Send an Http request to SharePoint action to create a news link can fail if the JSON body contains double quotes.
Tag: Data Handling
posts
JSON Data Handling in Power Automate: Double Quotes
When using Power Automate action Send an Http request to SharePoint specially to send data in the body to a REST API call, for instance to create a news link from a SharePoint List Item, you might encounter issues if the body contains double quotes in the title or description. This blog post will walk you through the problem and provide solutions to handle double quotes in JSON strings.
Problem Overview Using the Send an Http request to SharePoint action to create a news link can fail if the JSON body contains double quotes.
posts
DateTime Handling in Power Automate
DateTime Handling in Power Automate Manipulating dates and times in Power Automate is a requirement at times. This post covers a few useful scenerios.
Add To Time For instance, adding a specific number of months to a date retrieved from an action using AddToTime function:
addToTime(body(‘Wait_for_an_approval_2’)?[‘completionDate’], int(body(‘Get_file_properties’)?[‘ReviewFrequency’]?[‘Value’]), ‘Month’, ‘dd/MM/yyyy HH:mm’)
Substract Time Specific number of months can be substracted from the date retrieved from an action
string(subtractFromTime(items(‘Apply_to_each’)?[‘DueDate’],1,‘Month’,‘dd/MM/yyyy HH:mm’))
Format Date Time Formatting date to a specific string format is essential otherwise update of data fields might fail because of culture differences.
posts
JSON Data Handling in Power Automate: outputs versus body
JSON Data Handling in Power Automate : outputs versus body In Power Automate, JSON data output from various actions is key to connect each other.
Accessing Action Outputs Accessing the outputs of a specific action, such as the action ‘Get file properties’, the spcific property can be accessed via the outputs, for instance file name with extension.:
outputs(‘Get_file_properties’)?[‘body/{FilenameWithExtension}’]
Referencing Action Body A streamlined way is to reference the body directly making it simpler.
Tag: JSON
posts
JSON Data Handling in Power Automate: Double Quotes
When using Power Automate action Send an Http request to SharePoint specially to send data in the body to a REST API call, for instance to create a news link from a SharePoint List Item, you might encounter issues if the body contains double quotes in the title or description. This blog post will walk you through the problem and provide solutions to handle double quotes in JSON strings.
Problem Overview Using the Send an Http request to SharePoint action to create a news link can fail if the JSON body contains double quotes.
posts
JSON Data Handling in Power Automate: outputs versus body
JSON Data Handling in Power Automate : outputs versus body In Power Automate, JSON data output from various actions is key to connect each other.
Accessing Action Outputs Accessing the outputs of a specific action, such as the action ‘Get file properties’, the spcific property can be accessed via the outputs, for instance file name with extension.:
outputs(‘Get_file_properties’)?[‘body/{FilenameWithExtension}’]
Referencing Action Body A streamlined way is to reference the body directly making it simpler.
posts
Enhance List Formatting for Multi-Line Text fields challenges
Enhance List Formatting for Multi-Line Text fields challenges Summary The following sample shows how you can view more of a truncated multi line text column on click. Column formatting in SharePoint is a powerful tool to customize how data is displayed. Multi-line text fields, however, present unique challenges when applying these formats. This guide explores a method to expand truncated multi-line text on click and discusses its limitations.
Understanding the Concept The objective is to provide users with a preview of truncated text and enable expansion on hover.
posts
Executing a Flow from Column Formatting from a page using the Embed Webpart
Executing a Flow from Column Formatting from a page using the Embed Webpart I encountered an intriguing challenge: triggering a flow from column formatting within a List View Webpart. Initially, I successfully created a button within a list to execute a flow on a specific item, following the steps outlined in Microsoft’s documentation here. It worked seamlessly within the list interface directly.
However, when attempting to add the list with the formatting column using the list view webpart on a page to allow end-users to trigger the flow the results were different.
Tag: News Link
posts
Power Automate: Create and Publish a News Link
This post covers how to leverage SharePoint REST API to create and publish a news link from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to create and publish a news link details.
Send an Http request to SharePoint action renamed to Get Page Details. Site Address : site url Method : GET Uri : /_api/web/lists/GetByTitle(‘Site%20Pages’)/items(10) Parse JSON renamed to Parse Page Details JSON Add the action Parse JSON and refer to the content from previous steps
Tag: Publish Page
posts
Power Automate: Create and Publish a News Link
This post covers how to leverage SharePoint REST API to create and publish a news link from Power Automate using the Send an Http request to SharePoint action.
Within a Power Automate flow follow the steps below to create and publish a news link details.
Send an Http request to SharePoint action renamed to Get Page Details. Site Address : site url Method : GET Uri : /_api/web/lists/GetByTitle(‘Site%20Pages’)/items(10) Parse JSON renamed to Parse Page Details JSON Add the action Parse JSON and refer to the content from previous steps
Tag: SharePoint Group
posts
Power Automate: Retrieve Users from a SharePoint Group
This post covers how to leverage SharePoint REST API to get users from a SharePoint group from Power Automate using the Send an Http request to SharePoint action. In the example below a SharePoint Group has been defined for approvers of a particular process and needed to be retrieved to be assigned an approval task.
Within a Power Automate flow follow the steps below to retrieve users from a SharePoint group.
Tag: CSOM
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
Tag: SharingLinks
posts
Oversight of Sharing Information in SharePoint sites using PowerShell with CSOM, REST and PnP PowerShell
Effective oversight of sharing links and sharing information are paramount to ensuring data security, compliance, and optimal collaboration experiences.
As organisations migrate to M365 environments, they inherit powerful collaboration tools that facilitate seamless sharing of documents and resources. However, without proper governance, these capabilities can lead to unintended consequences such as data breaches, compliance violations, and loss of intellectual property.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
posts
PowerShell Script to Query Unique Permissions in SharePoint
Query Unique Permissions in SharePoint using CSOM and PnP PowerShell Managing permissions in SharePoint is a critical aspect of maintaining data security and compliance within organisations. However, as SharePoint environments grow in complexity, manually auditing and managing permissions becomes increasingly challenging. To address this challenge, PowerShell scripts can be leveraged to automate the auditing process, providing administrators with valuable insights into permission structures across SharePoint sites and libraries.
What do SharePoint permissions have to do with Copilot for Microsoft 365?
Tag: Dataverse connector
posts
Update A row action from Dataverse connector missing in Power Automate flow
Update A row action from Dataverse connector was not available to an older Power Automate.The requirement was to add ability to cancel an approval task created via action ‘Create Approval’ within 30 days as Power Automate flows timeout after 30 days. I noticed the action Update a Row in Selected Environment and decided to try it instead.
Unfortunately it threw the forbidden error for no apparent reason with no obvious permissions to grant.
Tag: Monitoring
posts
SharePoint Storage Monitoring Against Allocated Quota using PowerShell
There is limited space allocated to the tenant. To ensure business continuity and smooth ongoing operation, it is imperative to keep an eye on its usage and take relevant actions suited to the circumstances. By default a SharePoint site is allocated 25 TB by default and OneDrive for Business site is allocated 1 TB by default. These settings can be amended manually to a different quota to control SharePoint site. The script will help to proactively monitor percent used against quota for each SharePoint site.
Tag: Portals
posts
SharePoint Portals Site collections Inventory
As part of the Copilot for M365 rollout , questions were raised on the /portals/Community and /portals/hub as both ‘Everyone Except External Users’ was granted access raising concerns on the content on the site. These are legacy sites and are currently inaccessible. Historically, these sites were accessible via the legacy SharePoint admin centre, however, they are not available through the modern SharePoint admin centre interface.
Thanks to Gregory Zelfond’s blog post What are all these site collections in SharePoint?
Tag: Site Collections
posts
SharePoint Portals Site collections Inventory
As part of the Copilot for M365 rollout , questions were raised on the /portals/Community and /portals/hub as both ‘Everyone Except External Users’ was granted access raising concerns on the content on the site. These are legacy sites and are currently inaccessible. Historically, these sites were accessible via the legacy SharePoint admin centre, however, they are not available through the modern SharePoint admin centre interface.
Thanks to Gregory Zelfond’s blog post What are all these site collections in SharePoint?
Tag: Storage
posts
SharePoint Storage Monitoring Against Allocated Quota using PowerShell
There is limited space allocated to the tenant. To ensure business continuity and smooth ongoing operation, it is imperative to keep an eye on its usage and take relevant actions suited to the circumstances. By default a SharePoint site is allocated 25 TB by default and OneDrive for Business site is allocated 1 TB by default. These settings can be amended manually to a different quota to control SharePoint site. The script will help to proactively monitor percent used against quota for each SharePoint site.
posts
Troubleshooting SharePoint Storage Reports with PowerShell
Troubleshooting SharePoint Storage Reports with PowerShell As the amount of data stored in SharePoint grows, it becomes important to monitor and manage storage usage. In this blog post, we will explore how to generate storage reports for SharePoint sites using PowerShell. These reports will provide insights into the storage usage of sites and individual files, including file versions and the size of the recycle bin. However the reports can only give a glimpse of at least 60-90% of storage.
Tag: Update A Row Action
posts
Update A row action from Dataverse connector missing in Power Automate flow
Update A row action from Dataverse connector was not available to an older Power Automate.The requirement was to add ability to cancel an approval task created via action ‘Create Approval’ within 30 days as Power Automate flows timeout after 30 days. I noticed the action Update a Row in Selected Environment and decided to try it instead.
Unfortunately it threw the forbidden error for no apparent reason with no obvious permissions to grant.
Tag: Grouping
posts
How to Filter SharePoint Libraries to Return Less Than 5,000 Items
SharePoint Online has a list view threshold (LVT) of 5,000 items, which can cause performance issues if exceeded.
This post provides a workaround through filtering libraries/lists to stay within this limit and avoid common problems associated with large lists.
The Problem When a SharePoint library exceeds the 5,000-item threshold, various issues can arise. These include:
Inability to Browse Folders Navigating through folders becomes challenging and sometimes impossible through desktop office apps (Excel, Word,etc.
Tag: List View Threshold
posts
How to Filter SharePoint Libraries to Return Less Than 5,000 Items
SharePoint Online has a list view threshold (LVT) of 5,000 items, which can cause performance issues if exceeded.
This post provides a workaround through filtering libraries/lists to stay within this limit and avoid common problems associated with large lists.
The Problem When a SharePoint library exceeds the 5,000-item threshold, various issues can arise. These include:
Inability to Browse Folders Navigating through folders becomes challenging and sometimes impossible through desktop office apps (Excel, Word,etc.
posts
Overcoming SharePoint's List View Threshold with CAML Queries in PowerShell
Overcoming SharePoint’s List View Threshold with CAML Queries in PowerShell Encountering the list view threshold error in SharePoint when dealing with lists exceeding 5,000 items is a common challenge. Using CAML queries within PowerShell scripts offers a server-side solution to efficiently filter and retrieve data, yet is prone to the list view threshold error.
Sample script This is the sample PowerShell script querying the specified SharePoint list using CAML query.
Tag: Newslink
posts
Exclude News Links from News WebPart in SharePoint Online
SharePoint Online offers the useful feature of news links to avoid duplication of news articles and promote existing posts across different sites. This is especially beneficial when news creation is enabled for various departments or directorates, allowing them to share significant news organization-wide.
However, the News WebPart might display both the news links and the original articles, resulting in duplicated content.
To manage this, you can utilize the OriginalSourceUrl column, which stores the link to the source news article.
Tag: Choice
posts
Update Choice values of List Items in SharePoint List
Maintaining up-to-date list items, especially when dealing with choice fields, can be a daunting task sepcially after choice field values are updated. We need a way to update these old values to the correct new ones.
The Challenge SharePoint lists use choice fields to categorise items. Over time, the need to update these choice values can arise, whether due to changes in terminology, business processes, or error correction. Manually updating these values across numerous list items is not only time-consuming but also prone to human error.
Tag: Choice type
posts
Find orphaned choice values in SharePoint list/libraries using PowerShell
Find orphaned choice values in SharePoint list/libraries using PowerShell One common issue is orphaned choice values in SharePoint lists which may affect subsequent update to the list item. This can occur when list items contain values that are no longer valid according to the list’s choice field values. This post covers a PowerShell script to identify these orphaned choice values in SharePoint lists to either update them or add them back to the list of choice field values.
Tag: Copy Actions
posts
Power Automate copy actions across different environments
Power Automate copy actions across different environments If an action is copied from a different environment, the action is not avaible from the My Clipboard, if not you are presented with the following message only.
Save time and paste your most-used Flow code snippets here.
Select the ellipsis menu on any trigger or action, then choose Copy to my Clipboard.
Note: Pasted code clears each time you log out of Power Automate.
Tag: Environment
posts
Power Automate copy actions across different environments
Power Automate copy actions across different environments If an action is copied from a different environment, the action is not avaible from the My Clipboard, if not you are presented with the following message only.
Save time and paste your most-used Flow code snippets here.
Select the ellipsis menu on any trigger or action, then choose Copy to my Clipboard.
Note: Pasted code clears each time you log out of Power Automate.
Tag: Branding
posts
Updating SharePoint Site Logo and Thumbnail with PowerShell
Update SharePoint Site Logo and Thumbnail with PowerShell In SharePoint Online sites, the distinction between the Site Logo and Site Thumbnail is crucial. The site logo appears in the site header, while the site thumbnail is used in search results, site cards, file copying/moving, and other areas.
Both site logo and thumbnail are part of SharePoint branding. This post covers how to update the site logo and thumbnail across multiple SharePoint sites within a hub using PowerShell.
Tag: Site Logo
posts
Updating SharePoint Site Logo and Thumbnail with PowerShell
Update SharePoint Site Logo and Thumbnail with PowerShell In SharePoint Online sites, the distinction between the Site Logo and Site Thumbnail is crucial. The site logo appears in the site header, while the site thumbnail is used in search results, site cards, file copying/moving, and other areas.
Both site logo and thumbnail are part of SharePoint branding. This post covers how to update the site logo and thumbnail across multiple SharePoint sites within a hub using PowerShell.
Tag: Thumbnail
posts
Updating SharePoint Site Logo and Thumbnail with PowerShell
Update SharePoint Site Logo and Thumbnail with PowerShell In SharePoint Online sites, the distinction between the Site Logo and Site Thumbnail is crucial. The site logo appears in the site header, while the site thumbnail is used in search results, site cards, file copying/moving, and other areas.
Both site logo and thumbnail are part of SharePoint branding. This post covers how to update the site logo and thumbnail across multiple SharePoint sites within a hub using PowerShell.
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
Tag: Content Type
posts
Update Content Type of List Items in SharePoint List
Update Content Type of List Items in SharePoint List A content type in SharePoint is a reusable collection of metadata (columns) allowing to organise, manage and handle content in a consistent way. If the content type of files and items need to be updated because of required changes how particular content have to be managed, it can be a daunting laborious task if done manually. PowerShell can help automating the update of content types and corresponding metadata (columns).
Tag: Data Management
posts
Update Content Type of List Items in SharePoint List
Update Content Type of List Items in SharePoint List A content type in SharePoint is a reusable collection of metadata (columns) allowing to organise, manage and handle content in a consistent way. If the content type of files and items need to be updated because of required changes how particular content have to be managed, it can be a daunting laborious task if done manually. PowerShell can help automating the update of content types and corresponding metadata (columns).
Tag: Data Import
posts
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate Transferring data from Excel to SharePoint lists can encounter format issues, especially with datetime and number fields. This post covers solutions to some challenges particularly related to dates and numbers.
The flow is quite simple with an action to read contents from excel file and an action to create items into a sharepoint list.
Handling DateTime Fields When importing datetime data with the “List rows present in a table” action from the “Excel Online for Business” connector, you might encounter format related errors.
Tag: Excel Business Online
posts
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate
Importing Dates and Numbers from Excel file into SharePoint list with Power Automate Transferring data from Excel to SharePoint lists can encounter format issues, especially with datetime and number fields. This post covers solutions to some challenges particularly related to dates and numbers.
The flow is quite simple with an action to read contents from excel file and an action to create items into a sharepoint list.
Handling DateTime Fields When importing datetime data with the “List rows present in a table” action from the “Excel Online for Business” connector, you might encounter format related errors.
Tag: Locked Files
posts
Handling Locked Office Files issue In Power Automate
Handling Locked Office Files issue In Power Automate Inspired by the workaround described by Pieter Veenstra System Updates in SharePoint from Power Automate using the ValidateUpdateListItem endpoint to help with the locked file issue, this post covers file version creation as well.
File Locked Issue File lock issues in Power Automate can occur due to:
The file being opened by a user. The file being updated by a Power Automate flow, which may take up to 6 minutes to release the lock.
Tag: validateUpdateListItem
posts
Handling Locked Office Files issue In Power Automate
Handling Locked Office Files issue In Power Automate Inspired by the workaround described by Pieter Veenstra System Updates in SharePoint from Power Automate using the ValidateUpdateListItem endpoint to help with the locked file issue, this post covers file version creation as well.
File Locked Issue File lock issues in Power Automate can occur due to:
The file being opened by a user. The file being updated by a Power Automate flow, which may take up to 6 minutes to release the lock.
Tag: MultiLine Text field
posts
Power Automate updating multi line field with more than 255 characters
Power Automate flow succeeded despite failure to update multi line text field within a SharePoint Library Updating multi-line text fields in a SharePoint Library from Power Automate flows, especially when the content exceeds 255 characters might fail if the field is not updated to allow unlimited length. This can cause workflows to fail silently.
In a recent scenario, an action was added to a Power Automate flow to update a SharePoint Library’s multi-line text field named ‘ErrorLog’ with error details captured during the flow’s execution.
Tag: Dataverse
posts
Power Automate fix for InvalidTemplate: Unable to process template language expressions
Power Automate fix for InvalidTemplate: Unable to process template language expressions InvalidTemplate. Unable to process template language expressions in action can happen with actions within PowerAutomate. In my scenerio I added the encodian action ‘Convert_to_PDF’ and was resubmitting a flow for testing and kept getting the error message.
InvalidTemplate. Unable to process template language expressions in action ‘Convert_to_PDF’ inputs at line ‘0’ and column ‘0’: ‘The template language expression ‘json(decodeBase64(secrets(‘X-MS-APIM-Tokens’)))[’$connections’][‘shared_encodiandocumentmanager’][‘connectionId’]’ cannot be evaluated because property ‘shared_encodiandocumentmanager’ doesn’t exist, available properties are ‘shared_sharepointonline, shared_office365, shared_approvals, shared_teams_1’.
Tag: DateTime
posts
DateTime Handling in Power Automate
DateTime Handling in Power Automate Manipulating dates and times in Power Automate is a requirement at times. This post covers a few useful scenerios.
Add To Time For instance, adding a specific number of months to a date retrieved from an action using AddToTime function:
addToTime(body(‘Wait_for_an_approval_2’)?[‘completionDate’], int(body(‘Get_file_properties’)?[‘ReviewFrequency’]?[‘Value’]), ‘Month’, ‘dd/MM/yyyy HH:mm’)
Substract Time Specific number of months can be substracted from the date retrieved from an action
string(subtractFromTime(items(‘Apply_to_each’)?[‘DueDate’],1,‘Month’,‘dd/MM/yyyy HH:mm’))
Format Date Time Formatting date to a specific string format is essential otherwise update of data fields might fail because of culture differences.
Tag: Encodian
posts
Power Automate fix for InvalidTemplate: Unable to process template language expressions
Power Automate fix for InvalidTemplate: Unable to process template language expressions InvalidTemplate. Unable to process template language expressions in action can happen with actions within PowerAutomate. In my scenerio I added the encodian action ‘Convert_to_PDF’ and was resubmitting a flow for testing and kept getting the error message.
InvalidTemplate. Unable to process template language expressions in action ‘Convert_to_PDF’ inputs at line ‘0’ and column ‘0’: ‘The template language expression ‘json(decodeBase64(secrets(‘X-MS-APIM-Tokens’)))[’$connections’][‘shared_encodiandocumentmanager’][‘connectionId’]’ cannot be evaluated because property ‘shared_encodiandocumentmanager’ doesn’t exist, available properties are ‘shared_sharepointonline, shared_office365, shared_approvals, shared_teams_1’.
Tag: InvalidTemplate
posts
Power Automate fix for InvalidTemplate: Unable to process template language expressions
Power Automate fix for InvalidTemplate: Unable to process template language expressions InvalidTemplate. Unable to process template language expressions in action can happen with actions within PowerAutomate. In my scenerio I added the encodian action ‘Convert_to_PDF’ and was resubmitting a flow for testing and kept getting the error message.
InvalidTemplate. Unable to process template language expressions in action ‘Convert_to_PDF’ inputs at line ‘0’ and column ‘0’: ‘The template language expression ‘json(decodeBase64(secrets(‘X-MS-APIM-Tokens’)))[’$connections’][‘shared_encodiandocumentmanager’][‘connectionId’]’ cannot be evaluated because property ‘shared_encodiandocumentmanager’ doesn’t exist, available properties are ‘shared_sharepointonline, shared_office365, shared_approvals, shared_teams_1’.
Tag: Major Version
posts
Publishing Major Versions of Files in SharePoint with Power Automate
Publishing Major Versions of Files in SharePoint with Power Automate This post covers how to publish major versions for Office documents (Word, Excel, or PowerPoint) in SharePoint using Power Automate, especially after an approval task using the checkin and publish REST endpoints. This applies to libraries having minor versions enabled
Just for context, a Power Automate approval flow with trigger for a selected file needed publishing for the selected file as major version after being approved.
Tag: Send an HTTP request to SharePoint
posts
Publishing Major Versions of Files in SharePoint with Power Automate
Publishing Major Versions of Files in SharePoint with Power Automate This post covers how to publish major versions for Office documents (Word, Excel, or PowerPoint) in SharePoint using Power Automate, especially after an approval task using the checkin and publish REST endpoints. This applies to libraries having minor versions enabled
Just for context, a Power Automate approval flow with trigger for a selected file needed publishing for the selected file as major version after being approved.
Tag: ananke theme
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
Tag: Blog site
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
Tag: Comments
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
Tag: Giscus
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
Tag: Github
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
posts
Embed GitHub Gist in Hugo posts
Embed GitHub Gist in Hugo posts I was approached by Divya Akula with a suggestion to use a link to GitHub for my script and I really bought in the idea because I used to do it on Wordpress. I started googling and trying out solutions which did not work and messed up my blog repo. Fortunately being MVP I have access to GitHub Copilot and asked Copilot with a simple prompt which gave me a simple straight forward looking solution.
posts
A Guide to Contributing to PnP PowerShell
A Guide to Contributing to PnP PowerShell Contributing to PnP PowerShell is a rewarding journey. Whether you’re a seasoned contributor or a beginner, this guide aims to simplify the process and keep it handy for your next contribution.
Prerequisites To set up the development to start hacking on PnP PowerShell, install the following
Install Git Install PowerShell 7 Install Visual Code or Visual Studio Code Install .NET SDK 6 (https://dotnet.microsoft.com/download/dotnet/6.0) Forking and cloning First things first, make a copy of the repository to start working on your changes.
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
posts
Get a CSV of all my pull requests from Github using Github CLI and PowerShell
Github does not provide an easy way to export all your pull requests for review or sharing with anyone. Below is a great post to show how to do it using BASH.
GitHub: Get a CSV containing my pull requests (PRs)
If you are using windows machine, PowerShell is your friend.
Install GitHub CLI via command line
winget install --id GitHub.cli Enter Y to the question
Do you agree to all the source agreements terms?
Tag: Hugo
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
posts
Embed GitHub Gist in Hugo posts
Embed GitHub Gist in Hugo posts I was approached by Divya Akula with a suggestion to use a link to GitHub for my script and I really bought in the idea because I used to do it on Wordpress. I started googling and trying out solutions which did not work and messed up my blog repo. Fortunately being MVP I have access to GitHub Copilot and asked Copilot with a simple prompt which gave me a simple straight forward looking solution.
posts
Creating New Posts with Hugo
Creating New Posts with Hugo In this post, we will walk through the process of creating a new post in Hugo, a popular static site generator.
Step 1: Navigate to Your Hugo Site First, navigate to the directory where your Hugo site is configured. You can do this using the cd command in terminal:
cd .\Hugo\sites\M365Blog\ Step 2: Create a New Post Next, use the hugo new command to create a new post:
posts
How to Ensure Your Netlify Site is Search Engine Crawlable
How to Ensure Your Netlify Site is Search Engine Crawlable There are numerous posts to describe how to convert Wordpress to Hugo. I followed the instructions from blog post How to move your blog from Wordpress to Hugo to start with and hosted it on Netlify, it’s essential to ensure that search engines can crawl and index your site properly. Follow these steps to make sure your site is discoverable:
Tag: lists
posts
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell
Get Total Count of SharePoint Files, Folders, and Items with PnP PowerShell This PowerShell script powered by PnP PowerShell can help to get total count of files, folders, and list items across SharePoint tenant. This script is invaluable for administrators looking to perform audits, verify data migrations, or simply keep tabs on the content sprawl within their environments. The use case of this script was to get a total number of items that would be ingested into a third party application Records365 (provided by RecordPoint) to ensure the number tally for compliance purposes and identify any gaps.
posts
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem
Get Folder Item properties using PnP PowerShell : Get-PnPFolderItem versus Get-PnPListItem Introduction In this blog post, we will explore an alternative approach to retrieving folder item properties using PnP PowerShell. We will discuss the limitations of the Get-PnPFolderItem cmdlet and demonstrate how to use Get-PnPListItem to overcome those limitations.
The Limitations of Get-PnPFolderItem The Get-PnPFolderItem cmdlet is not suitable for working with large libraries. When attempting to retrieve items from a large library, you may encounter the following error message:
Tag: netlify
posts
Enable Giscus for Hugo Blog
Enable Giscus for Hugo Blog I recently switched to Giscus for comments on my blog post, inspired by its popularity among other bloggers. Giscus, a commenting system powered by GitHub Discussions, offers a seamless way to engage with readers. If you’re using Hugo for your blog hosted on GitHub, linking Giscus to your posts is straightforward.
Note: The following setup guide is based on instructions generated by GitHub Copilot, which I successfully followed to integrate Giscus into my blog.
posts
How to Ensure Your Netlify Site is Search Engine Crawlable
How to Ensure Your Netlify Site is Search Engine Crawlable There are numerous posts to describe how to convert Wordpress to Hugo. I followed the instructions from blog post How to move your blog from Wordpress to Hugo to start with and hosted it on Netlify, it’s essential to ensure that search engines can crawl and index your site properly. Follow these steps to make sure your site is discoverable:
Tag: Account Number
posts
Column Validation for Sort Code and Account Number in SharePoint
Column Validation for Sort Code and Account Number in SharePoint Column validation provides a solution to validate data for data integrity. This post covers column validation for Sort Code and Account Number in SharePoint.
Validation for Sort Code =AND(LEN([Sort Code])=6,ISNUMBER([Sort Code]+0))
The above formula checks
The length of the sort code must be exactly 6 digits. The sort code must be a number. Validation for Account Number =AND(LEN([Account Number])=8,ISNUMBER([Account Number]+0))
Tag: AccountNumbeSortCode
posts
Column Validation for Sort Code and Account Number in SharePoint
Column Validation for Sort Code and Account Number in SharePoint Column validation provides a solution to validate data for data integrity. This post covers column validation for Sort Code and Account Number in SharePoint.
Validation for Sort Code =AND(LEN([Sort Code])=6,ISNUMBER([Sort Code]+0))
The above formula checks
The length of the sort code must be exactly 6 digits. The sort code must be a number. Validation for Account Number =AND(LEN([Account Number])=8,ISNUMBER([Account Number]+0))
Tag: Column Validation
posts
Column Validation for Sort Code and Account Number in SharePoint
Column Validation for Sort Code and Account Number in SharePoint Column validation provides a solution to validate data for data integrity. This post covers column validation for Sort Code and Account Number in SharePoint.
Validation for Sort Code =AND(LEN([Sort Code])=6,ISNUMBER([Sort Code]+0))
The above formula checks
The length of the sort code must be exactly 6 digits. The sort code must be a number. Validation for Account Number =AND(LEN([Account Number])=8,ISNUMBER([Account Number]+0))
Tag: Sort Code
posts
Column Validation for Sort Code and Account Number in SharePoint
Column Validation for Sort Code and Account Number in SharePoint Column validation provides a solution to validate data for data integrity. This post covers column validation for Sort Code and Account Number in SharePoint.
Validation for Sort Code =AND(LEN([Sort Code])=6,ISNUMBER([Sort Code]+0))
The above formula checks
The length of the sort code must be exactly 6 digits. The sort code must be a number. Validation for Account Number =AND(LEN([Account Number])=8,ISNUMBER([Account Number]+0))
Tag: CSV
posts
Handling Special Characters within CSV with PowerShell using Encoding
When working with CSV files in PowerShell with special characters you might encounter an issue where special characters (e.g., em dashes —) are incorrectly represented as a question mark inside a diamond �. This common issue arises due to PowerShell’s default encoding not matching the encoding used in the CSV file.
Problem Statement The root of this problem lies in the encoding mismatch. Encoding is a method of converting characters into a format that can be easily stored or transmitted.
Tag: Encoding
posts
Handling Special Characters within CSV with PowerShell using Encoding
When working with CSV files in PowerShell with special characters you might encounter an issue where special characters (e.g., em dashes —) are incorrectly represented as a question mark inside a diamond �. This common issue arises due to PowerShell’s default encoding not matching the encoding used in the CSV file.
Problem Statement The root of this problem lies in the encoding mismatch. Encoding is a method of converting characters into a format that can be easily stored or transmitted.
Tag: Special Characters
posts
Handling Special Characters within CSV with PowerShell using Encoding
When working with CSV files in PowerShell with special characters you might encounter an issue where special characters (e.g., em dashes —) are incorrectly represented as a question mark inside a diamond �. This common issue arises due to PowerShell’s default encoding not matching the encoding used in the CSV file.
Problem Statement The root of this problem lies in the encoding mismatch. Encoding is a method of converting characters into a format that can be easily stored or transmitted.
Tag: SharePoint Framework (SPFx)
posts
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs
Find SharePoint Framework (SPFx) Packages with PowerShell in Tenant and Site Collection App Catalogs This post covers a PowerShell script to generate an inventory of SPFx installations within your SharePoint Online environment which will help you maintain oversight of your SPFx solutions, ensuring they are up-to-date and compliant. The script was particularly useful in pinpointing sites within the tenant where third-party applications, specifically an analytics SPFx component, were deployed. This was crucial for ensuring that data collection was confined to designated sites, such as the intranet in my case study.
Tag: DOTX
posts
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX Encountering issues with opening “.dotx” templates in SharePoint is a common scenario that can disrupt your workflow. Typically, when you attempt to open a “.dotx” file in SharePoint, it opens in edit mode for the template itself, rather than generating a new “.docx” document as expected. This behavior diverges from the experience in Windows File Explorer and can hinder productivity.
Tag: Office Templates
posts
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX Encountering issues with opening “.dotx” templates in SharePoint is a common scenario that can disrupt your workflow. Typically, when you attempt to open a “.dotx” file in SharePoint, it opens in edit mode for the template itself, rather than generating a new “.docx” document as expected. This behavior diverges from the experience in Windows File Explorer and can hinder productivity.
Tag: Productivity
posts
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX Encountering issues with opening “.dotx” templates in SharePoint is a common scenario that can disrupt your workflow. Typically, when you attempt to open a “.dotx” file in SharePoint, it opens in edit mode for the template itself, rather than generating a new “.docx” document as expected. This behavior diverges from the experience in Windows File Explorer and can hinder productivity.
Tag: Workarounds
posts
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX
Streamlining SharePoint Template Usage: A Guide to Opening DOTX Files as DOCX Encountering issues with opening “.dotx” templates in SharePoint is a common scenario that can disrupt your workflow. Typically, when you attempt to open a “.dotx” file in SharePoint, it opens in edit mode for the template itself, rather than generating a new “.docx” document as expected. This behavior diverges from the experience in Windows File Explorer and can hinder productivity.
Tag: deleted flows
posts
Power Automate - Restore deleted flows
I accidentally deleted a power automate flow and needed a way of restoring it. I stumbled on Restore deleted flows to restore the deleted flows.
However the action List Flows as Admin (v2) was not returning all the flows, hence the deleted flow was missing. If it happens , enables the pagination setting of the action withing settings tab and set the threshold to ensure the number is more than number of flows you have in the environment.
Tag: restore
posts
Power Automate - Restore deleted flows
I accidentally deleted a power automate flow and needed a way of restoring it. I stumbled on Restore deleted flows to restore the deleted flows.
However the action List Flows as Admin (v2) was not returning all the flows, hence the deleted flow was missing. If it happens , enables the pagination setting of the action withing settings tab and set the threshold to ensure the number is more than number of flows you have in the environment.
Tag: Azure
posts
AzureDevOps Powerplatform Deployment error due to timing issue
If it takes too long to deploy the solution, time out issues might occur. In this instance consider checking and updating the MaxAsyncWaitTime. Its value has been increased to 120 which means the deployment process will wait up to 120 seconds (or 2 minutes) for asynchronous operations such as import power platform solution to complete fixing the timing out issue.
The fix is to amend the MaxAsyncWaitTime to 120
- task: PowerPlatformImportSolution@2 inputs: authenticationType: PowerPlatformSPN PowerPlatformSPN: 'powerplatform-t-connection' Environment: 'https://contoso-st.
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
posts
Azure Document Intelligence Studio - Neural vs. Template Training
Azure Document Intelligence Studio - Neural vs. Template Training Azure Document Intelligence Studio formally known as form recognizer is a powerful tool to extract data from documents at scale. Among its features, the ability to “train a new model” for data extraction from documents. This process comes with two distinct options: Neural and Template. Each has its unique advantages and use cases.
Neural Training The Neural option leverages deep learning algorithms to understand and process documents.
Tag: DevOps
posts
AzureDevOps Powerplatform Deployment error due to timing issue
If it takes too long to deploy the solution, time out issues might occur. In this instance consider checking and updating the MaxAsyncWaitTime. Its value has been increased to 120 which means the deployment process will wait up to 120 seconds (or 2 minutes) for asynchronous operations such as import power platform solution to complete fixing the timing out issue.
The fix is to amend the MaxAsyncWaitTime to 120
- task: PowerPlatformImportSolution@2 inputs: authenticationType: PowerPlatformSPN PowerPlatformSPN: 'powerplatform-t-connection' Environment: 'https://contoso-st.
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: Import
posts
AzureDevOps Powerplatform Deployment error due to timing issue
If it takes too long to deploy the solution, time out issues might occur. In this instance consider checking and updating the MaxAsyncWaitTime. Its value has been increased to 120 which means the deployment process will wait up to 120 seconds (or 2 minutes) for asynchronous operations such as import power platform solution to complete fixing the timing out issue.
The fix is to amend the MaxAsyncWaitTime to 120
- task: PowerPlatformImportSolution@2 inputs: authenticationType: PowerPlatformSPN PowerPlatformSPN: 'powerplatform-t-connection' Environment: 'https://contoso-st.
Tag: Timing Issue
posts
AzureDevOps Powerplatform Deployment error due to timing issue
If it takes too long to deploy the solution, time out issues might occur. In this instance consider checking and updating the MaxAsyncWaitTime. Its value has been increased to 120 which means the deployment process will wait up to 120 seconds (or 2 minutes) for asynchronous operations such as import power platform solution to complete fixing the timing out issue.
The fix is to amend the MaxAsyncWaitTime to 120
- task: PowerPlatformImportSolution@2 inputs: authenticationType: PowerPlatformSPN PowerPlatformSPN: 'powerplatform-t-connection' Environment: 'https://contoso-st.
Tag: YAML
posts
AzureDevOps Powerplatform Deployment error due to timing issue
If it takes too long to deploy the solution, time out issues might occur. In this instance consider checking and updating the MaxAsyncWaitTime. Its value has been increased to 120 which means the deployment process will wait up to 120 seconds (or 2 minutes) for asynchronous operations such as import power platform solution to complete fixing the timing out issue.
The fix is to amend the MaxAsyncWaitTime to 120
- task: PowerPlatformImportSolution@2 inputs: authenticationType: PowerPlatformSPN PowerPlatformSPN: 'powerplatform-t-connection' Environment: 'https://contoso-st.
posts
Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform There are loads of posts explaining Application Lifecycle Management for the Power Platform using Azure DevOps most using the graphical classical pipeline. The latest post I read on this is Application Lifecycle Management for the Power Platform using Azure DevOps by Luise Freese which is brilliant.
Please read article covering difference between YAML and Classic UI to explain why you may want the modern YAML pipeline.
Tag: Copilot for M365 rollout
posts
Deletion of sharing links with PowerShell
Deletion of sharing links with PowerShell As organisations look to deploy Copilot for Microsoft 365, ensuring the security and proper governance of shared content is important. The rollout of Copilot introduces advanced AI capabilities across Microsoft 365 apps using content from SharePoint/OneDrive, making it even more essential to manage sharing links judiciously to tackle the issue of oversharing.
Sharing is a powerful feature for collaboration. However depending on how items, files or folders are shared, a sharing link might be created or unique permissions on these items are created.
Tag: Conditional Access
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: oversharing
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: SharePoint Advanced Management
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: SharePoint Premium
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: Syntex
posts
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout
Manage SharePoint Premium - SharePoint Advanced Management Settings Using PowerShell to protect data in Copilot for M365 Rollout SharePoint Premium - SharePoint Advanced Management offers features to help prevent data oversharing and accidental leaks, which is crucial for a successful rollout of Copilot for M365. This guide will show you how to manage these settings using PowerShell.
For an overview, read the Microsoft SharePoint Premium - SharePoint Advanced Management overview.
Tag: ALM
posts
Guide to Preparing setting files for Power Platform managed solution deployment
Guide to Preparing setting files for Power Platform managed solution deployment This guide will walk you through the process of creating a settings file for Power Platform managed solution deployment. Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform for detailed steps for ALM for power platform solutions.
posts
Power Platform Managed Solution Deployment with Connection References - Allow customisations
Power Platform Managed Solution Deployment with Connection References - Allow customisations This article explores the challenges and solutions associated with Power Platform managed solution deployment, specifically focusing on connection references and the “Allow Customisations” property.
Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: Managed Solution
posts
Guide to Preparing setting files for Power Platform managed solution deployment
Guide to Preparing setting files for Power Platform managed solution deployment This guide will walk you through the process of creating a settings file for Power Platform managed solution deployment. Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform for detailed steps for ALM for power platform solutions.
posts
Power Platform Managed Solution Deployment with Connection References - Allow customisations
Power Platform Managed Solution Deployment with Connection References - Allow customisations This article explores the challenges and solutions associated with Power Platform managed solution deployment, specifically focusing on connection references and the “Allow Customisations” property.
Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: setting file
posts
Guide to Preparing setting files for Power Platform managed solution deployment
Guide to Preparing setting files for Power Platform managed solution deployment This guide will walk you through the process of creating a settings file for Power Platform managed solution deployment. Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform for detailed steps for ALM for power platform solutions.
Tag: Digital Signature
posts
Resolving the 'PnP PowerShell Not Digitally Signed' Issue
Resolving the ‘PnP PowerShell Not Digitally Signed’ Issue If you’ve recently upgraded PnP PowerShell to the latest nightly build and are encountering errors when trying to execute any PnP PowerShell cmdlets, this guide is for you.
PS C:\Users\RAuckloo> connect-pnponline -url https://contoso-admin.sharepoint.com -Interactive connect-pnponline: The 'connect-pnponline' command was found in the module 'PnP. PowerShell', but the module could not be loaded due to the following error: [Errors occurred while loading the format data file: \\contoso-it.
Tag: Execution Policy
posts
Resolving the 'PnP PowerShell Not Digitally Signed' Issue
Resolving the ‘PnP PowerShell Not Digitally Signed’ Issue If you’ve recently upgraded PnP PowerShell to the latest nightly build and are encountering errors when trying to execute any PnP PowerShell cmdlets, this guide is for you.
PS C:\Users\RAuckloo> connect-pnponline -url https://contoso-admin.sharepoint.com -Interactive connect-pnponline: The 'connect-pnponline' command was found in the module 'PnP. PowerShell', but the module could not be loaded due to the following error: [Errors occurred while loading the format data file: \\contoso-it.
Tag: Get File count
posts
Counting Files and folders within SharePoint Libraries using PnP PowerShell
Counting Files and Folders within SharePoint Libraries using PnP PowerShell This post shows a PowerShell script using PnP PowerShell module to count the number of files and folders within a SharePoint library. It might be useful doing an inventory of file count.
$SiteURL = "Counting Files within a SharePoint Library using PnP PowerShell" # Generate a unique log file name using today's date $dateTime = (Get-Date).toString("dd-MM-yyyy") $invocation = (Get-Variable MyInvocation).Value $directorypath = Split-Path $invocation.
Tag: Get File count and size
posts
Retrieving File Count and Size of a folder using PnP PowerShell
Retrieving File Count and Size of a folder within a SharePoint Library using PnP PowerShell This post covers a PowerShell script that uses the PnP PowerShell module to retrieve the file count and total size of a specific folder within a SharePoint library.
#Parameters $SiteURL = "https://contoso.sharepoint.com/sites/company311" $FolderSiteRelativeURL = "Shared Documents/Test1" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get the folder $Folder = Get-PnPFolder -Url $FolderSiteRelativeURL -Includes ListItemAllFields #Get the total Size of the folder - with versions Write-host "Size of the Folder:" $([Math]::Round(($Folder.
Tag: Get Site Id
posts
Retrieving SiteId from Microsoft Graph for Subsequent API Calls
Retrieving SiteId from Microsoft Graph for Subsequent API Calls This post offers an option to retrieve a SiteId from Microsoft Graph using PnP PowerShell. This can be particularly useful when making further API calls that require the SiteId.
$siteurl = "https://contoso.sharepoint.com/sites/Company311" Connect-PnPOnline -url $siteurl -interactive # for the site url https://contoso-admin.sharepoint.com/teams/app-m365 # Extract the domain and site name $uri = New-Object System.Uri($siteurl) $domain = $uri.Host $siteName = $uri.AbsolutePath # Construct the new URL $RestMethodUrl = "v1.
Tag: Get-PnPFolderStorageMetric
posts
Retrieving File Count and Size of a folder using PnP PowerShell
Retrieving File Count and Size of a folder within a SharePoint Library using PnP PowerShell This post covers a PowerShell script that uses the PnP PowerShell module to retrieve the file count and total size of a specific folder within a SharePoint library.
#Parameters $SiteURL = "https://contoso.sharepoint.com/sites/company311" $FolderSiteRelativeURL = "Shared Documents/Test1" #Connect to PnP Online Connect-PnPOnline -Url $SiteURL -Interactive #Get the folder $Folder = Get-PnPFolder -Url $FolderSiteRelativeURL -Includes ListItemAllFields #Get the total Size of the folder - with versions Write-host "Size of the Folder:" $([Math]::Round(($Folder.
Tag: git
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
posts
Embed GitHub Gist in Hugo posts
Embed GitHub Gist in Hugo posts I was approached by Divya Akula with a suggestion to use a link to GitHub for my script and I really bought in the idea because I used to do it on Wordpress. I started googling and trying out solutions which did not work and messed up my blog repo. Fortunately being MVP I have access to GitHub Copilot and asked Copilot with a simple prompt which gave me a simple straight forward looking solution.
posts
A Guide to Contributing to PnP PowerShell
A Guide to Contributing to PnP PowerShell Contributing to PnP PowerShell is a rewarding journey. Whether you’re a seasoned contributor or a beginner, this guide aims to simplify the process and keep it handy for your next contribution.
Prerequisites To set up the development to start hacking on PnP PowerShell, install the following
Install Git Install PowerShell 7 Install Visual Code or Visual Studio Code Install .NET SDK 6 (https://dotnet.microsoft.com/download/dotnet/6.0) Forking and cloning First things first, make a copy of the repository to start working on your changes.
Tag: git checkout
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: git fetch
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: git switch
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: managed identity
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: PAT
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: self-hosted Agents
posts
Overcoming challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions
Overcoming Challenges with Azure DevOps Pipelines using Self-Hosted Build Agents for Power Platform Managed Solutions Application Lifecycle Management (ALM) for Power Platform solutions can be effectively managed using Azure DevOps, providing a robust framework for automating deployments, version control, and continuous integration and delivery, thereby enhancing productivity and reducing manual errors. Refer to the posts for more details: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: SharePoint Restricted Search
posts
Restrict certain SharePoint sites from tenant search and Copilot for M365 using PowerShell
Excluding certain SharePoint sites from search would mean the contents from the excluded sites won’t be available to M365 tenant search and Copilot for M365 using Restricted SharePoint Search feature.
The downsides using this feature are:
Limited Findability: By excluding certain SharePoint sites from search, you limit the findability of data. Users would need to know the specific sites where the data resides in order to search for it. This can hinder efficient data retrieval and records management.
Tag: Customizations
posts
Power Platform Managed Solution Deployment with Connection References - Allow customisations
Power Platform Managed Solution Deployment with Connection References - Allow customisations This article explores the challenges and solutions associated with Power Platform managed solution deployment, specifically focusing on connection references and the “Allow Customisations” property.
Refer to the posts for more details to set up Application Lifecycle Management (ALM) for power platform: Power Platform ALM & Pipelines w/ Matt Devaney and Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Tag: Document Intelligence Studio
posts
Azure Document Intelligence Studio - Neural vs. Template Training
Azure Document Intelligence Studio - Neural vs. Template Training Azure Document Intelligence Studio formally known as form recognizer is a powerful tool to extract data from documents at scale. Among its features, the ability to “train a new model” for data extraction from documents. This process comes with two distinct options: Neural and Template. Each has its unique advantages and use cases.
Neural Training The Neural option leverages deep learning algorithms to understand and process documents.
Tag: Neural
posts
Azure Document Intelligence Studio - Neural vs. Template Training
Azure Document Intelligence Studio - Neural vs. Template Training Azure Document Intelligence Studio formally known as form recognizer is a powerful tool to extract data from documents at scale. Among its features, the ability to “train a new model” for data extraction from documents. This process comes with two distinct options: Neural and Template. Each has its unique advantages and use cases.
Neural Training The Neural option leverages deep learning algorithms to understand and process documents.
Tag: Template
posts
Azure Document Intelligence Studio - Neural vs. Template Training
Azure Document Intelligence Studio - Neural vs. Template Training Azure Document Intelligence Studio formally known as form recognizer is a powerful tool to extract data from documents at scale. Among its features, the ability to “train a new model” for data extraction from documents. This process comes with two distinct options: Neural and Template. Each has its unique advantages and use cases.
Neural Training The Neural option leverages deep learning algorithms to understand and process documents.
Tag: Microsoft Loop
posts
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing Tenant and Site Settings with PowerShell
Empowering Secure Collaboration: Configuring Microsoft Loop Sharing SharePoint Tenant and Site Settings with PowerShell Guest users can be invited to collaborate within Microsoft Loop in the tenant. Refer How to work with guest users using Microsoft Loop how sharing within Loop works.
This post focuses on using PowerShell to control the Microsoft Loop sharing settings to help securing data especially with Copilot for M365 which can expose data not previously accessible by other means.
Tag: Column
posts
SharePoint Search: Excluding Columns from Search Results
SharePoint Search: Excluding Columns from Search Results SharePoint empowers users to manage and organize vast amounts of data efficiently. However, not all data within a SharePoint site might need to be searchable. Do you miss the functionality to control visibility of sensitive or irrelevant information in column.
The Challenge You might have encountered instances where you need certain columns in your SharePoint lists or libraries to be excluded from search results.
Tag: Field
posts
SharePoint Search: Excluding Columns from Search Results
SharePoint Search: Excluding Columns from Search Results SharePoint empowers users to manage and organize vast amounts of data efficiently. However, not all data within a SharePoint site might need to be searchable. Do you miss the functionality to control visibility of sensitive or irrelevant information in column.
The Challenge You might have encountered instances where you need certain columns in your SharePoint lists or libraries to be excluded from search results.
Tag: Copilot
posts
Embed GitHub Gist in Hugo posts
Embed GitHub Gist in Hugo posts I was approached by Divya Akula with a suggestion to use a link to GitHub for my script and I really bought in the idea because I used to do it on Wordpress. I started googling and trying out solutions which did not work and messed up my blog repo. Fortunately being MVP I have access to GitHub Copilot and asked Copilot with a simple prompt which gave me a simple straight forward looking solution.
posts
Exploring some Limitations of Copilot in Power Automate
Exploring some Limitations of Copilot in Power Automate I was thrilled when Copilot became available in the UK region within Power Automate around mid-November 2023. To understand its functionalities and limitations, I started exploring. Please refer to Understanding the Cloud Flows Designer, which outlines some limitations and described the Flows Designer experience.
Creating New Flows While creating a new flow using the prompt “Start an approval process and update the item in a SharePoint list when a new item is created,” I noticed a functional flow generated.
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: gist
posts
Embed GitHub Gist in Hugo posts
Embed GitHub Gist in Hugo posts I was approached by Divya Akula with a suggestion to use a link to GitHub for my script and I really bought in the idea because I used to do it on Wordpress. I started googling and trying out solutions which did not work and messed up my blog repo. Fortunately being MVP I have access to GitHub Copilot and asked Copilot with a simple prompt which gave me a simple straight forward looking solution.
Tag: shortcodes
posts
Embed GitHub Gist in Hugo posts
Embed GitHub Gist in Hugo posts I was approached by Divya Akula with a suggestion to use a link to GitHub for my script and I really bought in the idea because I used to do it on Wordpress. I started googling and trying out solutions which did not work and messed up my blog repo. Fortunately being MVP I have access to GitHub Copilot and asked Copilot with a simple prompt which gave me a simple straight forward looking solution.
Tag: Owners
posts
Sharing Options Updates - Send Email Button Greyed Out
Sharing Options Updates - Send Email button greyed out Starting from March 2024, there has been a notable change in SharePoint’s sharing options. If a user is not allowed to share on a SharePoint site (for instance, when a user is a member and only owners have sharing privileges), the Send Email button appears greyed out. Additionally, a warning message is displayed: Sharing is limited on this item. You can only copy links for people who have existing access, and you can’t invite anyone new.
posts
Recreating Deleted Owners Group for M365-Connected SharePoint Sites
Recreating Deleted Owners Group for M365-Connected SharePoint Sites If out-of-the-box (OOB) groups such as owners, members, or visitors have been deleted accidentally from your SharePoint site, this article may assist you in recovering those vanished groups specifically for M365 linked Team site. I recently encountered a distress call from an end user facing data access issues on a SharePoint Team site. To my dismay, I discovered that the SharePoint Owners group had been accidentally deleted, prompting me to seek and implement a solution to restore access.
posts
Ensuring Owners Are Members
Ensure Owners Are Members M365Group Microsoft 365 (M365) Groups serve as a central hub for collaboration across various M365 applications like Teams, Planner, SharePoint, and more. While M365 roles include Owners, Members, and Guests, it’s crucial to understand that being an owner doesn’t always inherit member privileges. In this article, we’ll explore why it’s imperative to have M365 Group owners also serve as active members for seamless group management and productivity.
Tag: Send Email
posts
Sharing Options Updates - Send Email Button Greyed Out
Sharing Options Updates - Send Email button greyed out Starting from March 2024, there has been a notable change in SharePoint’s sharing options. If a user is not allowed to share on a SharePoint site (for instance, when a user is a member and only owners have sharing privileges), the Send Email button appears greyed out. Additionally, a warning message is displayed: Sharing is limited on this item. You can only copy links for people who have existing access, and you can’t invite anyone new.
Tag: PowerShell Script Module
posts
Working with psm1 Files in PowerShell
Working with PowerShell Script Module Files:psm1 Have you ever utilized a psm1 file to create reusable functions across multiple ps1 files? If so, you might have encountered the frustration of edits not reflecting immediately due to module caching.
I recently faced this issue when updating a psm1 file; despite making changes, the updates didn’t take effect immediately. The issue stemmed from module caching.
The only solution I found to load the updated psm1 file was to terminate the PowerShell session and start a new one.
Tag: psm1
posts
Working with psm1 Files in PowerShell
Working with PowerShell Script Module Files:psm1 Have you ever utilized a psm1 file to create reusable functions across multiple ps1 files? If so, you might have encountered the frustration of edits not reflecting immediately due to module caching.
I recently faced this issue when updating a psm1 file; despite making changes, the updates didn’t take effect immediately. The issue stemmed from module caching.
The only solution I found to load the updated psm1 file was to terminate the PowerShell session and start a new one.
Tag: Graph
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
Tag: Invoke-PnPGraphMethod
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
Tag: Private Channels
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
Tag: Shared Channels
posts
Retrieving SharePoint Site URL for Teams Channels
Retrieving SharePoint Site URL for Teams Channels Have you ever needed to construct the SharePoint site URL for a private or shared channel using just the channel name? This post will guide you through the process.
Private Channels The default SharePoint URL for a private channel follows the format: <ParentSharePointSiteUrl><ChannelRelativeUrl>. Note that if the channel is renamed, the corresponding SharePoint URL remains unchanged.
Shared Channels Similarly, the default SharePoint URL for a shared channel follows the format: <ParentM365GroupName><ChannelRelativeUrl>.
Tag: buffer limit
posts
How to Redirect PowerShell Terminal Output to a File
How to Redirect PowerShell Terminal Output to a File The PowerShell console buffer, while useful, has its limitations. When dealing with thousands of lines of output, you may encounter performance issues or even lose older output due to truncation. However, there’s a straightforward solution to ensure all output is retained for later review: redirect the output to a file.
You can accomplish this by using the redirection operator > operator, followed by the name of the file where you want the output to be stored.
Tag: Console
posts
How to Redirect PowerShell Terminal Output to a File
How to Redirect PowerShell Terminal Output to a File The PowerShell console buffer, while useful, has its limitations. When dealing with thousands of lines of output, you may encounter performance issues or even lose older output due to truncation. However, there’s a straightforward solution to ensure all output is retained for later review: redirect the output to a file.
You can accomplish this by using the redirection operator > operator, followed by the name of the file where you want the output to be stored.
Tag: Terminal
posts
How to Redirect PowerShell Terminal Output to a File
How to Redirect PowerShell Terminal Output to a File The PowerShell console buffer, while useful, has its limitations. When dealing with thousands of lines of output, you may encounter performance issues or even lose older output due to truncation. However, there’s a straightforward solution to ensure all output is retained for later review: redirect the output to a file.
You can accomplish this by using the redirection operator > operator, followed by the name of the file where you want the output to be stored.
Tag: CLIforM365
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: Declarative
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: Explicit
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: SPO PowerShell
posts
Managing Service Principal Permission Requests using PowerShell
Managing Service Principal Permission Requests using PowerShell Permission to the “SharePoint Online Client” service principal can be granted either in declarative method within SPFx solutions or directly. This post explores how to handle both declarative and direct permission grants using SPO PowerShell , ClI for M365 and PnP PowerShell.
PnP PowerShell Get all service principal permission grants Gets the collection of permission grants for the “SharePoint Online Client” service principal using the cmdlet Get-PnPTenantServicePrincipalPermissionGrants
Tag: Development SetUp
posts
Troubleshooting NVM Setup Issues for SPFx Development
Troubleshooting NVM Setup Issues for SPFx Development I have not used my dev machine for SPFx development for over a year. Before diving into any new SPFx development, I followed the typical procedure of installing the latest Node.js version 18.19.0 supported by the current SPFx version (1.18.2) using nvm (node version management).nvm allows to maintain different development environment.
nvm install 18.19.0 Following this, I proceeded to install the SPFx toolchain:
Tag: Azure Storage Explorer
posts
Limitations of Azure Storage Explorer: Filtering and Renaming Challenges
Limitations of Azure Storage Explorer: Filtering and Renaming Challenges Azure Storage Explorer simplifies managing Azure Storage data across Windows, macOS, and Linux platforms. Refer to Get started with Storage Explorer for more info.
However, there are nuances surrounding filtering and renaming functionalities that users should be mindful of.
Filter Functionality Azure Storage Explorer lacks wildcard support, limiting search capabilities to prefixes only. This limitation can pose challenges when attempting to locate files based on substrings within the blob container.
Tag: Filter
posts
Limitations of Azure Storage Explorer: Filtering and Renaming Challenges
Limitations of Azure Storage Explorer: Filtering and Renaming Challenges Azure Storage Explorer simplifies managing Azure Storage data across Windows, macOS, and Linux platforms. Refer to Get started with Storage Explorer for more info.
However, there are nuances surrounding filtering and renaming functionalities that users should be mindful of.
Filter Functionality Azure Storage Explorer lacks wildcard support, limiting search capabilities to prefixes only. This limitation can pose challenges when attempting to locate files based on substrings within the blob container.
Tag: Rename files
posts
Limitations of Azure Storage Explorer: Filtering and Renaming Challenges
Limitations of Azure Storage Explorer: Filtering and Renaming Challenges Azure Storage Explorer simplifies managing Azure Storage data across Windows, macOS, and Linux platforms. Refer to Get started with Storage Explorer for more info.
However, there are nuances surrounding filtering and renaming functionalities that users should be mindful of.
Filter Functionality Azure Storage Explorer lacks wildcard support, limiting search capabilities to prefixes only. This limitation can pose challenges when attempting to locate files based on substrings within the blob container.
Tag: AzureDevOps
posts
Unable to find Power Platform in Azure DevOps
Unable to find Power Platform in Azure DevOps Issue I was Unable to find the powerplatform in Azure devops
Solution The solution is to install the Extension: Power Platform Build Tools (2.0.5) to Organisation.
This will enable the Power Platform service connection.
References Unable to find the powerplatform in Azure devops
Tag: Document library
posts
Custom document library template using PnP PowerShell
Custom document library template using PnP PowerShell Creating custom list templates is now possible to create both custom document libraries and lists.
This article explores the option how to use a combination of list design and PowerShell script to provision multiple instances of document libraries using a CSV file and how to create a document library from a custom list template from UI.
First we can create a list design for our library based on an existing configured document library with custom content types, fields and views.
Tag: List Design
posts
Custom document library template using PnP PowerShell
Custom document library template using PnP PowerShell Creating custom list templates is now possible to create both custom document libraries and lists.
This article explores the option how to use a combination of list design and PowerShell script to provision multiple instances of document libraries using a CSV file and how to create a document library from a custom list template from UI.
First we can create a list design for our library based on an existing configured document library with custom content types, fields and views.
Tag: SPO
posts
Custom document library template using PnP PowerShell
Custom document library template using PnP PowerShell Creating custom list templates is now possible to create both custom document libraries and lists.
This article explores the option how to use a combination of list design and PowerShell script to provision multiple instances of document libraries using a CSV file and how to create a document library from a custom list template from UI.
First we can create a list design for our library based on an existing configured document library with custom content types, fields and views.
Tag: Deployments
posts
Powerapps Listforms Deployments solutions
Power Apps list forms deployment with help of solution Power Apps List forms are be default hidden from the list of apps from https://make.powerapps.com/. Deployment of list forms remains a challenge.
This is my brief attempt to try to streamline the process using a solution. A solution within Power Platform makes it dataverse friendly.
Let’s say you already have a list form tied to a list. In the background it is a hidden list.
Tag: PowerApps
posts
Powerapps Listforms Deployments solutions
Power Apps list forms deployment with help of solution Power Apps List forms are be default hidden from the list of apps from https://make.powerapps.com/. Deployment of list forms remains a challenge.
This is my brief attempt to try to streamline the process using a solution. A solution within Power Platform makes it dataverse friendly.
Let’s say you already have a list form tied to a list. In the background it is a hidden list.
posts
Building a Quiz App with OpenAI GPT in PowerApps
Building a Quiz App with OpenAI GPT in PowerApps Discover how to create your very own quiz app in Power Apps using the OpenAI GPT (Independent Publisher). This app was inspired by Robin Rosengrün from his demo on Add OpenAI Capabilities to your Power Platform solutions .
Prerequisites API Key Before integrating ChatGPT into PowerShell, you’ll need an OpenAI API key. You can obtain one by visiting OpenAI’s API key page and creating a new secret key.
Tag: Solutions
posts
Powerapps Listforms Deployments solutions
Power Apps list forms deployment with help of solution Power Apps List forms are be default hidden from the list of apps from https://make.powerapps.com/. Deployment of list forms remains a challenge.
This is my brief attempt to try to streamline the process using a solution. A solution within Power Platform makes it dataverse friendly.
Let’s say you already have a list form tied to a list. In the background it is a hidden list.
Tag: Uninstall
posts
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell
Retracting SPFx Solutions from Hub Site and associated sites using PnP PowerShell SharePoint Framework (SPFx) solutions are a powerful tool for extending and customizing SharePoint sites. However, managing these solutions across multiple sites in a SharePoint tenant can be a daunting task. Fortunately, PnP PowerShell provides automation capabilities that can streamline these operations and ensure consistency across the tenant.
The blog post Deploying SharePoint Framework (SPFx) Packages from Tenant App Catalog to Hub Site and Associated Sites covers how to deploy SPFx solutions across a hub site and associated sites.
Tag: Pipeline
posts
Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform
Converting to Modern YAML Pipeline: Application Lifecycle Management in Azure DevOps for Power Platform There are loads of posts explaining Application Lifecycle Management for the Power Platform using Azure DevOps most using the graphical classical pipeline. The latest post I read on this is Application Lifecycle Management for the Power Platform using Azure DevOps by Luise Freese which is brilliant.
Please read article covering difference between YAML and Classic UI to explain why you may want the modern YAML pipeline.
Tag: Reindex
posts
Automating Site Reindexing with PowerShell
Automating Site Reindexing with PowerShell Introduction Keeping your SharePoint environment up-to-date is crucial, especially after making schema changes. One important aspect of maintaining accurate and relevant search results is to regularly reindex sites, libraries, or lists. In this blog post, we will explore a streamlined approach using PnP PowerShell to automate the reindexing process. By leveraging this script, you can ensure that your search results reflect the latest changes in your SharePoint environment.
Tag: CLI for M365
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
Tag: Logo
posts
PowerShell: Set and Remove SharePoint Site Thumbnail Logo
For many organizations, maintaining a consistent brand identity across SharePoint sites is crucial. The distinction between “Site Logo” and “Site Logo Thumbnail” is essential, as they serve different purposes across SharePoint and the Microsoft 365 ecosystem. The site logo appears in the site header, while the site logo thumbnail is used in search results, site cards, when copying/moving files, and other critical areas. It plays a vital role in helping end users differentiate between various SharePoint Online (SPO) sites and Teams.
Tag: Audit Logs
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
Tag: AzureDirectory
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
Tag: Exchange
posts
Unveiling Audit Logs with PnP and Cli for M365 PowerShell
Unveiling Audit Logs with PnP PowerShell for the last 7 days Understanding and tracking activities within your M365 environment is crucial for maintaining security and compliance. Audit Logs offer a wealth of information, and in this post, we’ll delve into the methods to retrieve and analyze them. Specifically, we’ll focus on leveraging the Office 365 Management Activity API reference through the Get-PnPUnifiedAuditLog PnP PowerShell cmdlet. It is a great alternative if you are only a SharePoint Administrator with no global admin or Purview Audit logs access.
Tag: file type
posts
Internal References in SharePoint Column Formatting for Document libraries: leveraging Name, Folder and Path properties
SharePoint Column Formatting for Document libraries: Leveraging Name, Folder and Path properties While referencing [$Title] in lists is straightforward, document libraries demand a nuanced approach. Instead of [$Name], had to delve into the intricacies of internal names like $FileLeafRef and $FileRef when working with column formatting.
$FileLeafRef: Denotes the name of the file.
$FileRef: Represents the server-relative URL of the file.
Initial attempts to incorporate $FileSystemObjectType for folder identification was challenging, indicating that not all document library internal column names are supported.
Tag: fileleafref
posts
Internal References in SharePoint Column Formatting for Document libraries: leveraging Name, Folder and Path properties
SharePoint Column Formatting for Document libraries: Leveraging Name, Folder and Path properties While referencing [$Title] in lists is straightforward, document libraries demand a nuanced approach. Instead of [$Name], had to delve into the intricacies of internal names like $FileLeafRef and $FileRef when working with column formatting.
$FileLeafRef: Denotes the name of the file.
$FileRef: Represents the server-relative URL of the file.
Initial attempts to incorporate $FileSystemObjectType for folder identification was challenging, indicating that not all document library internal column names are supported.
Tag: fileref
posts
Internal References in SharePoint Column Formatting for Document libraries: leveraging Name, Folder and Path properties
SharePoint Column Formatting for Document libraries: Leveraging Name, Folder and Path properties While referencing [$Title] in lists is straightforward, document libraries demand a nuanced approach. Instead of [$Name], had to delve into the intricacies of internal names like $FileLeafRef and $FileRef when working with column formatting.
$FileLeafRef: Denotes the name of the file.
$FileRef: Represents the server-relative URL of the file.
Initial attempts to incorporate $FileSystemObjectType for folder identification was challenging, indicating that not all document library internal column names are supported.
Tag: Name
posts
Internal References in SharePoint Column Formatting for Document libraries: leveraging Name, Folder and Path properties
SharePoint Column Formatting for Document libraries: Leveraging Name, Folder and Path properties While referencing [$Title] in lists is straightforward, document libraries demand a nuanced approach. Instead of [$Name], had to delve into the intricacies of internal names like $FileLeafRef and $FileRef when working with column formatting.
$FileLeafRef: Denotes the name of the file.
$FileRef: Represents the server-relative URL of the file.
Initial attempts to incorporate $FileSystemObjectType for folder identification was challenging, indicating that not all document library internal column names are supported.
Tag: Contributions
posts
A Guide to Contributing to PnP PowerShell
A Guide to Contributing to PnP PowerShell Contributing to PnP PowerShell is a rewarding journey. Whether you’re a seasoned contributor or a beginner, this guide aims to simplify the process and keep it handy for your next contribution.
Prerequisites To set up the development to start hacking on PnP PowerShell, install the following
Install Git Install PowerShell 7 Install Visual Code or Visual Studio Code Install .NET SDK 6 (https://dotnet.microsoft.com/download/dotnet/6.0) Forking and cloning First things first, make a copy of the repository to start working on your changes.
Tag: Open Source
posts
A Guide to Contributing to PnP PowerShell
A Guide to Contributing to PnP PowerShell Contributing to PnP PowerShell is a rewarding journey. Whether you’re a seasoned contributor or a beginner, this guide aims to simplify the process and keep it handy for your next contribution.
Prerequisites To set up the development to start hacking on PnP PowerShell, install the following
Install Git Install PowerShell 7 Install Visual Code or Visual Studio Code Install .NET SDK 6 (https://dotnet.microsoft.com/download/dotnet/6.0) Forking and cloning First things first, make a copy of the repository to start working on your changes.
Tag: Blogging
posts
Creating New Posts with Hugo
Creating New Posts with Hugo In this post, we will walk through the process of creating a new post in Hugo, a popular static site generator.
Step 1: Navigate to Your Hugo Site First, navigate to the directory where your Hugo site is configured. You can do this using the cd command in terminal:
cd .\Hugo\sites\M365Blog\ Step 2: Create a New Post Next, use the hugo new command to create a new post:
Tag: Tutorial
posts
Creating New Posts with Hugo
Creating New Posts with Hugo In this post, we will walk through the process of creating a new post in Hugo, a popular static site generator.
Step 1: Navigate to Your Hugo Site First, navigate to the directory where your Hugo site is configured. You can do this using the cd command in terminal:
cd .\Hugo\sites\M365Blog\ Step 2: Create a New Post Next, use the hugo new command to create a new post:
Tag: CSS
posts
Enhance List Formatting for Multi-Line Text fields challenges
Enhance List Formatting for Multi-Line Text fields challenges Summary The following sample shows how you can view more of a truncated multi line text column on click. Column formatting in SharePoint is a powerful tool to customize how data is displayed. Multi-line text fields, however, present unique challenges when applying these formats. This guide explores a method to expand truncated multi-line text on click and discusses its limitations.
Understanding the Concept The objective is to provide users with a preview of truncated text and enable expansion on hover.
posts
Executing a Flow from Column Formatting from a page using the Embed Webpart
Executing a Flow from Column Formatting from a page using the Embed Webpart I encountered an intriguing challenge: triggering a flow from column formatting within a List View Webpart. Initially, I successfully created a button within a list to execute a flow on a specific item, following the steps outlined in Microsoft’s documentation here. It worked seamlessly within the list interface directly.
However, when attempting to add the list with the formatting column using the list view webpart on a page to allow end-users to trigger the flow the results were different.
Tag: HTML
posts
Enhance List Formatting for Multi-Line Text fields challenges
Enhance List Formatting for Multi-Line Text fields challenges Summary The following sample shows how you can view more of a truncated multi line text column on click. Column formatting in SharePoint is a powerful tool to customize how data is displayed. Multi-line text fields, however, present unique challenges when applying these formats. This guide explores a method to expand truncated multi-line text on click and discusses its limitations.
Understanding the Concept The objective is to provide users with a preview of truncated text and enable expansion on hover.
posts
Executing a Flow from Column Formatting from a page using the Embed Webpart
Executing a Flow from Column Formatting from a page using the Embed Webpart I encountered an intriguing challenge: triggering a flow from column formatting within a List View Webpart. Initially, I successfully created a button within a list to execute a flow on a specific item, following the steps outlined in Microsoft’s documentation here. It worked seamlessly within the list interface directly.
However, when attempting to add the list with the formatting column using the list view webpart on a page to allow end-users to trigger the flow the results were different.
posts
Optimizing Email HTML for Outlook
Optimizing Email HTML for Outlook using the ‘Send Email’ action within Power Automate When crafting attention-grabbing emails, the HTML structure plays a pivotal role. I recently encountered challenges in achieving consistent formatting across Outlook desktop and web versions using the Send Email action within Power Automate.
Using div Tags for Responsiveness At first, I experimented with divs to ensure responsiveness and modern HTML formatting. The code appeared as follows:
<style> .
Tag: MultiLineText
posts
Enhance List Formatting for Multi-Line Text fields challenges
Enhance List Formatting for Multi-Line Text fields challenges Summary The following sample shows how you can view more of a truncated multi line text column on click. Column formatting in SharePoint is a powerful tool to customize how data is displayed. Multi-line text fields, however, present unique challenges when applying these formats. This guide explores a method to expand truncated multi-line text on click and discusses its limitations.
Understanding the Concept The objective is to provide users with a preview of truncated text and enable expansion on hover.
Tag: Embed WebPart
posts
Executing a Flow from Column Formatting from a page using the Embed Webpart
Executing a Flow from Column Formatting from a page using the Embed Webpart I encountered an intriguing challenge: triggering a flow from column formatting within a List View Webpart. Initially, I successfully created a button within a list to execute a flow on a specific item, following the steps outlined in Microsoft’s documentation here. It worked seamlessly within the list interface directly.
However, when attempting to add the list with the formatting column using the list view webpart on a page to allow end-users to trigger the flow the results were different.
Tag: Trigger Flow
posts
Executing a Flow from Column Formatting from a page using the Embed Webpart
Executing a Flow from Column Formatting from a page using the Embed Webpart I encountered an intriguing challenge: triggering a flow from column formatting within a List View Webpart. Initially, I successfully created a button within a list to execute a flow on a specific item, following the steps outlined in Microsoft’s documentation here. It worked seamlessly within the list interface directly.
However, when attempting to add the list with the formatting column using the list view webpart on a page to allow end-users to trigger the flow the results were different.
Tag: Chrome
posts
Export SharePoint Pages to PDF for SharePoint OnPremises
Export SharePoint Pages to PDF There may be scenerios where you might want to take screenshots of all your pages in your SharePoint site. For instance before revamping a site, you might take screenshots of all pages to compare against updated site to show end client progress or difference the new design brings or could be simply for backing up the pages before archiving the site.
Prerequisites Google Chrome installed SharePoint PowerShell
Tag: Export to PDF
posts
Export SharePoint Pages to PDF for SharePoint OnPremises
Export SharePoint Pages to PDF There may be scenerios where you might want to take screenshots of all your pages in your SharePoint site. For instance before revamping a site, you might take screenshots of all pages to compare against updated site to show end client progress or difference the new design brings or could be simply for backing up the pages before archiving the site.
Prerequisites Google Chrome installed SharePoint PowerShell
Tag: OnPremises
posts
Export SharePoint Pages to PDF for SharePoint OnPremises
Export SharePoint Pages to PDF There may be scenerios where you might want to take screenshots of all your pages in your SharePoint site. For instance before revamping a site, you might take screenshots of all pages to compare against updated site to show end client progress or difference the new design brings or could be simply for backing up the pages before archiving the site.
Prerequisites Google Chrome installed SharePoint PowerShell
Tag: SharePoint Pages
posts
Export SharePoint Pages to PDF for SharePoint OnPremises
Export SharePoint Pages to PDF There may be scenerios where you might want to take screenshots of all your pages in your SharePoint site. For instance before revamping a site, you might take screenshots of all pages to compare against updated site to show end client progress or difference the new design brings or could be simply for backing up the pages before archiving the site.
Prerequisites Google Chrome installed SharePoint PowerShell
Tag: Email Action
posts
Optimizing Email HTML for Outlook
Optimizing Email HTML for Outlook using the ‘Send Email’ action within Power Automate When crafting attention-grabbing emails, the HTML structure plays a pivotal role. I recently encountered challenges in achieving consistent formatting across Outlook desktop and web versions using the Send Email action within Power Automate.
Using div Tags for Responsiveness At first, I experimented with divs to ensure responsiveness and modern HTML formatting. The code appeared as follows:
<style> .
Tag: Child Workflow
posts
Converting a HTTP Trigger into a Child Workflow in Power Automate
Converting a HTTP Trigger into a Child Workflow in Power Automate Using a HTTP trigger requires Premium licence and with the Child Workflow in a solution alleviates the need of premium license.
Other advantages using a solution:
Application Lifecycle Management: Facilitates deployment. Child Workflow: Allows for a more modular and manageable flow structure. Easier Ownership Management: Simplifies updates to the flow owner. I recreated the child workflow within the solution selecting the Manually trigger a flow trigger and updated the parent flow to use the flow as child workflow.
Tag: HTTP trigger
posts
Converting a HTTP Trigger into a Child Workflow in Power Automate
Converting a HTTP Trigger into a Child Workflow in Power Automate Using a HTTP trigger requires Premium licence and with the Child Workflow in a solution alleviates the need of premium license.
Other advantages using a solution:
Application Lifecycle Management: Facilitates deployment. Child Workflow: Allows for a more modular and manageable flow structure. Easier Ownership Management: Simplifies updates to the flow owner. I recreated the child workflow within the solution selecting the Manually trigger a flow trigger and updated the parent flow to use the flow as child workflow.
Tag: Checked out
posts
Discovering All Checked Out Files including those with no checked in versions with PnP PowerShell
Discovering All Checked Out Files including those with no checked in versions There are scenarios when files uploaded won’t have “checked-in version” which will make the files visible only to their uploader. Two possible scenarios that can lead to the situation:
Mandatory Metadata Requirements: When there are mandatory fields configured on the libraries and end users use Onedrive as a medium to upload the files to SharePoint via a shortcut to OneDrive.
Tag: Mandatory Metadata
posts
Discovering All Checked Out Files including those with no checked in versions with PnP PowerShell
Discovering All Checked Out Files including those with no checked in versions There are scenarios when files uploaded won’t have “checked-in version” which will make the files visible only to their uploader. Two possible scenarios that can lead to the situation:
Mandatory Metadata Requirements: When there are mandatory fields configured on the libraries and end users use Onedrive as a medium to upload the files to SharePoint via a shortcut to OneDrive.
Tag: Columns
posts
Copy Column View Formatting to different environment using PnP PowerShell
Copy Column and View Formatting using PnP PowerShell There is a great sample script how to backup all column, view and content type formatting by Dan Toft. If you need to copy column and view formatting across different environments, such as from Dev to Test, UAT, and Prod, especially when dealing with multiple lists/libraries, the script may help you.
PnP PowerShell Script param ( [Parameter(Mandatory=$false)] [string]$SourceSiteUrl = "https://contoso.sharepoint.com/teams/d-app-test", [Parameter(Mandatory=$false)] [string]$DestinationSiteUrl = "https://contoso.
Tag: Formatting
posts
Copy Column View Formatting to different environment using PnP PowerShell
Copy Column and View Formatting using PnP PowerShell There is a great sample script how to backup all column, view and content type formatting by Dan Toft. If you need to copy column and view formatting across different environments, such as from Dev to Test, UAT, and Prod, especially when dealing with multiple lists/libraries, the script may help you.
PnP PowerShell Script param ( [Parameter(Mandatory=$false)] [string]$SourceSiteUrl = "https://contoso.sharepoint.com/teams/d-app-test", [Parameter(Mandatory=$false)] [string]$DestinationSiteUrl = "https://contoso.
Tag: Permissions
posts
Copy Column View Formatting to different environment using PnP PowerShell
Copy Column and View Formatting using PnP PowerShell There is a great sample script how to backup all column, view and content type formatting by Dan Toft. If you need to copy column and view formatting across different environments, such as from Dev to Test, UAT, and Prod, especially when dealing with multiple lists/libraries, the script may help you.
PnP PowerShell Script param ( [Parameter(Mandatory=$false)] [string]$SourceSiteUrl = "https://contoso.sharepoint.com/teams/d-app-test", [Parameter(Mandatory=$false)] [string]$DestinationSiteUrl = "https://contoso.
posts
Ensuring Owners Are Members
Ensure Owners Are Members M365Group Microsoft 365 (M365) Groups serve as a central hub for collaboration across various M365 applications like Teams, Planner, SharePoint, and more. While M365 roles include Owners, Members, and Guests, it’s crucial to understand that being an owner doesn’t always inherit member privileges. In this article, we’ll explore why it’s imperative to have M365 Group owners also serve as active members for seamless group management and productivity.
Tag: Views
posts
Copy Column View Formatting to different environment using PnP PowerShell
Copy Column and View Formatting using PnP PowerShell There is a great sample script how to backup all column, view and content type formatting by Dan Toft. If you need to copy column and view formatting across different environments, such as from Dev to Test, UAT, and Prod, especially when dealing with multiple lists/libraries, the script may help you.
PnP PowerShell Script param ( [Parameter(Mandatory=$false)] [string]$SourceSiteUrl = "https://contoso.sharepoint.com/teams/d-app-test", [Parameter(Mandatory=$false)] [string]$DestinationSiteUrl = "https://contoso.
Tag: Modern SharePoint Page
posts
How to Hide the 'See All' Button in the Highlighted Content Web Part using PnP PowerShell
How to Hide the “See All” Button in the Highlighted Content Web Part using PnP PowerShell Recently, I encountered an issue with the “Show Title and Commands” toggle in the out-of-the-box Highlighted Content web part. It stopped working on both my development and customer tenant. I’ve raised the issue on the Microsoft Forum and also opened a case with Microsoft to investigate the backend.
While awaiting a resolution from Microsoft, I decided to find a workaround.
Tag: Set-PnPPageWebPart
posts
How to Hide the 'See All' Button in the Highlighted Content Web Part using PnP PowerShell
How to Hide the “See All” Button in the Highlighted Content Web Part using PnP PowerShell Recently, I encountered an issue with the “Show Title and Commands” toggle in the out-of-the-box Highlighted Content web part. It stopped working on both my development and customer tenant. I’ve raised the issue on the Microsoft Forum and also opened a case with Microsoft to investigate the backend.
While awaiting a resolution from Microsoft, I decided to find a workaround.
Tag: WebPart
posts
How to Hide the 'See All' Button in the Highlighted Content Web Part using PnP PowerShell
How to Hide the “See All” Button in the Highlighted Content Web Part using PnP PowerShell Recently, I encountered an issue with the “Show Title and Commands” toggle in the out-of-the-box Highlighted Content web part. It stopped working on both my development and customer tenant. I’ve raised the issue on the Microsoft Forum and also opened a case with Microsoft to investigate the backend.
While awaiting a resolution from Microsoft, I decided to find a workaround.
Tag: AI Concerns
posts
MS Build AI Day: Build and maintain your company Copilot with Azure ML and GPT-4 By Seth Juarez
Build and maintain your company Copilot with Azure ML and GPT-4 By Seth Juarez I attended the session Build and maintain your company Copilot with Azure ML and GPT-4 at MS Build AI Day by Seth Juarez on the 19th Oct 2023. Seth began the session with a “Group Therapy” followed by a delve deep into the intricacies of language models, shedding light on Azure Machine Learning. He referred to Henk’s presentation and Keynote to reinforce some Generative AI concepts.
Tag: Azure ML
posts
MS Build AI Day: Build and maintain your company Copilot with Azure ML and GPT-4 By Seth Juarez
Build and maintain your company Copilot with Azure ML and GPT-4 By Seth Juarez I attended the session Build and maintain your company Copilot with Azure ML and GPT-4 at MS Build AI Day by Seth Juarez on the 19th Oct 2023. Seth began the session with a “Group Therapy” followed by a delve deep into the intricacies of language models, shedding light on Azure Machine Learning. He referred to Henk’s presentation and Keynote to reinforce some Generative AI concepts.
Tag: Language Calculator
posts
MS Build AI Day: Build and maintain your company Copilot with Azure ML and GPT-4 By Seth Juarez
Build and maintain your company Copilot with Azure ML and GPT-4 By Seth Juarez I attended the session Build and maintain your company Copilot with Azure ML and GPT-4 at MS Build AI Day by Seth Juarez on the 19th Oct 2023. Seth began the session with a “Group Therapy” followed by a delve deep into the intricacies of language models, shedding light on Azure Machine Learning. He referred to Henk’s presentation and Keynote to reinforce some Generative AI concepts.
Tag: AI
posts
MS Build AI Day: Develop in the cloud with Microsoft Dev Box by Dona Sarkar
Develop in the cloud with Microsoft Dev Box by Dona Sarkar I attended the session Develop in the cloud with Microsoft Dev Box at MS Build AI Day by Dona Sarkar on the 19th Oct 2023.
Dona started the session to gauge the audience how long it takes to set up a dev environment before a Dev can submit their first PR. It takes between 1-5 days for Dev environment set up.
Tag: COBOL
posts
MS Build AI Day: Develop in the cloud with Microsoft Dev Box by Dona Sarkar
Develop in the cloud with Microsoft Dev Box by Dona Sarkar I attended the session Develop in the cloud with Microsoft Dev Box at MS Build AI Day by Dona Sarkar on the 19th Oct 2023.
Dona started the session to gauge the audience how long it takes to set up a dev environment before a Dev can submit their first PR. It takes between 1-5 days for Dev environment set up.
Tag: Copilots
posts
MS Build AI Day: Develop in the cloud with Microsoft Dev Box by Dona Sarkar
Develop in the cloud with Microsoft Dev Box by Dona Sarkar I attended the session Develop in the cloud with Microsoft Dev Box at MS Build AI Day by Dona Sarkar on the 19th Oct 2023.
Dona started the session to gauge the audience how long it takes to set up a dev environment before a Dev can submit their first PR. It takes between 1-5 days for Dev environment set up.
Tag: MS Dev Box
posts
MS Build AI Day: Develop in the cloud with Microsoft Dev Box by Dona Sarkar
Develop in the cloud with Microsoft Dev Box by Dona Sarkar I attended the session Develop in the cloud with Microsoft Dev Box at MS Build AI Day by Dona Sarkar on the 19th Oct 2023.
Dona started the session to gauge the audience how long it takes to set up a dev environment before a Dev can submit their first PR. It takes between 1-5 days for Dev environment set up.
Tag: Azure OpenAi
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
Tag: ChatGPT
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
Tag: Generative AI
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
Tag: Grounding
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: Prompt
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
Tag: RAG
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
Tag: Responsible AI
posts
MS Build AI Day: Generative AI using Azure OpenAI Service by Henk Boelman
Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman I attended the session Generative AI using Azure OpenAI Service session at MS Build AI Day by Henk Boelman on the 19th Oct 2023. He demoed how to leverage Azure Open AI Service to “add your own data” combined with ChatGPT to retrieve information from your company owned data covering elements of generative AI and reinforcing some of the points highlighted in the Keynote such as prompt engineering, grounding, jail breaking, etc.
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: Efficiency
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: Prompt Engineering
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: Safety Checks
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: Temperature
posts
Ms Build AI Day Keynote on the 19 Oct 2023
MS Build AI Day Keynote by Scott Hanselman On October 19, 2023, the inaugural MS Build AI Day at Excel London in Custom House marked a pivotal moment for the world of AI. As an attendee, I had the privilege of witnessing a groundbreaking keynote session led by none other than Scott Hanselman. Titled “Navigating the AI Landscape,” the keynote, introduced by Michael Wignall, the lead for MS Build, set the stage for an eventful day filled with insights, connections, and hands-on experiences.
Tag: Taxonomy
posts
Ensure Taxonomy Feature in SharePoint Sites Connected to Private/Shared Teams Channels
Ensure Taxonomy Feature In SharePoint site connected to a Private/Shared Channel Sites Taxonomy feature is not activated by default in SharePoint sites linked to a private or shared Teams Channels. When attempting to add content types with managed metadata columns, you may encounter an error message stating “Taxonomy disabled”.
To resolve this issue, you can enable the taxonomy feature with the ID 73ef14b1-13a9-416b-a9b5-ececa2b0604c using the PowerShell cmdlet Enable-PnPFeature before adding the content types to the sites with the template TEAMCHANNEL#1.
Tag: Teams Channels
posts
Ensure Taxonomy Feature in SharePoint Sites Connected to Private/Shared Teams Channels
Ensure Taxonomy Feature In SharePoint site connected to a Private/Shared Channel Sites Taxonomy feature is not activated by default in SharePoint sites linked to a private or shared Teams Channels. When attempting to add content types with managed metadata columns, you may encounter an error message stating “Taxonomy disabled”.
To resolve this issue, you can enable the taxonomy feature with the ID 73ef14b1-13a9-416b-a9b5-ececa2b0604c using the PowerShell cmdlet Enable-PnPFeature before adding the content types to the sites with the template TEAMCHANNEL#1.
Tag: Members
posts
Ensuring Owners Are Members
Ensure Owners Are Members M365Group Microsoft 365 (M365) Groups serve as a central hub for collaboration across various M365 applications like Teams, Planner, SharePoint, and more. While M365 roles include Owners, Members, and Guests, it’s crucial to understand that being an owner doesn’t always inherit member privileges. In this article, we’ll explore why it’s imperative to have M365 Group owners also serve as active members for seamless group management and productivity.
Tag: OpenAI GPT
posts
Building a Quiz App with OpenAI GPT in PowerApps
Building a Quiz App with OpenAI GPT in PowerApps Discover how to create your very own quiz app in Power Apps using the OpenAI GPT (Independent Publisher). This app was inspired by Robin Rosengrün from his demo on Add OpenAI Capabilities to your Power Platform solutions .
Prerequisites API Key Before integrating ChatGPT into PowerShell, you’ll need an OpenAI API key. You can obtain one by visiting OpenAI’s API key page and creating a new secret key.
Tag: ParseJson
posts
Building a Quiz App with OpenAI GPT in PowerApps
Building a Quiz App with OpenAI GPT in PowerApps Discover how to create your very own quiz app in Power Apps using the OpenAI GPT (Independent Publisher). This app was inspired by Robin Rosengrün from his demo on Add OpenAI Capabilities to your Power Platform solutions .
Prerequisites API Key Before integrating ChatGPT into PowerShell, you’ll need an OpenAI API key. You can obtain one by visiting OpenAI’s API key page and creating a new secret key.
Tag: Approval
posts
Updating Approval Details in SharePoint Library using 'Send HTTP Request to SharePoint' in Power Automate
Updating Approval Details in SharePoint Library using ‘Send HTTP Request to SharePoint’ in Power Automate In Power Automate, there are two methods for updating file properties:
Send HTTP Request to SharePoint Update File Properties While the latter suffices for most cases, I opted for the “Send HTTP Request to SharePoint” in specific scenarios:
To avoid triggering a new file version using system update. When modifying system columns such as author or modified date.
Tag: Send HTTP Request to SharePoint
posts
Updating Approval Details in SharePoint Library using 'Send HTTP Request to SharePoint' in Power Automate
Updating Approval Details in SharePoint Library using ‘Send HTTP Request to SharePoint’ in Power Automate In Power Automate, there are two methods for updating file properties:
Send HTTP Request to SharePoint Update File Properties While the latter suffices for most cases, I opted for the “Send HTTP Request to SharePoint” in specific scenarios:
To avoid triggering a new file version using system update. When modifying system columns such as author or modified date.
Tag: PnPBatch
posts
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell Utilizing ChatGPT to generate test data for various applications is a powerful capability. After stumbling upon the sample script Create test users using MS Graph API from list or ask ChatGPT to generate test users by Valeras Narbutas on creating test users with MS Graph API, I decided to explore using ChatGPT to generate a list of data. This script harnesses OpenAI’s ChatGPT model to effortlessly generate a list of wellbeing activities.
posts
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency In this article, we explore how to efficiently update a large SharePoint list containing approximately 60,000 items using PnP-Batch. Updating such a substantial number of items individually can be time-consuming and prone to throttling issues. Prior to using PnP Batch , it was taking more than 12 hours to update 60k one by one. The article highlights the benefits of using PnP Batch, which significantly reduces the time taken for updates by sending fewer requests.
Tag: SystemUpdate
posts
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell
Leveraging ChatGPT to Generate Test Data for SharePoint Lists Using PnP PowerShell Utilizing ChatGPT to generate test data for various applications is a powerful capability. After stumbling upon the sample script Create test users using MS Graph API from list or ask ChatGPT to generate test users by Valeras Narbutas on creating test users with MS Graph API, I decided to explore using ChatGPT to generate a list of data. This script harnesses OpenAI’s ChatGPT model to effortlessly generate a list of wellbeing activities.
posts
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency
Optimising Large List Updates with PnP Batch: Handling Throttling and Enhancing Efficiency In this article, we explore how to efficiently update a large SharePoint list containing approximately 60,000 items using PnP-Batch. Updating such a substantial number of items individually can be time-consuming and prone to throttling issues. Prior to using PnP Batch , it was taking more than 12 hours to update 60k one by one. The article highlights the benefits of using PnP Batch, which significantly reduces the time taken for updates by sending fewer requests.
Tag: Add-in
posts
Teams Add-in Not Showing Within Outlook
Teams Add-in Not Showing Within Outlook The add-in for setting up a teams meeting within the outlook application was no longer showing. The add-in was not available to be enabled within Outlook as per Troubleshoot the Teams Meeting add-in in Outlook for Windows. Even after reinstalling Teams or creating a new profile within Outlook, it did not fix the issue. As a workaround I was using
Use Team calendar to create meeting Use Outlook Web App to create meetings With Microsoft Support’s help via a case we identified the issue was the missing following key:
Tag: Doughnut Chart
posts
Expanding Doughnut Chart in Microsoft Lists: Visualize Data in Segments and Track Progress
Expanding Doughnut Chart in Microsoft Lists: Visualize Data in Segments and Track Progress The doughnut chart is a powerful visualization tool that allows users to represent data in segments and track progress against targets. Frederico Sapia’s Doughnut Chart with percentage and values displayed is a valuable custom chart for Microsoft Lists, enabling users to visualize data effectively. However, the original chart allowed for only six slices, limiting its flexibility. In this blog post, we explore how to extend the doughnut chart to support up to nine slices, and we’ll also demonstrate how to display the percentage of each segment within the chart.
Tag: Microsoft
posts
Expanding Doughnut Chart in Microsoft Lists: Visualize Data in Segments and Track Progress
Expanding Doughnut Chart in Microsoft Lists: Visualize Data in Segments and Track Progress The doughnut chart is a powerful visualization tool that allows users to represent data in segments and track progress against targets. Frederico Sapia’s Doughnut Chart with percentage and values displayed is a valuable custom chart for Microsoft Lists, enabling users to visualize data effectively. However, the original chart allowed for only six slices, limiting its flexibility. In this blog post, we explore how to extend the doughnut chart to support up to nine slices, and we’ll also demonstrate how to display the percentage of each segment within the chart.
Tag: Outlook
posts
Teams Add-in Not Showing Within Outlook
Teams Add-in Not Showing Within Outlook The add-in for setting up a teams meeting within the outlook application was no longer showing. The add-in was not available to be enabled within Outlook as per Troubleshoot the Teams Meeting add-in in Outlook for Windows. Even after reinstalling Teams or creating a new profile within Outlook, it did not fix the issue. As a workaround I was using
Use Team calendar to create meeting Use Outlook Web App to create meetings With Microsoft Support’s help via a case we identified the issue was the missing following key:
Tag: Robot.txt
posts
How to Ensure Your Netlify Site is Search Engine Crawlable
How to Ensure Your Netlify Site is Search Engine Crawlable There are numerous posts to describe how to convert Wordpress to Hugo. I followed the instructions from blog post How to move your blog from Wordpress to Hugo to start with and hosted it on Netlify, it’s essential to ensure that search engines can crawl and index your site properly. Follow these steps to make sure your site is discoverable:
Tag: Search Engine
posts
How to Ensure Your Netlify Site is Search Engine Crawlable
How to Ensure Your Netlify Site is Search Engine Crawlable There are numerous posts to describe how to convert Wordpress to Hugo. I followed the instructions from blog post How to move your blog from Wordpress to Hugo to start with and hosted it on Netlify, it’s essential to ensure that search engines can crawl and index your site properly. Follow these steps to make sure your site is discoverable:
Tag: CLI
posts
Get a CSV of all my pull requests from Github using Github CLI and PowerShell
Github does not provide an easy way to export all your pull requests for review or sharing with anyone. Below is a great post to show how to do it using BASH.
GitHub: Get a CSV containing my pull requests (PRs)
If you are using windows machine, PowerShell is your friend.
Install GitHub CLI via command line
winget install --id GitHub.cli Enter Y to the question
Do you agree to all the source agreements terms?
Tag: coauthoring
posts
Coauthoring in power apps issues
Coauthoring with power apps issues Coauthoring in power apps allows multiple power apps developers to work on the same canvas app. Despite being an experimental feature we decided to give a try to speed up the development process. We used the blog post [How To Setup Power Apps Co-Authoring - Azure Dev Ops Version] (https://www.matthewdevaney.com/how-to-setup-power-apps-co-authoring-azure-dev-ops-version/). The tutorial covers step-by-step instructions for enabling co-authoring for canvas apps in Power Apps using Azure DevOps repository.
Tag: Embed, Instagram
posts
Embedding Instagram Posts in Modern SharePoint Pages using embed webpart
Embedding Instagram Posts in Modern SharePoint Pages using embed webpart I was investigating on how to display an instagram post within a Modern SharePoint News Page.
The generic embed code from instagram post uses the script tag which is not allowed within SharePoint Modern Page unless script webpart is allowed to be used.
These are the steps to follow to get the embed code of an instagram post
Navigate to the instagram post, e.
Tag: SharePoint Page
posts
Embedding Instagram Posts in Modern SharePoint Pages using embed webpart
Embedding Instagram Posts in Modern SharePoint Pages using embed webpart I was investigating on how to display an instagram post within a Modern SharePoint News Page.
The generic embed code from instagram post uses the script tag which is not allowed within SharePoint Modern Page unless script webpart is allowed to be used.
These are the steps to follow to get the embed code of an instagram post
Navigate to the instagram post, e.
Tag: Embed, Power Apps
posts
Troubleshooting Blocked Links to SharePoint Pages in Embedded Power Apps
Troubleshooting Blocked Links to SharePoint Pages in Embedded Power Apps When embedding Power Apps using the “Microsoft Power Apps web part,” you may encounter an issue where links to SharePoint pages are blocked from image or button controls. This issue does not affect links to Power Apps themselves. The error message you might encounter is as follows:
“Unsafe attempt to initiate navigation for frame with origin ‘domain.sharepoint.com’ from frame with URL ‘https://pa-static-ms.
Tag: Links to SharePoint Pages
posts
Troubleshooting Blocked Links to SharePoint Pages in Embedded Power Apps
Troubleshooting Blocked Links to SharePoint Pages in Embedded Power Apps When embedding Power Apps using the “Microsoft Power Apps web part,” you may encounter an issue where links to SharePoint pages are blocked from image or button controls. This issue does not affect links to Power Apps themselves. The error message you might encounter is as follows:
“Unsafe attempt to initiate navigation for frame with origin ‘domain.sharepoint.com’ from frame with URL ‘https://pa-static-ms.
Tag: Image, PowerAutomate
posts
Add or Update Image Column in SharePoint with Power Automate: Download and Use Images from the Web
Add or Update Image Column in SharePoint with Power Automate: Download and Use Images from the Web The blog post titled Update image in SharePoint/Microsoft Lists Image columns using Power Automate by Ganesh Sanap rovides a guide on how to update an image column in SharePoint or Microsoft Lists using Power Automate. The native “Create Item” and “Update Item” actions in Power Automate do not directly support adding or updating image columns.
Tag: SharePoint List
posts
Add or Update Image Column in SharePoint with Power Automate: Download and Use Images from the Web
Add or Update Image Column in SharePoint with Power Automate: Download and Use Images from the Web The blog post titled Update image in SharePoint/Microsoft Lists Image columns using Power Automate by Ganesh Sanap rovides a guide on how to update an image column in SharePoint or Microsoft Lists using Power Automate. The native “Create Item” and “Update Item” actions in Power Automate do not directly support adding or updating image columns.
Tag: CI/CD
posts
Azure DevOps Spfx Deployment Workload Identity Federation
Introduction Thanks to Kinga Kazala for her timely article Deploy SPFx app using pipeline’s Workload Identity federation, which showcases how to use Workload Identity Federation to alleviate the need for using Entra app secrets or certificates. This method simplifies the setup process, especially when there’s reliance on a single person who might be unavailable.
We initially set up the SPFx pipeline for the Test environment using certificates with CLI for M365.
posts
Powerapps Listforms Deployments solutions
Power Apps list forms deployment with help of solution Power Apps List forms are be default hidden from the list of apps from https://make.powerapps.com/. Deployment of list forms remains a challenge.
This is my brief attempt to try to streamline the process using a solution. A solution within Power Platform makes it dataverse friendly.
Let’s say you already have a list form tied to a list. In the background it is a hidden list.