<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Microsoft 365 Migrations topics</title>
    <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/bd-p/microsoft-365-migrations</link>
    <description>Microsoft 365 Migrations topics</description>
    <pubDate>Sun, 12 Apr 2026 21:13:42 GMT</pubDate>
    <dc:creator>microsoft-365-migrations</dc:creator>
    <dc:date>2026-04-12T21:13:42Z</dc:date>
    <item>
      <title>PCLaw Cloud Hosting: Secure and Flexible Legal Practice Management in the Cloud</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/pclaw-cloud-hosting-secure-and-flexible-legal-practice/m-p/4509214#M21</link>
      <description>&lt;P&gt;Cloud hosting for PCLaw is transforming how law firms handle billing, accounting, and case management by moving traditional server-based systems into a secure, accessible cloud environment. Instead of relying on in-house servers, firms can run PCLaw on remote infrastructure and access it anytime, from anywhere.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Traditionally, PCLaw operates as a desktop-based application that requires dedicated servers and ongoing IT maintenance. With cloud hosting, the same software is delivered through a virtual desktop or private cloud, eliminating the need for hardware management while preserving full functionality. This allows legal professionals to work seamlessly across devices, whether in the office, at home, or on the go.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One of the biggest advantages of PCLaw cloud hosting is improved accessibility and mobility. Attorneys and staff can securely access client data, billing systems, and case files without relying on complex VPN setups. Cloud environments also enhance collaboration, enabling multiple users to work on the same data in real time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Security is another major benefit. Cloud-hosted PCLaw environments use encrypted connections, secure data centers, and automated backups to protect sensitive legal information. This reduces the risk of data loss due to hardware failure or cyber threats while ensuring compliance with industry standards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Additionally, cloud hosting reduces IT burden and costs. Service providers handle updates, maintenance, and support, allowing law firms to focus on client services instead of infrastructure management. It also offers predictable monthly pricing, making budgeting easier.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Scalability further enhances its appeal, as firms can easily add users or resources as they grow without investing in new hardware.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For law firms seeking a modern, reliable solution, Apps4Rent offers secure PCLaw cloud hosting with expert support, high performance, and flexible plans designed to meet the evolving needs of legal professionals.&lt;/P&gt;</description>
      <pubDate>Tue, 07 Apr 2026 13:28:14 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/pclaw-cloud-hosting-secure-and-flexible-legal-practice/m-p/4509214#M21</guid>
      <dc:creator>DavisMiller29</dc:creator>
      <dc:date>2026-04-07T13:28:14Z</dc:date>
    </item>
    <item>
      <title>Transitioning from Barracuda to Office 365 for Modern Email Management</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/transitioning-from-barracuda-to-office-365-for-modern-email/m-p/4500920#M20</link>
      <description>&lt;P&gt;Migrating from Barracuda to Office 365 is a strategic step for organizations looking to modernize their email infrastructure and improve collaboration. Many businesses use Barracuda for email security, archiving, or backup, but moving to Office 365 allows them to consolidate these capabilities within a single cloud-based productivity platform. Office 365 offers advanced email services through Exchange Online along with collaboration tools like Outlook, Teams, OneDrive, and SharePoint.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The migration process typically involves transferring archived emails, mailboxes, and user data from Barracuda systems into Office 365. Careful planning is required to ensure data integrity, maintain compliance requirements, and avoid disruptions to daily communication. During the migration, administrators map user accounts, validate domains, and verify that all archived data remains accessible after the transition.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One of the major advantages of moving to Office 365 is the enhanced security and management capabilities. Businesses gain access to features such as advanced threat protection, data loss prevention, and centralized administration. These tools help organizations protect sensitive information while simplifying IT management.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For companies planning this transition, working with experienced providers can help ensure a smooth process. Many organizations rely on Apps4Rent to support Barracuda to Office 365 migrations, ensuring secure data transfer, minimal downtime, and reliable access to Microsoft 365 services after the migration is complete.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Mar 2026 15:12:30 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/transitioning-from-barracuda-to-office-365-for-modern-email/m-p/4500920#M20</guid>
      <dc:creator>DavisMiller29</dc:creator>
      <dc:date>2026-03-10T15:12:30Z</dc:date>
    </item>
    <item>
      <title>Moving from Kerio to Office 365 for Modern Email and Collaboration</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/moving-from-kerio-to-office-365-for-modern-email-and/m-p/4500919#M19</link>
      <description>&lt;P&gt;Migrating from Kerio to Office 365 is a practical step for businesses looking to upgrade their email and collaboration infrastructure. While Kerio Connect provides basic email, calendar, and messaging capabilities, Microsoft Office 365 offers a comprehensive cloud-based platform that includes Outlook, Exchange Online, Teams, OneDrive, and SharePoint. This transition enables organizations to benefit from enhanced productivity tools and improved communication across teams.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;During a Kerio to Office 365 migration, essential data such as emails, contacts, calendars, and folders are transferred from the Kerio server to Exchange Online. The process typically involves configuring Microsoft 365 accounts, securely migrating mailbox data, and updating DNS records to ensure uninterrupted email delivery. Careful planning helps minimize downtime and ensures that users maintain access to their information throughout the migration.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Another key advantage of moving to Office 365 is improved security and scalability. Microsoft provides advanced protection features such as spam filtering, multi-factor authentication, data loss prevention, and built-in compliance tools. These capabilities help organizations protect sensitive information while meeting modern security standards.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Businesses often rely on experienced providers like Apps4Rent to manage Kerio to Office 365 migrations efficiently. With expert planning and support, organizations can ensure a smooth transition, maintain data integrity, and fully leverage the benefits of the Microsoft 365 ecosystem.&lt;/P&gt;</description>
      <pubDate>Tue, 10 Mar 2026 15:09:14 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/moving-from-kerio-to-office-365-for-modern-email-and/m-p/4500919#M19</guid>
      <dc:creator>DavisMiller29</dc:creator>
      <dc:date>2026-03-10T15:09:14Z</dc:date>
    </item>
    <item>
      <title>SharePoint Reporting using PnP PowerShell through Azure Automation</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/sharepoint-reporting-using-pnp-powershell-through-azure/m-p/4495124#M17</link>
      <description>&lt;P data-start="0" data-end="360"&gt;This article explains how to configure an Azure Automation runbook to execute PnP PowerShell and retrieve SharePoint site collection data across a Microsoft 365 tenant. This method is especially useful for tracking weekly changes within a SharePoint environment, such as during preparation for large initiatives like tenant-to-tenant migrations, and allows administrators to run scripts on a schedule without interactive sign-in.&lt;/P&gt;
&lt;P data-start="362" data-end="663" data-is-last-node="" data-is-only-node=""&gt;The solution uses Azure Automation, a managed cloud service that runs scripts in a headless environment. Runbooks behave like standard PowerShell scripts but execute non-interactively, meaning without prompts and output is available only after completion through job logs and output streams.&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;1. Create an Azure Automation Runbook&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P class=""&gt;To get started, you’ll need an Azure subscription to create the resources required for Azure Automation. While the Azure Portal interface may change over time, the underlying steps remain the same – follow the steps outlined below.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;a. Go to the Azure Portal and login with your Azure credentials&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;b. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Create a new Azure Automation Account using the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Create a resource &lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;button and searching for&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Automation&lt;/STRONG&gt;&lt;/P&gt;
&lt;img /&gt;&lt;img /&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;c. Fill out the details for the Azure Automation Account as desired and click&amp;nbsp;&lt;STRONG&gt;Review + Create &lt;/STRONG&gt;at the bottom left followed by clicking on&amp;nbsp;&lt;STRONG&gt;Create &lt;/STRONG&gt;on the review screen&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-clear-both lia-indent-padding-left-30px"&gt;d. Once the resource has been created, click on&amp;nbsp;&lt;STRONG&gt;Go to resource&lt;/STRONG&gt; to open the Azure Automation resource&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-clear-both lia-indent-padding-left-30px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4&gt;&lt;STRONG&gt;2. Configure the Azure Automation Account&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Now your Azure Automation Account has been created, proceed with the next paragraphs to configure it for using PnP PowerShell&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;a. Add the PnP PowerShell module to the Azure Automation Account&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;1. N&lt;SPAN style="color: rgb(30, 30, 30);"&gt;avigate to &lt;STRONG&gt;Modules &lt;/STRONG&gt;which is located on the left side menu of the function app under the &lt;STRONG&gt;Shared Resources&lt;/STRONG&gt; header.&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;2. Click on&amp;nbsp;&lt;STRONG&gt;Add a module&lt;/STRONG&gt; at the top of the screen&lt;/P&gt;
&lt;img /&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN class="lia-text-color-13"&gt;&lt;STRONG&gt;IMPORTANT&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;Currently, the only stable version of&amp;nbsp;&lt;STRONG&gt;PnP PowerShell&lt;/STRONG&gt; compatible with Azure Automation 7.2 runbooks is &lt;STRONG&gt;2.12.0&lt;/STRONG&gt;, as newer releases are not yet supported. Since the &lt;STRONG&gt;Browse from Gallery&lt;/STRONG&gt; option only allows installation of the latest version, you must use the &lt;STRONG&gt;Upload from File&lt;/STRONG&gt; option to upload a supported version instead.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;3.&amp;nbsp;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Open up a PowerShell 7 console and execute the following command to download &lt;STRONG&gt;PnP PowerShell 2.12.0&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Save-Module -Name PnP.PowerShell -RequiredVersion 2.12.0 -Path C:\temp&lt;/LI-CODE&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;4. Using Windows File Explorer, go to the folder where you downloaded the PnP PowerShell package. You should see a folder called PnP.PowerShell in there. Right click on it and choose the option&amp;nbsp;&lt;STRONG&gt;Compress to ZIP file&lt;/STRONG&gt;.&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px lia-clear-both"&gt;5. Select&amp;nbsp;&lt;STRONG&gt;Browse for file&lt;/STRONG&gt;, Runtime version&amp;nbsp;&lt;STRONG&gt;7.2 (recommended)&lt;/STRONG&gt;&amp;nbsp;and click on the folder icon next to&amp;nbsp;&lt;STRONG&gt;PowerShell module file&lt;/STRONG&gt; and select the zipped up PnP.PowerShell.zip file generated in the previous step.&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-60px lia-clear-both"&gt;6. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Click on&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Import &lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;to start the download and importing process. It could take up to 10 minutes for the import to complete. You can check the import status by changing the&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Module type &lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;filter to&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Custom&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;7. Once it's done, it will show the status&amp;nbsp;&lt;STRONG&gt;Available&lt;/STRONG&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-60px lia-clear-both"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H4 class="lia-clear-both"&gt;&lt;STRONG&gt;3. Using Managed Identity for authentication&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P class=""&gt;The recommended approach is to use a managed identity in Azure to allow your Automation runbook to connect to &lt;STRONG&gt;Microsoft Graph&lt;/STRONG&gt; and &lt;STRONG&gt;SharePoint Online&lt;/STRONG&gt; via PnP PowerShell. This method lets you grant permissions directly to the runbook’s identity, eliminating the need for client secrets or certificates that could otherwise be exposed or misused.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;a. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Enabling managed identity for an Azure Automation Runbook&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;OL&gt;
&lt;LI style="list-style-type: none;"&gt;
&lt;OL&gt;
&lt;LI&gt;In your Azure Automation account, in the left menu, go to &lt;STRONG&gt;Identity &lt;/STRONG&gt;under Account Settings&lt;/LI&gt;
&lt;LI&gt;Ensure you are on the &lt;STRONG&gt;System assigned&lt;/STRONG&gt; tab and flip the switch for Status to &lt;STRONG&gt;On&lt;/STRONG&gt;, if not already done&lt;/LI&gt;
&lt;LI&gt;Click the &lt;STRONG&gt;Save &lt;/STRONG&gt;button and confirm your action in the dialog box that will be shown&lt;/LI&gt;
&lt;/OL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;A new entry will now automatically be created in&amp;nbsp;&lt;STRONG&gt;Entra ID&amp;nbsp;&lt;/STRONG&gt;for this app having the same name as your Automation account. This can be verified by going into Entra ID -&amp;gt; Enterprise Applications (under Manage). You may have to remove the default filters for your app to show.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;b. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Assigning permissions to the managed identity&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Next, we shall use Graph PowerShell to assign permissions to the managed identity associated with the Automation account.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;1. Using a CLI of your choice, run the following command. This will connect your PowerShell session to&amp;nbsp;&lt;STRONG&gt;Microsoft Graph&lt;/STRONG&gt; with &lt;EM&gt;AppRoleAssignment.ReadWrite.All&lt;/EM&gt; permissions to &lt;STRONG&gt;read and modify app role assignments&lt;/STRONG&gt; across your tenant.&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;Connect-MgGraph -Scopes "AppRoleAssignment.ReadWrite.All"&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;2. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Run the following commands to grant &lt;EM&gt;Sites.FullControl&lt;/EM&gt; to the Graph API&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;$GraphApp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0000-c000-000000000000'"
$TargetResoruce = Get-MgServicePrincipal -filter "displayname eq 'pnppowershelldocumentationsample'"
$Role = $GraphApp.AppRoles | Where-Object {$_.Value -eq "Sites.FullControl.All"}
$AppRoleAssignment = @{}
$AppRoleAssignment.Add("PrincipalId",$TargetResoruce.Id)
$AppRoleAssignment.Add("ResourceId",$GraphApp.Id)
$AppRoleAssignment.Add("AppRoleId",$Role.Id)
$RoleAssignment = New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $TargetResoruce.Id -BodyParameter $AppRoleAssignment
&lt;/LI-CODE&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt; AppId &lt;EM&gt;00000003-0000-0000-c000-000000000000&lt;/EM&gt; is the standard identifier for the &lt;STRONG&gt;Graph API&lt;/STRONG&gt; in Azure&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;3. Run the following commands to grant &lt;EM&gt;Sites.FullControl&lt;/EM&gt; to the &lt;STRONG&gt;SharePoint Online API&lt;/STRONG&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;$SpApp = Get-MgServicePrincipal -Filter "AppId eq '00000003-0000-0ff1-ce00-000000000000'"
$TargetResoruce = Get-MgServicePrincipal -filter "displayname eq 'pnppowershelldocumentationsample'"
$Role = $SpApp.AppRoles | Where-Object Value -eq "Sites.FullControl.All"
$AppRoleAssignment = @{}
$AppRoleAssignment.Add("PrincipalId",$TargetResoruce.Id)
$AppRoleAssignment.Add("ResourceId",$SpApp.Id)
$AppRoleAssignment.Add("AppRoleId",$Role.Id)
$RoleAssignment = New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $TargetResoruce.Id -BodyParameter $AppRoleAssignment
&lt;/LI-CODE&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;STRONG&gt;Note:&lt;/STRONG&gt;&amp;nbsp;AppId &lt;EM&gt;00000003-0000-0ff1-ce00-000000000000&lt;/EM&gt; is the standard identifier for the &lt;STRONG&gt;SharePoint Online API&lt;/STRONG&gt; in Azure&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;4. Once permissions are granted, verify them in &lt;STRONG&gt;Entra ID&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;(&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Entra ID -&amp;gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Enterprise Applications (under Manage&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;) &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;-&amp;gt; Look up the app associated with your automation account (you may need to remove filters) -&amp;gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Permissions (under Security)&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt; &lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;-&amp;gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Verify permissions exist (as shown below)&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;SPAN class="lia-text-color-13"&gt;&lt;STRONG&gt;IMPORTANT&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;API permission updates may take &lt;STRONG&gt;10 minutes&lt;/STRONG&gt; or more to propagate across Microsoft 365. During this time, scripts executed immediately against SharePoint can fail. If that happens, allow additional time for propagation and then retry the operation.&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;H4&gt;&lt;STRONG&gt;4. Create a Runbook&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;We're now ready to create a Runbook in which your PnP PowerShell script will run.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;a. In the Azure Portal, in the left menu, click on&amp;nbsp;&lt;STRONG&gt;Runbooks&lt;/STRONG&gt;&amp;nbsp;under&amp;nbsp;&lt;STRONG&gt;Process Automation&lt;/STRONG&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;b. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Click on&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG style="color: rgb(30, 30, 30);"&gt;Create a runbook&lt;/STRONG&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt; at the top of the screen&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;c. Give the Runbook a name, select the Runbook type&amp;nbsp;&lt;STRONG&gt;PowerShell&lt;/STRONG&gt;&amp;nbsp;and for the Runtime version choose&amp;nbsp;&lt;STRONG&gt;7.2 (recommended)&lt;/STRONG&gt;&amp;nbsp;and click on&amp;nbsp;&lt;STRONG&gt;Create&lt;/STRONG&gt; at the bottom left.&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;d. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;On the Edit PowerShell Runbook page, enter your PnP PowerShell code in the large white area, i.e.&lt;/SPAN&gt;&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;5.	Connect-PnPOnline 'https://tenant.sharepoint.com' -ManagedIdentity
7.	Get-PnPWeb
&lt;/LI-CODE&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;Once done, click on&amp;nbsp;&lt;STRONG&gt;Save&lt;/STRONG&gt;&amp;nbsp;at the top of the screen and then on&amp;nbsp;&lt;STRONG&gt;Test pane&lt;/STRONG&gt; to test your Runbook.&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-indent-padding-left-30px lia-clear-both"&gt;e. Click on&amp;nbsp;&lt;STRONG&gt;Start&lt;/STRONG&gt; to start testing the Runbook. It might take a few minutes for the Runbook to start. Once it's done, you will see the output of your PnP PowerShell script in the large black output section.&lt;/P&gt;
&lt;img /&gt;
&lt;H4 data-start="0" data-end="50"&gt;&amp;nbsp;&lt;/H4&gt;
&lt;H4 data-start="0" data-end="50"&gt;&lt;STRONG data-start="0" data-end="50" data-is-last-node="" data-is-only-node=""&gt;5. Generate a Tenant-Wide SharePoint Sites Report&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Next, we will execute a script to collect information for each SharePoint site in your tenant. The data will be exported to a CSV file and then uploaded to a designated folder within a SharePoint document library. This script uses the &lt;STRONG&gt;Get-PnPTenantSite &lt;/STRONG&gt;cmdlet to gather the data.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;a. Open up the Runbook you had created and bring up the edit PowerShell page.&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;&amp;nbsp; &amp;nbsp; Enter the following PnP PowerShell code in the large white area. You will need to update the values specific to your tenant.&lt;/P&gt;
&lt;LI-CODE lang="powershell"&gt;# Site info
$adminUrl = "https://tenant-admin.sharepoint.com"
$targetSiteUrl = "https://tenant.sharepoint.com/sites/M365Migration"
$LibraryName = "Shared Documents"
$TargetFolder = "Exports"

# Timestamped file
$TimeStamp = Get-Date -Format "yyyyMMdd_HHmm"
$FileName = "ActiveSites_$TimeStamp.csv"

# Create a safe temp folder in the runbook
$TempFolder = $env:TEMP
$TempPath = Join-Path -Path $TempFolder -ChildPath $FileName

# Make sure the folder exists
if (-not (Test-Path $TempFolder)) {
    New-Item -Path $TempFolder -ItemType Directory | Out-Null
}

# Connect to SharePoint
Connect-PnPOnline $adminUrl -ManagedIdentity
Write-Output "Connected to PnP"

$sites = Get-PnPTenantSite -Detailed
$sites |
    Select-Object `
        Title,
        Url,
        Template,
        StorageUsageCurrent,
        StorageQuota,
        Owner,
        LockState,
        SharingCapability,
        TimeCreated,
        LastContentModifiedDate |
    Export-Csv -Path $TempPath -NoTypeInformation -Encoding UTF8
Write-Output "CSV created at $TempPath"

Connect-PnPOnline $targetSiteUrl -ManagedIdentity

# Upload the csv file
Add-PnPFile -Path $TempPath -Folder "$LibraryName\$TargetFolder"
Write-Output "File uploaded successfully to $LibraryName\$TargetFolder"

# Close out
Disconnect-PnPOnline
Remove-Item $TempPath -Force
&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;b. Click on &lt;STRONG&gt;Save&lt;/STRONG&gt;&amp;nbsp;at the top of the screen and then on&amp;nbsp;&lt;STRONG&gt;Test pane&lt;/STRONG&gt; to test your Runbook&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;c. Click on&amp;nbsp;&lt;STRONG&gt;Start&lt;/STRONG&gt; to start testing the Runbook&lt;/P&gt;
&lt;P class="lia-indent-padding-left-30px"&gt;d. After the run completes, check the specified document library for the CSV export and verify that a new report has been created successfully&lt;/P&gt;
&lt;img /&gt;
&lt;P class="lia-clear-both lia-indent-padding-left-30px"&gt;e. Close the code pane and click on&amp;nbsp;&lt;STRONG&gt;Publish&amp;nbsp;&lt;/STRONG&gt;to publish this version of your runbook&lt;/P&gt;
&lt;H4 class="lia-clear-both"&gt;&lt;STRONG&gt;6. Automate task to run on weekly schedule&lt;/STRONG&gt;&lt;/H4&gt;
&lt;P&gt;Next, we will explore how to automate this process to run weekly without requiring any user interaction.&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;a. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Create a schedule&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;1. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;In the Azure Portal, navigate to the Azure Automation account&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;2. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Click on &lt;STRONG&gt;Schedules &lt;/STRONG&gt;under &lt;STRONG&gt;Shared Resources&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;3. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Click on &lt;STRONG&gt;Add a schedule&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;4. Enter name, description and start date. Select recurring to specify a schedule for job to run&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;5. Select week under recurrence and specify day of the week. Set an expiration date. Finally, click on &lt;STRONG&gt;Create&lt;/STRONG&gt;.&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;H5 class="lia-indent-padding-left-30px"&gt;&lt;STRONG&gt;b. &lt;SPAN style="color: rgb(30, 30, 30);"&gt;Link runbook to schedule&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/H5&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;1. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Open the runbook that you set up previously for your PnP PowerShell script&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;2. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Click on &lt;STRONG&gt;Link to schedule&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;3. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Select the schedule, parameters and run settings, and then click on OK&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class="lia-indent-padding-left-60px"&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;4. &lt;/SPAN&gt;&lt;SPAN style="color: rgb(30, 30, 30);"&gt;Verify schedule in the Runbook &lt;STRONG&gt;schedules &lt;/STRONG&gt;page&lt;/SPAN&gt;&lt;/P&gt;
&lt;img /&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;SPAN class="lia-text-color-21"&gt;COMPLETE&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class="lia-text-color-21"&gt;The script will now run automatically each week according to the defined schedule. At the specified date and time, a new report will be generated and uploaded to the document library without any manual steps. This means the process of collecting SharePoint site data across your tenant is now fully automated and requires no user interaction.&lt;/SPAN&gt;&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;</description>
      <pubDate>Mon, 16 Feb 2026 15:48:34 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/sharepoint-reporting-using-pnp-powershell-through-azure/m-p/4495124#M17</guid>
      <dc:creator>Seyed_Mowlana</dc:creator>
      <dc:date>2026-02-16T15:48:34Z</dc:date>
    </item>
    <item>
      <title>Migrate my Office 365 accounts</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/migrate-my-office-365-accounts/m-p/4488622#M13</link>
      <description>&lt;P&gt;How can I migrate my Office 365 accounts from GoDaddy to Microsoft?&lt;/P&gt;</description>
      <pubDate>Thu, 22 Jan 2026 22:53:58 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/migrate-my-office-365-accounts/m-p/4488622#M13</guid>
      <dc:creator>scannerfgb</dc:creator>
      <dc:date>2026-01-22T22:53:58Z</dc:date>
    </item>
    <item>
      <title>Migrating from Outlook.com to Microsoft 365 Business Basic</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/migrating-from-outlook-com-to-microsoft-365-business-basic/m-p/4464194#M9</link>
      <description>&lt;P&gt;I am currently testing Microsoft 365 Business Basic.&lt;BR /&gt;My users mail boxes are all on Outlook.com. I need those mailboxes migrated to Microsoft 365 Business Basic.&lt;BR /&gt;This seems impossible as PST files are not supported by that subscription and IMAP is not supportes either.&lt;/P&gt;&lt;P&gt;What are the right way to migrate users mail boxes from Outlook.com to Microsoft 365 Business Basic?&lt;/P&gt;</description>
      <pubDate>Sat, 25 Oct 2025 13:19:29 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/migrating-from-outlook-com-to-microsoft-365-business-basic/m-p/4464194#M9</guid>
      <dc:creator>Flemming_Christensen</dc:creator>
      <dc:date>2025-10-25T13:19:29Z</dc:date>
    </item>
    <item>
      <title>Seamless Microsoft 365 Migration with Apps4Rent</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/seamless-microsoft-365-migration-with-apps4rent/m-p/4461660#M6</link>
      <description>&lt;P&gt;Migrating to Microsoft 365 can be challenging without proper planning. From mailbox mapping to DNS updates, every step needs precision to avoid data loss or downtime. Partnering with experts like Apps4Rent can make the transition smooth and secure. Their specialists handle email, contacts, and calendar migrations with minimal disruption while ensuring compliance and data integrity. Whether moving from on-premises Exchange, Google Workspace, or another provider, Apps4Rent offers end-to-end migration support, and proven experience as a Microsoft Cloud Solution Provider. Businesses of all sizes can benefit from their structured approach, faster cutovers, and post-migration support. For anyone planning a shift to Microsoft 365, Apps4Rent is a trusted partner worth considering.&lt;/P&gt;</description>
      <pubDate>Wed, 15 Oct 2025 08:31:36 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/seamless-microsoft-365-migration-with-apps4rent/m-p/4461660#M6</guid>
      <dc:creator>DavisMiller29</dc:creator>
      <dc:date>2025-10-15T08:31:36Z</dc:date>
    </item>
    <item>
      <title>Help with Vlookup</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/help-with-vlookup/m-p/4430547#M3</link>
      <description>&lt;P&gt;I have created a table with food items in a drop down list and I want to be able to select something from the list so that when entered it also puts in the calorie count of that item in an adjacent cell.&amp;nbsp; I have one table with columns Breakfast, Lunch and Dinner all have dropdowns with the&amp;nbsp; list of foods&amp;nbsp; The adjacent column is for the calories.&amp;nbsp; I have another sheet which holds the list of foods with the calorie count in the adjacent cell.&amp;nbsp; Any ideas - please bear in mind I am very green with excel&lt;/P&gt;</description>
      <pubDate>Sun, 06 Jul 2025 13:27:59 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/help-with-vlookup/m-p/4430547#M3</guid>
      <dc:creator>Kevillie</dc:creator>
      <dc:date>2025-07-06T13:27:59Z</dc:date>
    </item>
    <item>
      <title>Urgent help needed- An issue with online EXCEL 365 sheets</title>
      <link>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/urgent-help-needed-an-issue-with-online-excel-365-sheets/m-p/4410404#M1</link>
      <description>&lt;P&gt;I used to work with my team via 365 excel sheets online. We used to work as 3 or 4 at the same time to enter data and so on.&amp;nbsp;&lt;/P&gt;&lt;P&gt;With every start of opening the sheet, it used to give a small pop up box says (only me&amp;nbsp; OR everyone) and by choosing only me, it totally makes you have a separate screen especially when you filter something without affecting the other team members work.. during the last 2 days, it stopped to gives this small pop up box says (only me&amp;nbsp; OR everyone) and with every-time someone filter something, it just be obligated to all screens.. For example if I am working on something on the 2nd of may and someone came to filter the sate choosing 3rd of may, My screen totally turns to the 3rd of May. so, I can't work separately.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My question is how to get that fixed again as before or how to get this pop up box says (only me&amp;nbsp; OR everyone) again.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am working on online file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you for your time and help in advance&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 02 May 2025 16:42:02 GMT</pubDate>
      <guid>https://techcommunity.microsoft.com/t5/microsoft-365-migrations/urgent-help-needed-an-issue-with-online-excel-365-sheets/m-p/4410404#M1</guid>
      <dc:creator>Sasa2020</dc:creator>
      <dc:date>2025-05-02T16:42:02Z</dc:date>
    </item>
  </channel>
</rss>

