<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Dominique VIVES</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/dominiquevives/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/dominiquevives/feed.xml</link>
    <description>O365 &amp;amp; Azure world</description>
    <lastBuildDate>Wed, 17 Apr 2019 04:07:01 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Host and run your PowerShell scripts in Azure</title>
      <link>https://docs.microsoft.com/archive/blogs/dominiquevives/host-and-run-your-powershell-scripts-in-azure</link>
      <pubDate>Mon, 02 Jul 2018 23:15:28 GMT</pubDate>
      <dc:creator><![CDATA[Dominique Vives [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominiquevives/?p=435</guid>
      <description><![CDATA[Few days ago, I was working with one of my customer. I advised him to host his O365 scripts in Azure...]]></description>
      <content:encoded><![CDATA[Few days ago, I was working with one of my customer. I advised him to host his O365 scripts in Azure instead using a local server. In this post, I would like to share why I recommended this to my customer and what solutions we've identified for hosting PowerShell script in Azure.
<h4>Why in my opinion, Azure is the best companion for executing O365 PowerShell scripts (or code)?</h4>
First, Azure services SLAs guarantee that your script will run 99.9xxx% of times. Usually, it's hard to provide such level of services on a local server. It may require a big investment for few scripts execution time mostly without any SLA and without service guarantee. You may also need,  to open some ports, to configure a proxy, to harden your server security, to configure some antivirus, and to maintain your local server. In Azure, most services allow you to only focus on your PowerShell script because all the infrastructure, the SLAs and security is taken care by Microsoft. You only pay for what you consume in Azure. Some services presented below might be less expensive than running a local server which is consuming power supply all day long. To finish, when hosting your scripts in Azure may rely on all other Azure services (SQL, Big Data, Data Factory etc) and get some flexibility for any scripts improvements or complexity.
<h4>Services in Azure for hosting and executing PowerShell</h4>
<ul>
 	<li>Via a <strong>Azure VM :</strong>
<ul>
 	<li>Overview: <a href="https://azure.microsoft.com/en-us/services/virtual-machines/">https://azure.microsoft.com/en-us/services/virtual-machines/</a></li>
 	<li>Pricing: <a href="https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/">https://azure.microsoft.com/en-us/pricing/details/virtual-machines/windows/</a></li>
 	<li>Usage : I recommend to only use this solution for migration project or script development.</li>
</ul>
</li>
</ul>
<ul>
 	<li>Via <strong>Azure Function App</strong> :
<ul>
 	<li>Overview: <a href="https://azure.microsoft.com/en-us/services/functions/">https://azure.microsoft.com/en-us/services/functions/</a></li>
 	<li>Pricing: <a href="https://azure.microsoft.com/en-us/pricing/details/functions/">https://azure.microsoft.com/en-us/pricing/details/functions/</a></li>
 	<li>You may rely on the below procedure to create une Azure Function running PowerShell :
<ul>
 	<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-design-pnp-provisioning#create-the-azure-function">https://docs.microsoft.com/en-us/sharepoint/dev/declarative-customization/site-design-pnp-provisioning#create-the-azure-function</a></li>
</ul>
</li>
 	<li>Note: PowerShell language is experimental in Azure Function. That's why I do not recommend this services for production use yet.</li>
</ul>
</li>
</ul>
<ul>
 	<li>Via <strong>Azure Automation</strong> account (<u>recommended solution</u>):
<ul>
 	<li>Overview: <a href="https://docs.microsoft.com/en-us/azure/automation/automation-intro">https://docs.microsoft.com/en-us/azure/automation/automation-intro</a></li>
 	<li>Tarification : <a href="https://azure.microsoft.com/en-us/pricing/details/automation/">https://azure.microsoft.com/en-us/pricing/details/automation/</a></li>
 	<li>Blog : <a href="https://blogs.technet.microsoft.com/dominiquevives/2018/05/11/azure-automation-for-spo-tasks/">https://blogs.technet.microsoft.com/dominiquevives/2018/05/11/azure-automation-for-spo-tasks/</a></li>
 	<li>Note: This so</li>
</ul>
</li>
</ul>
<ul>
 	<li>Via <strong>Azure Web Jobs</strong> (in Azure App Services) :
<ul>
 	<li>Overview: <a href="https://azure.microsoft.com/en-us/pricing/details/app-service/windows/">https://azure.microsoft.com/en-us/pricing/details/app-service/windows/</a></li>
 	<li>Pricing: <a href="https://azure.microsoft.com/en-us/pricing/details/app-service/windows/">https://azure.microsoft.com/en-us/pricing/details/app-service/windows/</a></li>
 	<li>Procedure : Exécuter des tâches en arrière-plan avec WebJobs dans Azure App Service - <a href="https://docs.microsoft.com/en-us/azure/app-service/web-sites-create-web-jobs">en-ushttps://docs.microsoft.com/fr-fr/azure/app-service/web-sites-create-web-jobs</a></li>
</ul>
</li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Consume SPO REST API in PowerShell with ACS App Only Credentials</title>
      <link>https://docs.microsoft.com/archive/blogs/dominiquevives/consume-spo-rest-api-in-powershell-with-app-only-credentials</link>
      <pubDate>Thu, 21 Jun 2018 23:00:34 GMT</pubDate>
      <dc:creator><![CDATA[Dominique Vives [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominiquevives/?p=315</guid>
      <description><![CDATA[I was working with customer who wanted to quickly test his App permissions. He first created the App...]]></description>
      <content:encoded><![CDATA[I was working with customer who wanted to quickly test his App permissions. He first created the App Credentials (Client ID &amp; Client Secret) via https://tenant.sharepoint.com/sites/yoursite/_layouts/15/appregnew.aspx page.
<p style="padding-left: 60px"><img src="https://msdnshared.blob.core.windows.net/media/2018/06/AppRegNew-300x284.png" alt="" width="351" height="332" class="alignnone wp-image-335" /></p>
Then it gave it some permissions via the https://tenant.sharepoint.com/sites/yoursite/_layouts/15/appinv.aspx page.
<p style="padding-left: 60px"><img src="https://msdnshared.blob.core.windows.net/media/2018/06/AppInv-300x284.png" alt="" width="300" height="284" class="alignnone size-medium wp-image-375" /></p>
After having created his App, my customer did save its client ID and client secret but didn't save its permissions . He wanted a simple way to check the App permissions and scope : "Scope="https://sharepoint/content/sitecollection" Right="Read".

I proposed him to use the following PowerShell script, which consume SPO REST API via the App credentials :
<table class="highlight tab-size js-file-line-container">
<tbody>
<tr>
<td id="LC13" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L14" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC14" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-c">####################################################################################</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L15" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC15" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">#This script is provided as an example. It must not be used in Production environment.</td>
</tr>
<tr style="padding-left: 60px">
<td id="L16" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC16" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">#It shows how to obtain a Token to log into the Graph API. The token must be acquired once</td>
</tr>
<tr style="padding-left: 60px">
<td id="L17" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC17" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">#and then stored on the server. Everytime the Graph API is used, it is refreshed before</td>
</tr>
<tr style="padding-left: 60px">
<td id="L18" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC18" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">#being used.</td>
</tr>
<tr style="padding-left: 60px">
<td id="L19" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC19" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-c">####################################################################################</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L20" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC20" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L21" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC21" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">Import-Module SharePointPnPPowerShellOnline</td>
</tr>
<tr style="padding-left: 60px">
<td id="L22" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC22" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L23" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC23" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">Connect-PnPOnline https:<span class="pl-k">//</span><span class="pl-k">&lt;</span>your<span class="pl-k">-</span>tenant<span class="pl-k">&gt;</span>.<span class="pl-c1">sharepoint.com</span><span class="pl-k">/</span>sites<span class="pl-k">/</span><span class="pl-k">&lt;</span>your<span class="pl-k">-</span>site<span class="pl-k">&gt;</span> <span class="pl-k">-</span>AppId <span class="pl-k">&lt;</span>your_client_id<span class="pl-k">&gt;</span> <span class="pl-k">-</span>AppSecret <span class="pl-k">&lt;</span>your_client_secret<span class="pl-k">&gt;</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L24" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC24" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">$<span class="pl-smi">PnPAccessToken</span> <span class="pl-k">=</span> <span class="pl-c1">Get-PnPAppAuthAccessToken</span> <span class="pl-k">|</span> Clip</td>
</tr>
<tr style="padding-left: 60px">
<td id="L25" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC25" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L26" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC26" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">$<span class="pl-smi">uri</span> <span class="pl-k">=</span> <span class="pl-s">"https://&lt;your-tenant&gt;.sharepoint.com/sites/&lt;your-site&gt;/_api/web/lists/getbytitle('Documents')"</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L27" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC27" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L28" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC28" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-k">$</span><span class="pl-smi">contentType</span> <span class="pl-k">=</span> <span class="pl-s">'application/json;odata=verbose'</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L29" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC29" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-k">$</span><span class="pl-smi">Headers</span> <span class="pl-k">=</span> <span class="pl-k">@</span>{}</td>
</tr>
<tr style="padding-left: 60px">
<td id="L30" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC30" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px">[<span class="pl-k">Microsoft.PowerShell.Commands.WebRequestMethod</span>]<span class="pl-k">$</span><span class="pl-smi">Method</span> <span class="pl-k">=</span> [<span class="pl-k">Microsoft.PowerShell.Commands.WebRequestMethod</span>]::Get</td>
</tr>
<tr style="padding-left: 60px">
<td id="L31" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC31" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-k">$</span><span class="pl-smi">Headers</span>[<span class="pl-s">"Accept"</span>] <span class="pl-k">=</span> <span class="pl-s">"application/json;odata=verbose"</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L32" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC32" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-k">$</span><span class="pl-smi">Headers</span><span class="pl-en">.Add</span>(<span class="pl-s">'Authorization'</span><span class="pl-k">,</span><span class="pl-s">'Bearer '</span> <span class="pl-k">+</span> <span class="pl-k">$</span><span class="pl-smi">PnPAccessToken</span>)</td>
</tr>
<tr style="padding-left: 60px">
<td id="L33" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC33" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-k">$</span><span class="pl-smi">Body</span> <span class="pl-k">=</span> <span class="pl-k">$</span><span class="pl-c1">null</span></td>
</tr>
<tr style="padding-left: 60px">
<td id="L34" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC34" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L35" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC35" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"></td>
</tr>
<tr style="padding-left: 60px">
<td id="L36" class="blob-num js-line-number" style="padding-left: 60px"></td>
<td id="LC36" class="blob-code blob-code-inner js-file-line" style="padding-left: 60px"><span class="pl-c1">Invoke-RestMethod</span> <span class="pl-k">-</span>Method <span class="pl-k">$</span><span class="pl-smi">Method</span> <span class="pl-k">-</span>Uri <span class="pl-k">$</span><span class="pl-smi">Uri</span> <span class="pl-k">-</span>ContentType <span class="pl-k">$</span><span class="pl-smi">contentType</span> <span class="pl-k">-</span>Headers <span class="pl-k">$</span><span class="pl-smi">Headers</span> <span class="pl-k">-</span>Body <span class="pl-k">$</span><span class="pl-smi">Body</span></td>
</tr>
</tbody>
</table>
&nbsp;

&nbsp;

Indeed, you can modify the REST API : ex: "<span class="pl-s">_api/web</span><span>/title" to get the title of the spweb and only check the permissions at the Web level.  </span>

As you can see this script rely on PnP PowerShell module.
<ul>
 	<li>install it directly in PowerShell :</li>
</ul>
<p style="padding-left: 60px"><span>Install-Module SharePointPnPPowerShellOnline -SkipPublisherCheck -AllowClobber</span></p>

<ul>
 	<li>install it via an executable file :</li>
</ul>
<p style="padding-left: 60px">https://github.com/SharePoint/PnP-PowerShell/releases</p>
&nbsp;

Note: The above script won't work with AAD App Only credentials. You may use the following script for App declared in AAD (and not in ACS).

&nbsp;
<p style="padding-left: 120px"><span class="pl-c">####################################################################################</span>#This script is provided as an example. It must not be used in Production environment.#It shows how to obtain a Token to log into the Graph API. The token must be acquired once#and then stored on the server. Everytime the Graph API is used, it is refreshed before#being used.<span class="pl-c">####################################################################################</span></p>

<div style="padding-left: 60px">
<div style="padding-left: 60px"><span>Import-Module</span><span> SharePointPnPPowerShellOnline</span></div>
<div style="padding-left: 60px"><span>#Connect-PnPOnline </span></div>
<div style="padding-left: 60px"><span>$</span><span>arrayOfScopes</span><span> </span><span>=</span><span> </span><span>@</span><span>(</span><span>"Reports.Read.All"</span><span>)</span></div>
<div style="padding-left: 60px"><span>$</span><span>ConnectPnPGraph</span><span> </span><span>=</span><span> </span><span>Connect-PnPMicrosoftGraph</span><span> </span><span>-</span><span>Scopes </span><span>$</span><span>arrayOfScopes</span><span> </span></div>
<div style="padding-left: 60px"><span>$</span><span>PnPAccessToken</span><span> </span><span>=</span><span> </span><span>Get-PnPAccessToken</span></div>
<div style="padding-left: 60px"><span>$</span><span>uri</span><span> </span><span>=</span><span> </span><span>"https://graph.microsoft.com/beta/"</span><span> </span><span>+</span><span> </span><span>"/reports/SharePointActivity(view='Detail',period='D7')/content"</span></div>
<div style="padding-left: 60px"><span># $authHeader = @{</span></div>
<div style="padding-left: 60px"><span># 'Content-Type'='application\json'</span></div>
<div style="padding-left: 60px"><span># 'Authorization'= $PnPAccessToken</span></div>
<div style="padding-left: 60px"><span># }</span></div>
<div style="padding-left: 60px"><span>Invoke-RestMethod</span><span> </span><span>-</span><span>Uri </span><span>$</span><span>uri</span><span> </span><span>-</span><span>Headers </span><span>@</span><span>{</span><span>Authorization</span><span> </span><span>=</span><span> </span><span>"Bearer </span><span>$</span><span>PnPAccessToken</span><span>"</span><span>}</span></div>
</div>
<p style="padding-left: 60px"></p>]]></content:encoded>
    </item>
    <item>
      <title>Leverage Azure Automation for SPO Administration Tasks - Part 1</title>
      <link>https://docs.microsoft.com/archive/blogs/dominiquevives/azure-automation-for-spo-tasks</link>
      <pubDate>Fri, 11 May 2018 07:58:33 GMT</pubDate>
      <dc:creator><![CDATA[Dominique Vives [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominiquevives/?p=95</guid>
      <description><![CDATA[Today, I worked on a quick demo for one of my customer on how to use Azure Automation for SharePoint...]]></description>
      <content:encoded><![CDATA[Today, I worked on a quick demo for one of my customer on how to use Azure Automation for SharePoint Online administration tasks. In this demo,  I will run a sample PowerShell Script (available in the Gallery) to list all SPO sites that I will customize. I will also upload the SharePoint Online Module required to execute the PowerShell script in Azure Automation.

In the "Part 2" of the script, I will use PnP Module to go further in task.

First create a Azure Automation account :

[caption id="attachment_105" align="aligncenter" width="451"]<img src="https://msdnshared.blob.core.windows.net/media/2018/05/CreateAzureAutomation-300x168.png" alt="Create Azure Automation Account" width="451" height="253" class=" wp-image-105" /> Create Azure Automation Account[/caption]

Then browse the gallery to find an existing scripts:

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/BrowseGalleryForExistingScripts-300x68.png" alt="" width="441" height="100" class="wp-image-125 aligncenter" />

&nbsp;

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/DisplayAllSPOSitesScript-300x59.png" alt="" width="461" height="91" class=" wp-image-135 aligncenter" />

&nbsp;

Once the sample script is imported, Edit &amp; Publish it:

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/EditScript-300x64.png" alt="" width="609" height="130" class="wp-image-155 aligncenter" />

&nbsp;

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/PublishScript-300x168.png" alt="" width="300" height="168" class="size-medium wp-image-145 aligncenter" />

As you may have noticed, this script required some parameters but also used SPO cmdlets available in the SPO official PowerShell module. So we will upload the required module and create a the credential variable for the script execution in the next steps.

First zip your SharePoint PowerShell Module on your local machine. To identify your SPO module location, use the following command :
<p style="padding-left: 90px"><em>Get-Module -ListAvailable</em></p>
 Then zip your module folder :
<p style="padding-left: 30px"><img src="https://msdnshared.blob.core.windows.net/media/2018/05/SPOPowerShellModule1-300x39.png" alt="" width="431" height="56" class="wp-image-185 aligncenter" /></p>
<p style="padding-left: 30px"><img src="https://msdnshared.blob.core.windows.net/media/2018/05/SPOPowerShellModule2-300x232.png" alt="" width="553" height="428" class="wp-image-195 aligncenter" /></p>
Go to your Azure Automation Account, then go into the module menu:

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/ImportModule1-300x142.png" alt="" width="585" height="277" class="wp-image-215 aligncenter" />

Add the Zip Module.

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/ImportModule2-300x251.png" alt="" width="300" height="251" class="size-medium wp-image-205 aligncenter" />

&nbsp;

Click Ok twice. You should see your module imported after <span style="text-decoration: underline">few minutes</span>.

Now the SPO Module is imported and available, let's focus on the <em>PSCredName s</em>cript parameter. This parameter actually refer the a PSCredential object stored in the specific menu of the Azure Automation.

To define this parameter, go into the "<strong>Credentials</strong>" Menu of your Automation account and click on "<strong>Add Credential</strong>".

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/AddCredential2-223x300.png" alt="" width="223" height="300" class="size-medium wp-image-265 aligncenter" />

&nbsp;

Note the Credential Name "SPOAdmin" as it will be required in the next steps.

It's time to play with our sample script. In the "Run Book" menu, click on your "Display-AllSites", then select "Edit" and click on  "Test Pane" in the horizontal menu.  You should land on the following screen :

&nbsp;

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/Test-Pane-300x192.png" alt="" width="469" height="300" class="wp-image-245 aligncenter" />

&nbsp;

Now, specify your SPO Admin <strong>URL</strong> (https://<strong>yourtenant</strong>-admin.sharepoint.com) and specify the credential name created above ("SPOAdmin") in the "PSCredName" parameter. You should see as above, all your existing sites.

Now that the script run correctly, you may schedule this script to run on a regular basis. To do so, just go into your Run Book "Display-AllSites" and select "Schedules" to define a new schedule with the parameter above.

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/Schedule1-300x80.png" alt="" width="634" height="169" class=" wp-image-295 aligncenter" />

&nbsp;

Define your frequency :

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/Schedule2-300x286.png" alt="" width="398" height="379" class=" wp-image-275 aligncenter" />

Specify the parameter as tested above :

<img src="https://msdnshared.blob.core.windows.net/media/2018/05/Schedule3-209x300.png" alt="" width="321" height="461" class=" wp-image-285 aligncenter" />

Then click OK.

&nbsp;

Now your SPO PowerShell script should run automatically on your scheduled frequency thanks to Azure Automation.

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Quick introduction of myself</title>
      <link>https://docs.microsoft.com/archive/blogs/dominiquevives/resume</link>
      <pubDate>Wed, 18 Apr 2018 14:17:57 GMT</pubDate>
      <dc:creator><![CDATA[Dominique Vives [MSFT]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/dominiquevives/?p=1</guid>
      <description><![CDATA[Dominique VIVES, I'm 33 years old and I work at Microsoft for 7 years in Paris. Before joining MS, I...]]></description>
      <content:encoded><![CDATA[Dominique VIVES, I'm 33 years old and I work at Microsoft for 7 years in Paris. Before joining MS, I worked for Orange Business Services as SharePoint Architect for 4 years.

When I joined MS, I started at Customer Services Support as a "SharePoint Support Engineer" for 2 Years. Then I evolved to a "Support Escalation Engineer" role for 2 years where I was helping customers on-boarding on SharePoint Online, Yammer and OneDrive.

Since three years, I decided to meet our customers and move to a "Premier Field Engineer" role on O365. I mostly assist them on collaboration workloads (SPO, Teams, O365 Groups, Yammer &amp; OneDrive) by providing "Best Practices", delivering workshops or auditing/assessing customers services or helping on-boarding new O365 features. I'm also helping some of my customers on developments projects or POC (Client Side Web Parts, SharePoint Framework, Site provisioning solutions, Development Migration etc).

Because Azure is the best companion for O365, I also work on Azure on different topics (ARM templates, Azure Function, Azure Automation, Azure CDN).]]></content:encoded>
    </item>
  </channel>
</rss>