CLI for Microsoft 365 v3.6

Published Feb 27 2021 02:51 AM 4,435 Views
Microsoft

banner-cli-m365.png

 

We’ve just published a new version of the CLI for Microsoft 365 with new commands for working with and managing Microsoft 365 tenants and SharePoint Framework projects on any platform.

 

Manage Microsoft 365 and SharePoint Framework projects on any platform

CLI for Microsoft 365 is a cross-platform CLI that allows you to manage various configuration settings of Microsoft 365 and SharePoint Framework projects no matter which operating system or shell you use.

 

While building solutions for Microsoft 365 expands beyond the Windows operating system, managing many of the platform settings is possible only through PowerShell on Windows. As more and more users work on non-Windows machines, it’s inconvenient for them to have to use a Windows virtual machine to configure their tenants. With the CLI for Microsoft 365, you can configure your tenant no matter which operating system you use. Additionally, using CLI for Microsoft 365, you can manage your SharePoint Framework projects.

 

New version of CLI for Microsoft 365 – v3.6

Following our monthly release cadence, we released this new version of CLI for Microsoft 365 with some new commands and improvements. Here are some of the most noteworthy additions. For the full list of changes, see our release notes.

 

Ensure SharePoint site

When building provisioning scripts, you often need to check if a particular site already exists. If it doesn't, you need to create it. If it does, you need to check if it has the necessary settings. Depending what exactly you need to check, this logic can become pretty elaborate. If you need to create a couple of sites, you're quickly looking at lengthy scripts that you not only need to write but also maintain.

 

To help you easily ensure that sites with the right configuration exists, we introduce the spo site ensure command. Using this command, you can for example easily ensure that a site exists at the specified URL and create one if it doesn't:

m365 spo site ensure --url https://contoso.sharepoint.com/sites/team1 --alias team1 --title "Team 1"

 

Using the command you can also ensure that the site that exists has the right type and properties:

m365 spo site ensure --url https://contoso.sharepoint.com/sites/team1 --alias team1 --title "Team 1" --isPublic --shareByEmailEnabled

 

This is the first ensure command that we introduce in CLI for Microsoft 365. We'd love you to give it a try and tell us what you think. For more information about what's possible, see the command's documentation.

 

Configure SharePoint site chrome

Microsoft is continuously investing in modernizing SharePoint. With every update, we get more features to build rich portals in a robust and future-ready way. One of the recently introduced features is site chrome that allows you to control how the site's header and footer look like.

 

In this version of CLI for Microsoft 365, we introduce a command that allows you to control site's chrome.

To show site's header in compact mode, execute:

m365 spo site chrome set --url https://contoso.sharepoint.com/sites/project-x --headerLayout Compact

 

To show site's header in extended mode and align the logo to the right, execute:

m365 spo site chrome set --url https://contoso.sharepoint.com/sites/project-x  --headerLayout Extended --logoAlignment Right

 

To disable the footer, execute:

m365 spo site chrome set --url https://contoso.sharepoint.com/sites/project-x --disableFooter true

 

For the full list of supported settings, see the command's documentation.

 

Copy SharePoint pages and page templates

When working with pages and page templates, you might want to copy specific pages or page templates in bulk. The easiest way to automate it, is using CLI for Microsoft 365.

 

In this version we introduce a command that let's you copy the specified page or page template. To copy a page template, execute:

m365 spo page copy --webUrl https://contoso.sharepoint.com/sites/team-a --sourceName "templates/PageTemplate.aspx" --targetUrl "page.aspx"

 

To copy a page to another site, execute:

m365 spo page copy --webUrl https://contoso.sharepoint.com/sites/team-a --sourceName "templates/PageTemplate.aspx" --targetUrl "https://contoso.sharepoint.com/sites/team-b/sitepages/page.aspx"

 

For the full list of supported options, see the command's docs.

 

Manage Power Apps

More and more organizations use Power Apps to automate their work. With Power Apps, they can build applications for their business processes with little to no code.

 

To help organizations manage their Power Apps, we introduce in this version three new commands.

First, we let you get the list of your Power Apps environments, by executing:

m365 pa environment list

 

To get more information about a specific environment, execute:

m365 pa environment get --name Default-d87a7535-dd31-4437-bfe1-95340acd55c5

 

To get information about a specific app, execute:

m365 pa app get --name 3989cb59-ce1a-4a5c-bb78-257c5c39381d

 

These commands extend our set of Power Platform commands. For the list of all commands for Power Platform, see the documentation.

 

Changes

We’ve continued improving CLI, building upon the changes we’ve introduced in the previous version.

 

Browser-based login

Many organizations become more and more conscious about their security posture. As their awareness matures, they implement more measure to ensure that they can work securely. One of such measures is conditional access that allows organizations enforce specific checks on clients authenticating against their Microsoft 365 tenant.

 

To let organizations who enforce conditional policies use CLI for Microsoft 365, we introduced a browser-based way to login to Microsoft 365.

 

After executing: m365 login --authType browser, CLI for Microsoft 365 will launch a browser, let you sign in and obtain an access token on your behalf. If you have the browser with the right user profile active, the automatically opened login page will give you a smooth login experience without having to copy & paste device code.

 

From that point on, CLI for Microsoft 365 will work exactly the same way you're used to it, allowing you to run scripts and automate managing your tenant.

 

Improved managing SharePoint pages and sites

CLI for Microsoft 365 is a great tool for automating managing your Microsoft 365 tenant and SharePoint Framework projects. It's also great as an engine to build other tools on top!

 

Elio Struyf has build a static site generator for SharePoint named Doctor. If you want to author product documentation or a knowledgebase in Markdown but publish it to SharePoint, Doctor is the tool for the job! As Elio is extending Doctor with new capabilities, he's contributed a number of enhancements to managing pages and sites with CLI for Microsoft 365.

 

Improved creating Azure AD apps

Recently we've introduced an easy way to create Azure AD apps with CLI for Microsoft 365. With just one line of code, you can create an app registration full configured to support your scenario.

 

In this version of CLI for Microsoft 365, we extended the command so that it returns the ID of your Azure AD directory, which you need to include in your code when building single-tenant apps.

 

We've also improved the mechanism to lookup service principal in cases where their names end with a / (slash).

 

Simplified retrieving access token for SharePoint

When building apps for Microsoft 365, you often need an access token to quickly test your code. The easiest way to get it, is using CLI for Microsoft 365.

 

In this version, we made it even easier by introducing an alias for the resource. If you called SharePoint previously using CLI for Microsoft 365, you can quickly get an access token for SharePoint by executing:

m365 util accesstoken get --resource sharepoint

 

Rather than having to specify the full URL of your SharePoint tenant, you can use sharepoint instead. It's that easy! Are there any other aliases that we should add?

 

Sample scripts

CLI for Microsoft 365 is a great tool both for quick adjustments to the configuration of your Microsoft 365 tenant as well as automating more complex tasks. Because CLI for Microsoft 365 is cross-platform you can use it on any OS and in any shell. To help you get started using the CLI for Microsoft 365 for automation scenarios, we started gathering some sample scripts.

 

If you have any scripts that you use frequently, please share them with us so that we can learn more about the common automation scenarios.

 

Export conversations from Microsoft Teams Channels

We utilize Teams during incidents and create channels for each. We would like to be able to export conversation history.

 

To help you quickly export conversations from the teams your members of, Joseph Velliah contributed a sample script that iterates over your Teams and channels and exports conversations to a JSON file.

 

Contributors

This release wouldn't be possible without the help of (in alphabetical order) Hugo Bernier, Luise Freese, Patrick Lamber, Waldek Mastykarz, Nanddeep Nachan, Smita Nachan, John Rafael, Albert-Jan Schot, Elio Struyf, Fredrik Thorild, Garry Trinder, Joseph Velliah and Rabia Williams. Thank you all for the time you chose to spend on the CLI for Microsoft 365 and your help to advance it!

 

Work in progress

Here are some things that we’re currently working on.

 

More commands, what else

Microsoft 365 is evolving and new capabilities are being released every day. With CLI for Microsoft 365, we aim to help you manage your tenant on any platform in a consistent way, no matter which part of Microsoft 365 you interact with. While we keep adding new commands to CLI for Microsoft 365 each release, we still barely scratched the surface with what’s possible in Microsoft 365. In the upcoming versions of the CLI for Microsoft, you can expect us to add more commands across the different workloads in Microsoft 365.

 

Improved managing SharePoint pages

Microsoft keeps investing in modern SharePoint pages continuously introducing new capabilities to let us publish rich content. We're looking into extending our support for managing modern SharePoint pages to let you use them to their full potential.

 

Improved creating Azure AD apps

Recently, we've introduced a command to easily create Azure AD app registrations. Because they're backbone of every app you'd build on Microsoft 365, we think you should be able to create them as easily as possible. So with CLI for Microsoft 365, you can create a fully configured Azure AD app for the most common scenarios with just one line of code.

 

In the future versions of CLI for Microsoft 365 you can expect us extend the capabilities with additional scenarios and features supported by Azure AD.

 

Script examples

In every release of the CLI for Microsoft 365, we introduce new commands for managing Microsoft 365. With over 350 commands across the different Microsoft 365 services, the CLI for Microsoft 365 has become a powerful tool, not just for managing your tenant but also for automating your daily work.

We’d love to show you how you can use the CLI for Microsoft 365 to build automation scripts in PowerShell Core and Bash. If you have any scripts using SPO or PnP PowerShell that you use frequently, please share them with us so that we can learn more about the common automation scenarios.

 

ensure commands

We've just shipped our first ensure command - an easy way to help you that a site with specific settings exists. If it doesn't, CLI creates it for you, if it does, CLI ensures it has the right properties. All in one line of code. We'd love to hear from you how you like it and if it's something you'd like us to implement for other commands as well.

 

Try it today

Get the latest release of the CLI for Microsoft 365 from npm by executing in the command line:

npm i -g @pnp/cli-microsoft365

 

Alternatively, you can get the latest release from Docker by executing in the command line:

docker run --rm -it m365pnp/cli-microsoft365:latest

 

If you need more help getting started or want more details about the commands, the architecture or the project, go to aka.ms/cli-m365.

 

If you see any room for improvement, please, don’t hesitate to reach out to us either on GitHub or twitter.

3 Comments
Regular Contributor

Microsoft

@Daniel Niccoli not everyone is using PowerShell. For those who don’t, this is a helpful tool.

%3CLINGO-SUB%20id%3D%22lingo-sub-2170951%22%20slang%3D%22en-US%22%3ERe%3A%20CLI%20for%20Microsoft%20365%20v3.6%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2170951%22%20slang%3D%22en-US%22%3E%3CP%3EReally%20happy%20to%20see%20that%20instead%20of%20consolidating%20the%20tools%20you%20keep%20fragmenting%20them.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EAvailable%20PowerShell%20modules%20today%3A%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FAzureAD%2F2.0.2.130%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FAzureAD%2F2.0.2.130%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FAz%2F5.5.0%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FAz%2F5.5.0%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FAzure%2F5.3.1%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FAzure%2F5.3.1%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FMicrosoftTeams%2F1.1.11-preview%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FMicrosoftTeams%2F1.1.11-preview%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FSharePointPnPPowerShellOnline%2F3.29.2101.0%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FSharePointPnPPowerShellOnline%2F3.29.2101.0%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FMicrosoft.Online.SharePoint.PowerShell%2F16.0.20912.12000%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FMicrosoft.Online.SharePoint.PowerShell%2F16.0.20912.12000%3C%2FA%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FMSOnline%2F1.1.183.57%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FMSOnline%2F1.1.183.57%3C%2FA%3E%3C%2FP%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FExchangeOnlineManagement%2F2.0.4%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.powershellgallery.com%2Fpackages%2FExchangeOnlineManagement%2F2.0.4%3C%2FA%3E%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2171509%22%20slang%3D%22en-US%22%3ERe%3A%20CLI%20for%20Microsoft%20365%20v3.6%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2171509%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F65328%22%20target%3D%22_blank%22%3E%40Daniel%20Niccoli%3C%2FA%3E%26nbsp%3Bnot%20everyone%20is%20using%20PowerShell.%20For%20those%20who%20don%E2%80%99t%2C%20this%20is%20a%20helpful%20tool.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2169383%22%20slang%3D%22en-US%22%3ECLI%20for%20Microsoft%20365%20v3.6%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2169383%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22banner-cli-m365.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F258630iDFAA2353DAEC27E1%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22banner-cli-m365.png%22%20alt%3D%22banner-cli-m365.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWe%E2%80%99ve%20just%20published%20a%20new%20version%20of%20the%20CLI%20for%20Microsoft%20365%20with%20new%20commands%20for%20working%20with%20and%20managing%20Microsoft%20365%20tenants%20and%20SharePoint%20Framework%20projects%20on%20any%20platform.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--522490212%22%20id%3D%22toc-hId--522490212%22%20id%3D%22toc-hId--522490212%22%20id%3D%22toc-hId--522490212%22%3EManage%20Microsoft%20365%20and%20SharePoint%20Framework%20projects%20on%20any%20platform%3C%2FH2%3E%0A%3CP%3ECLI%20for%20Microsoft%20365%20is%20a%20cross-platform%20CLI%20that%20allows%20you%20to%20manage%20various%20configuration%20settings%20of%20Microsoft%20365%20and%20SharePoint%20Framework%20projects%20no%20matter%20which%20operating%20system%20or%20shell%20you%20use.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWhile%20building%20solutions%20for%20Microsoft%20365%20expands%20beyond%20the%20Windows%20operating%20system%2C%20managing%20many%20of%20the%20platform%20settings%20is%20possible%20only%20through%20PowerShell%20on%20Windows.%20As%20more%20and%20more%20users%20work%20on%20non-Windows%20machines%2C%20it%E2%80%99s%20inconvenient%20for%20them%20to%20have%20to%20use%20a%20Windows%20virtual%20machine%20to%20configure%20their%20tenants.%20With%20the%20CLI%20for%20Microsoft%20365%2C%20you%20can%20configure%20your%20tenant%20no%20matter%20which%20operating%20system%20you%20use.%20Additionally%2C%20using%20CLI%20for%20Microsoft%20365%2C%20you%20can%20manage%20your%20SharePoint%20Framework%20projects.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1965022621%22%20id%3D%22toc-hId-1965022621%22%20id%3D%22toc-hId-1965022621%22%20id%3D%22toc-hId-1965022621%22%3ENew%20version%20of%20CLI%20for%20Microsoft%20365%20%E2%80%93%20v3.6%3C%2FH2%3E%0A%3CP%3EFollowing%20our%20monthly%20release%20cadence%2C%20we%20released%20this%20new%20version%20of%20CLI%20for%20Microsoft%20365%20with%20some%20new%20commands%20and%20improvements.%20Here%20are%20some%20of%20the%20most%20noteworthy%20additions.%20For%20the%20full%20list%20of%20changes%2C%20see%20our%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fabout%2Frelease-notes%2F%23v360%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Erelease%20notes%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--1639383201%22%20id%3D%22toc-hId--1639383201%22%20id%3D%22toc-hId--1639383201%22%20id%3D%22toc-hId--1639383201%22%3EEnsure%20SharePoint%20site%3C%2FH3%3E%0A%3CP%3EWhen%20building%20provisioning%20scripts%2C%20you%20often%20need%20to%20check%20if%20a%20particular%20site%20already%20exists.%20If%20it%20doesn't%2C%20you%20need%20to%20create%20it.%20If%20it%20does%2C%20you%20need%20to%20check%20if%20it%20has%20the%20necessary%20settings.%20Depending%20what%20exactly%20you%20need%20to%20check%2C%20this%20logic%20can%20become%20pretty%20elaborate.%20If%20you%20need%20to%20create%20a%20couple%20of%20sites%2C%20you're%20quickly%20looking%20at%20lengthy%20scripts%20that%20you%20not%20only%20need%20to%20write%20but%20also%20maintain.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20help%20you%20easily%20ensure%20that%20sites%20with%20the%20right%20configuration%20exists%2C%20we%20introduce%20the%3CCODE%3Espo%20site%20ensure%3C%2FCODE%3Ecommand.%20Using%20this%20command%2C%20you%20can%20for%20example%20easily%20ensure%20that%20a%20site%20exists%20at%20the%20specified%20URL%20and%20create%20one%20if%20it%20doesn't%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20site%20ensure%20--url%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fteam1%20--alias%20team1%20--title%20%22Team%201%22%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EUsing%20the%20command%20you%20can%20also%20ensure%20that%20the%20site%20that%20exists%20has%20the%20right%20type%20and%20properties%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20site%20ensure%20--url%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fteam1%20--alias%20team1%20--title%20%22Team%201%22%20--isPublic%20--shareByEmailEnabled%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThis%20is%20the%20first%3CCODE%3Eensure%3C%2FCODE%3Ecommand%20that%20we%20introduce%20in%20CLI%20for%20Microsoft%20365.%20We'd%20love%20you%20to%20give%20it%20a%20try%20and%20tell%20us%20what%20you%20think.%20For%20more%20information%20about%20what's%20possible%2C%20see%20the%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fcmd%2Fspo%2Fsite%2Fsite-ensure%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ecommand's%20documentation%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-848129632%22%20id%3D%22toc-hId-848129632%22%20id%3D%22toc-hId-848129632%22%20id%3D%22toc-hId-848129632%22%3EConfigure%20SharePoint%20site%20chrome%3C%2FH3%3E%0A%3CP%3EMicrosoft%20is%20continuously%20investing%20in%20modernizing%20SharePoint.%20With%20every%20update%2C%20we%20get%20more%20features%20to%20build%20rich%20portals%20in%20a%20robust%20and%20future-ready%20way.%20One%20of%20the%20recently%20introduced%20features%20is%20site%20chrome%20that%20allows%20you%20to%20control%20how%20the%20site's%20header%20and%20footer%20look%20like.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20this%20version%20of%20CLI%20for%20Microsoft%20365%2C%20we%20introduce%20a%20command%20that%20allows%20you%20to%20control%20site's%20chrome.%3C%2FP%3E%0A%3CP%3ETo%20show%20site's%20header%20in%20compact%20mode%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20site%20chrome%20set%20--url%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fproject-x%20--headerLayout%20Compact%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20show%20site's%20header%20in%20extended%20mode%20and%20align%20the%20logo%20to%20the%20right%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20site%20chrome%20set%20--url%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fproject-x%20%20--headerLayout%20Extended%20--logoAlignment%20Right%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20disable%20the%20footer%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20site%20chrome%20set%20--url%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fproject-x%20--disableFooter%20true%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFor%20the%20full%20list%20of%20supported%20settings%2C%20see%20the%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fcmd%2Fspo%2Fsite%2Fsite-chrome-set%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ecommand's%20documentation%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--959324831%22%20id%3D%22toc-hId--959324831%22%20id%3D%22toc-hId--959324831%22%20id%3D%22toc-hId--959324831%22%3ECopy%20SharePoint%20pages%20and%20page%20templates%3C%2FH3%3E%0A%3CP%3EWhen%20working%20with%20pages%20and%20page%20templates%2C%20you%20might%20want%20to%20copy%20specific%20pages%20or%20page%20templates%20in%20bulk.%20The%20easiest%20way%20to%20automate%20it%2C%20is%20using%20CLI%20for%20Microsoft%20365.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20this%20version%20we%20introduce%20a%20command%20that%20let's%20you%20copy%20the%20specified%20page%20or%20page%20template.%20To%20copy%20a%20page%20template%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20page%20copy%20--webUrl%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fteam-a%20--sourceName%20%22templates%2FPageTemplate.aspx%22%20--targetUrl%20%22page.aspx%22%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20copy%20a%20page%20to%20another%20site%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20spo%20page%20copy%20--webUrl%20https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fteam-a%20--sourceName%20%22templates%2FPageTemplate.aspx%22%20--targetUrl%20%22https%3A%2F%2Fcontoso.sharepoint.com%2Fsites%2Fteam-b%2Fsitepages%2Fpage.aspx%22%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFor%20the%20full%20list%20of%20supported%20options%2C%20see%20the%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fcmd%2Fspo%2Fpage%2Fpage-copy%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Ecommand's%20docs%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-1528188002%22%20id%3D%22toc-hId-1528188002%22%20id%3D%22toc-hId-1528188002%22%20id%3D%22toc-hId-1528188002%22%3EManage%20Power%20Apps%3C%2FH3%3E%0A%3CP%3EMore%20and%20more%20organizations%20use%20Power%20Apps%20to%20automate%20their%20work.%20With%20Power%20Apps%2C%20they%20can%20build%20applications%20for%20their%20business%20processes%20with%20little%20to%20no%20code.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20help%20organizations%20manage%20their%20Power%20Apps%2C%20we%20introduce%20in%20this%20version%20three%20new%20commands.%3C%2FP%3E%0A%3CP%3EFirst%2C%20we%20let%20you%20get%20the%20list%20of%20your%20Power%20Apps%20environments%2C%20by%20executing%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20pa%20environment%20list%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20get%20more%20information%20about%20a%20specific%20environment%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20pa%20environment%20get%20--name%20Default-d87a7535-dd31-4437-bfe1-95340acd55c5%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20get%20information%20about%20a%20specific%20app%2C%20execute%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20pa%20app%20get%20--name%203989cb59-ce1a-4a5c-bb78-257c5c39381d%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EThese%20commands%20extend%20our%20set%20of%20Power%20Platform%20commands.%20For%20the%20list%20of%20all%20commands%20for%20Power%20Platform%2C%20see%20the%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fcmd%2Fpa%2Fenvironment%2Fenvironment-list%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Edocumentation%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--279266461%22%20id%3D%22toc-hId--279266461%22%20id%3D%22toc-hId--279266461%22%20id%3D%22toc-hId--279266461%22%3EChanges%3C%2FH3%3E%0A%3CP%3EWe%E2%80%99ve%20continued%20improving%20CLI%2C%20building%20upon%20the%20changes%20we%E2%80%99ve%20introduced%20in%20the%20previous%20version.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20id%3D%22toc-hId-411295013%22%20id%3D%22toc-hId-411295013%22%20id%3D%22toc-hId-411295013%22%20id%3D%22toc-hId-411295013%22%3EBrowser-based%20login%3C%2FH4%3E%0A%3CP%3EMany%20organizations%20become%20more%20and%20more%20conscious%20about%20their%20security%20posture.%20As%20their%20awareness%20matures%2C%20they%20implement%20more%20measure%20to%20ensure%20that%20they%20can%20work%20securely.%20One%20of%20such%20measures%20is%20conditional%20access%20that%20allows%20organizations%20enforce%20specific%20checks%20on%20clients%20authenticating%20against%20their%20Microsoft%20365%20tenant.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20let%20organizations%20who%20enforce%20conditional%20policies%20use%20CLI%20for%20Microsoft%20365%2C%20we%20introduced%20a%20browser-based%20way%20to%20login%20to%20Microsoft%20365.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAfter%20executing%3A%3CCODE%3Em365%20login%20--authType%20browser%3C%2FCODE%3E%2C%20CLI%20for%20Microsoft%20365%20will%20launch%20a%20browser%2C%20let%20you%20sign%20in%20and%20obtain%20an%20access%20token%20on%20your%20behalf.%20If%20you%20have%20the%20browser%20with%20the%20right%20user%20profile%20active%2C%20the%20automatically%20opened%20login%20page%20will%20give%20you%20a%20smooth%20login%20experience%20without%20having%20to%20copy%20%26amp%3B%20paste%20device%20code.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EFrom%20that%20point%20on%2C%20CLI%20for%20Microsoft%20365%20will%20work%20exactly%20the%20same%20way%20you're%20used%20to%20it%2C%20allowing%20you%20to%20run%20scripts%20and%20automate%20managing%20your%20tenant.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20id%3D%22toc-hId--1396159450%22%20id%3D%22toc-hId--1396159450%22%20id%3D%22toc-hId--1396159450%22%20id%3D%22toc-hId--1396159450%22%3EImproved%20managing%20SharePoint%20pages%20and%20sites%3C%2FH4%3E%0A%3CP%3ECLI%20for%20Microsoft%20365%20is%20a%20great%20tool%20for%20automating%20managing%20your%20Microsoft%20365%20tenant%20and%20SharePoint%20Framework%20projects.%20It's%20also%20great%20as%20an%20engine%20to%20build%20other%20tools%20on%20top!%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EElio%20Struyf%20has%20build%20a%20static%20site%20generator%20for%20SharePoint%20named%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Festruyf%2Fdoctor%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EDoctor%3C%2FA%3E.%20If%20you%20want%20to%20author%20product%20documentation%20or%20a%20knowledgebase%20in%20Markdown%20but%20publish%20it%20to%20SharePoint%2C%20Doctor%20is%20the%20tool%20for%20the%20job!%20As%20Elio%20is%20extending%20Doctor%20with%20new%20capabilities%2C%20he's%20contributed%20a%20number%20of%20enhancements%20to%20managing%20pages%20and%20sites%20with%20CLI%20for%20Microsoft%20365.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20id%3D%22toc-hId-1091353383%22%20id%3D%22toc-hId-1091353383%22%20id%3D%22toc-hId-1091353383%22%20id%3D%22toc-hId-1091353383%22%3EImproved%20creating%20Azure%20AD%20apps%3C%2FH4%3E%0A%3CP%3ERecently%20we've%20introduced%20an%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fcmd%2Faad%2Fapp%2Fapp-add%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Eeasy%20way%20to%20create%20Azure%20AD%20apps%3C%2FA%3E%20with%20CLI%20for%20Microsoft%20365.%20With%20just%20one%20line%20of%20code%2C%20you%20can%20create%20an%20app%20registration%20full%20configured%20to%20support%20your%20scenario.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20this%20version%20of%20CLI%20for%20Microsoft%20365%2C%20we%20extended%20the%20command%20so%20that%20it%20returns%20the%20ID%20of%20your%20Azure%20AD%20directory%2C%20which%20you%20need%20to%20include%20in%20your%20code%20when%20building%20single-tenant%20apps.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWe've%20also%20improved%20the%20mechanism%20to%20lookup%20service%20principal%20in%20cases%20where%20their%20names%20end%20with%20a%3CCODE%3E%2F%3C%2FCODE%3E(slash).%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20id%3D%22toc-hId-514769519%22%20id%3D%22toc-hId-514769519%22%20id%3D%22toc-hId-514769519%22%20id%3D%22toc-hId-514769519%22%3ESimplified%20retrieving%20access%20token%20for%20SharePoint%3C%2FH4%3E%0A%3CP%3EWhen%20building%20apps%20for%20Microsoft%20365%2C%20you%20often%20need%20an%20access%20token%20to%20quickly%20test%20your%20code.%20The%20easiest%20way%20to%20get%20it%2C%20is%20using%20CLI%20for%20Microsoft%20365.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20this%20version%2C%20we%20made%20it%20even%20easier%20by%20introducing%20an%20alias%20for%20the%20resource.%20If%20you%20called%20SharePoint%20previously%20using%20CLI%20for%20Microsoft%20365%2C%20you%20can%20quickly%20get%20an%20access%20token%20for%20SharePoint%20by%20executing%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Em365%20util%20accesstoken%20get%20--resource%20sharepoint%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ERather%20than%20having%20to%20specify%20the%20full%20URL%20of%20your%20SharePoint%20tenant%2C%20you%20can%20use%3CCODE%3Esharepoint%3C%2FCODE%3Einstead.%20It's%20that%20easy!%20Are%20there%20any%20other%20aliases%20that%20we%20should%20add%3F%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--1421767663%22%20id%3D%22toc-hId--1421767663%22%20id%3D%22toc-hId--1421767663%22%20id%3D%22toc-hId--1421767663%22%3ESample%20scripts%3C%2FH3%3E%0A%3CP%3ECLI%20for%20Microsoft%20365%20is%20a%20great%20tool%20both%20for%20quick%20adjustments%20to%20the%20configuration%20of%20your%20Microsoft%20365%20tenant%20as%20well%20as%20automating%20more%20complex%20tasks.%20Because%20CLI%20for%20Microsoft%20365%20is%20cross-platform%20you%20can%20use%20it%20on%20any%20OS%20and%20in%20any%20shell.%20To%20help%20you%20get%20started%20using%20the%20CLI%20for%20Microsoft%20365%20for%20automation%20scenarios%2C%20we%20started%20gathering%20some%20sample%20scripts.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIf%20you%20have%20any%20scripts%20that%20you%20use%20frequently%2C%20please%20share%20them%20with%20us%20so%20that%20we%20can%20learn%20more%20about%20the%20common%20automation%20scenarios.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH4%20id%3D%22toc-hId-1194827889%22%20id%3D%22toc-hId-1194827889%22%20id%3D%22toc-hId-1194827889%22%20id%3D%22toc-hId-1194827889%22%3EExport%20conversations%20from%20Microsoft%20Teams%20Channels%3C%2FH4%3E%0A%3CP%3E%3CEM%3EWe%20utilize%20Teams%20during%20incidents%20and%20create%20channels%20for%20each.%20We%20would%20like%20to%20be%20able%20to%20export%20conversation%20history.%3C%2FEM%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ETo%20help%20you%20quickly%20export%20conversations%20from%20the%20teams%20your%20members%20of%2C%20Joseph%20Velliah%20contributed%20a%20%3CA%20href%3D%22https%3A%2F%2Fpnp.github.io%2Fcli-microsoft365%2Fsample-scripts%2Fteams%2Fexport-teams-conversations%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Esample%20script%3C%2FA%3E%20that%20iterates%20over%20your%20Teams%20and%20channels%20and%20exports%20conversations%20to%20a%20JSON%20file.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--870792012%22%20id%3D%22toc-hId--870792012%22%20id%3D%22toc-hId--870792012%22%20id%3D%22toc-hId--870792012%22%3EContributors%3C%2FH2%3E%0A%3CP%3EThis%20release%20wouldn't%20be%20possible%20without%20the%20help%20of%20(in%20alphabetical%20order)%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fhugoabernier%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EHugo%20Bernier%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FLuiseFreese%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ELuise%20Freese%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fplamber%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EPatrick%20Lamber%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fwaldekmastykarz%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EWaldek%20Mastykarz%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fnanddeepn%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ENanddeep%20Nachan%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2FSmitaNachan%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ESmita%20Nachan%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fjcads%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EJohn%20Rafael%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fappieschot%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EAlbert-Jan%20Schot%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Festruyf%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EElio%20Struyf%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Ffthorild%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EFredrik%20Thorild%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fgarrytrinder%2F%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EGarry%20Trinder%3C%2FA%3E%2C%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fsprider%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EJoseph%20Velliah%3C%2FA%3E%20and%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Frabwill%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ERabia%20Williams%3C%2FA%3E.%20Thank%20you%20all%20for%20the%20time%20you%20chose%20to%20spend%20on%20the%20CLI%20for%20Microsoft%20365%20and%20your%20help%20to%20advance%20it!%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1616720821%22%20id%3D%22toc-hId-1616720821%22%20id%3D%22toc-hId-1616720821%22%20id%3D%22toc-hId-1616720821%22%3EWork%20in%20progress%3C%2FH2%3E%0A%3CP%3EHere%20are%20some%20things%20that%20we%E2%80%99re%20currently%20working%20on.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--61650923%22%20id%3D%22toc-hId--61650923%22%20id%3D%22toc-hId--61650923%22%20id%3D%22toc-hId--61650923%22%3EMore%20commands%2C%20what%20else%3C%2FH3%3E%0A%3CP%3EMicrosoft%20365%20is%20evolving%20and%20new%20capabilities%20are%20being%20released%20every%20day.%20With%20CLI%20for%20Microsoft%20365%2C%20we%20aim%20to%20help%20you%20manage%20your%20tenant%20on%20any%20platform%20in%20a%20consistent%20way%2C%20no%20matter%20which%20part%20of%20Microsoft%20365%20you%20interact%20with.%20While%20we%20keep%20adding%20new%20commands%20to%20CLI%20for%20Microsoft%20365%20each%20release%2C%20we%20still%20barely%20scratched%20the%20surface%20with%20what%E2%80%99s%20possible%20in%20Microsoft%20365.%20In%20the%20upcoming%20versions%20of%20the%20CLI%20for%20Microsoft%2C%20you%20can%20expect%20us%20to%20add%20more%20commands%20across%20the%20different%20workloads%20in%20Microsoft%20365.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--1869105386%22%20id%3D%22toc-hId--1869105386%22%20id%3D%22toc-hId--1869105386%22%20id%3D%22toc-hId--1869105386%22%3EImproved%20managing%20SharePoint%20pages%3C%2FH3%3E%0A%3CP%3EMicrosoft%20keeps%20investing%20in%20modern%20SharePoint%20pages%20continuously%20introducing%20new%20capabilities%20to%20let%20us%20publish%20rich%20content.%20We're%20looking%20into%20extending%20our%20support%20for%20managing%20modern%20SharePoint%20pages%20to%20let%20you%20use%20them%20to%20their%20full%20potential.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-618407447%22%20id%3D%22toc-hId-618407447%22%20id%3D%22toc-hId-618407447%22%20id%3D%22toc-hId-618407447%22%3EImproved%20creating%20Azure%20AD%20apps%3C%2FH3%3E%0A%3CP%3ERecently%2C%20we've%20introduced%20a%20command%20to%20easily%20create%20Azure%20AD%20app%20registrations.%20Because%20they're%20backbone%20of%20every%20app%20you'd%20build%20on%20Microsoft%20365%2C%20we%20think%20you%20should%20be%20able%20to%20create%20them%20as%20easily%20as%20possible.%20So%20with%20CLI%20for%20Microsoft%20365%2C%20you%20can%20create%20a%20fully%20configured%20Azure%20AD%20app%20for%20the%20most%20common%20scenarios%20with%20just%20one%20line%20of%20code.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIn%20the%20future%20versions%20of%20CLI%20for%20Microsoft%20365%20you%20can%20expect%20us%20extend%20the%20capabilities%20with%20additional%20scenarios%20and%20features%20supported%20by%20Azure%20AD.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--1189047016%22%20id%3D%22toc-hId--1189047016%22%20id%3D%22toc-hId--1189047016%22%20id%3D%22toc-hId--1189047016%22%3EScript%20examples%3C%2FH3%3E%0A%3CP%3EIn%20every%20release%20of%20the%20CLI%20for%20Microsoft%20365%2C%20we%20introduce%20new%20commands%20for%20managing%20Microsoft%20365.%20With%20over%20350%20commands%20across%20the%20different%20Microsoft%20365%20services%2C%20the%20CLI%20for%20Microsoft%20365%20has%20become%20a%20powerful%20tool%2C%20not%20just%20for%20managing%20your%20tenant%20but%20also%20for%20automating%20your%20daily%20work.%3C%2FP%3E%0A%3CP%3EWe%E2%80%99d%20love%20to%20show%20you%20how%20you%20can%20use%20the%20CLI%20for%20Microsoft%20365%20to%20build%20automation%20scripts%20in%20PowerShell%20Core%20and%20Bash.%20If%20you%20have%20any%20scripts%20using%20SPO%20or%20PnP%20PowerShell%20that%20you%20use%20frequently%2C%20please%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fpnp%2Fcli-microsoft365%2Fissues%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eshare%3C%2FA%3E%20them%20with%20us%20so%20that%20we%20can%20learn%20more%20about%20the%20common%20automation%20scenarios.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-1298465817%22%20id%3D%22toc-hId-1298465817%22%20id%3D%22toc-hId-1298465817%22%20id%3D%22toc-hId-1298465817%22%3E%3CCODE%3Eensure%3C%2FCODE%3Ecommands%3C%2FH3%3E%0A%3CP%3EWe've%20just%20shipped%20our%20first%3CCODE%3Eensure%3C%2FCODE%3Ecommand%20-%20an%20easy%20way%20to%20help%20you%20that%20a%20site%20with%20specific%20settings%20exists.%20If%20it%20doesn't%2C%20CLI%20creates%20it%20for%20you%2C%20if%20it%20does%2C%20CLI%20ensures%20it%20has%20the%20right%20properties.%20All%20in%20one%20line%20of%20code.%20We'd%20love%20to%20hear%20from%20you%20how%20you%20like%20it%20and%20if%20it's%20something%20you'd%20like%20us%20to%20implement%20for%20other%20commands%20as%20well.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-60090576%22%20id%3D%22toc-hId-60090576%22%20id%3D%22toc-hId-60090576%22%20id%3D%22toc-hId-60090576%22%3ETry%20it%20today%3C%2FH2%3E%0A%3CP%3EGet%20the%20latest%20release%20of%20the%20CLI%20for%20Microsoft%20365%20from%20npm%20by%20executing%20in%20the%20command%20line%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Enpm%20i%20-g%20%40pnp%2Fcli-microsoft365%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EAlternatively%2C%20you%20can%20get%20the%20latest%20release%20from%20Docker%20by%20executing%20in%20the%20command%20line%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22language-sh%22%3Edocker%20run%20--rm%20-it%20m365pnp%2Fcli-microsoft365%3Alatest%0A%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIf%20you%20need%20more%20help%20getting%20started%20or%20want%20more%20details%20about%20the%20commands%2C%20the%20architecture%20or%20the%20project%2C%20go%20to%20%3CA%20href%3D%22https%3A%2F%2Faka.ms%2Fcli-m365%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eaka.ms%2Fcli-m365%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIf%20you%20see%20any%20room%20for%20improvement%2C%20please%2C%20don%E2%80%99t%20hesitate%20to%20reach%20out%20to%20us%20either%20on%20%3CA%20href%3D%22https%3A%2F%2Fgithub.com%2Fpnp%2Foffice365-cli%2Fdiscussions%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EGitHub%3C%2FA%3E%20or%20%3CA%20href%3D%22https%3A%2F%2Ftwitter.com%2Fclimicrosoft365%22%20target%3D%22_blank%22%20rel%3D%22noopener%20nofollow%20noreferrer%22%3Etwitter%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%3CIMG%20src%3D%22https%3A%2F%2Ftelemetry.sharepointpnp.com%2Fm365dev-blog%2Fcli-microsoft-365-3-6%22%20border%3D%220%22%20alt%3D%22%22%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-2169383%22%20slang%3D%22en-US%22%3E%3CP%3EWe%E2%80%99ve%20just%20published%20a%20new%20version%20of%20the%20CLI%20for%20Microsoft%20365%20with%20new%20commands%20for%20working%20with%20and%20managing%20Microsoft%20365%20tenants%20and%20SharePoint%20Framework%20projects%20on%20any%20platform.%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22banner-cli-m365.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F262560i2113F3468D19AC83%2Fimage-size%2Flarge%3Fv%3D1.0%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22banner-cli-m365.png%22%20alt%3D%22banner-cli-m365.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2170953%22%20slang%3D%22en-US%22%3ERe%3A%20CLI%20for%20Microsoft%20365%20v3.6%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2170953%22%20slang%3D%22en-US%22%3E%3CP%3E%3CIMG%20src%3D%22https%3A%2F%2Fcdn.techcommunity.microsoft.com%2Fassets%2FuserImgs%2Fstandards.webp%22%20border%3D%220%22%20%2F%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E
Co-Authors
Version history
Last update:
‎Mar 10 2021 10:07 AM
Updated by: