Skip to content

Commit 655a953

Browse files
VelinGeorgievVesaJuvonen
authored andcommitted
Extends the docs on creating modern team sites using the Office365 CLI (#1719)
* Extends the SharePoint docs on creating modern team sites using the Office365 CLI * heading fix * Merge fixes, Privisioning changed to Provision
1 parent f1a5b98 commit 655a953

File tree

1 file changed

+64
-1
lines changed

1 file changed

+64
-1
lines changed

docs/solution-guidance/modern-experience-customizations-provisioning-sites.md

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,29 @@ Execute-PnPQuery
108108
$web.WebTemplate + "#" + $web.Configuration
109109
```
110110

111+
### Provision a "modern" team site using the Office 365 CLI
112+
113+
Alternatively, the [Office 365 CLI](https://sharepoint.github.io/office365-cli/?utm_source=msft_docs&utm_medium=page&utm_campaign=Provisioning+modern+team+sites+programmatically) can be used to create "modern" sites. The Office 365 CLI is a cross-platform command line interface that can be used on any platform, including Windows, MacOS and Linux.
114+
115+
The following bash script will create a "modern" team site and then return the actual SharePoint site URL for further manipulation. Once you have access to the URL of the created site, you can use it to automate other operations on the created site.
116+
117+
```bash
118+
#!/usr/bin/env bash
119+
# Connect to SharePoint Online
120+
# This command will prompt a sign-in confirmation message to authenticate
121+
o365 spo connect https://[tenant].sharepoint.com/
122+
123+
# Create the new "modern" team site
124+
siteUrl=$(o365 spo site add --type TeamSite --title 'displayName' --alias 'mymodernteamsite' --description 'description' --isPublic --classification 'classification')
125+
126+
# Display the modern site url
127+
echo $siteUrl
128+
129+
# Since the Office 365 CLI is connected to SharePoint Online we can do any operations.
130+
# As example, we can list all the properties from the site property bag:
131+
o365 spo propertybag list -u $siteUrl
132+
```
133+
111134
### Provision an Office 365 group programmatically
112135

113136
"Modern" team sites can be created programmatically by creating an [Office 365 group](https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/resources/group) using the Microsoft Graph. In fact, when you create an Office 365 group, a "modern" team site is automatically provisioned for the group. The "modern" team site URI is based on the **mailNickname** parameter of the Office 365 group and has the following default structure.
@@ -169,9 +192,10 @@ Connect-PnPOnline -Url https://contoso-admin.sharepoint.com
169192
# Create a new modern team site
170193
New-PnPSite -Type Team -Title "Awesome Group" -Description "Awesome Group" -Alias "awesome-group"
171194
```
195+
172196
#### Provision a modern teamsite using SharePoint Online Management Shell or PnP PowerShell
173197

174-
It is now also possible to create a modern site which is not connected to a Group using PowerShell. Either by using the PnP PowerShell cmdlets or the SharePoint Online Management Shell.
198+
It is also possible to create a modern site which is not connected to a Group using PowerShell. Either by using the PnP PowerShell cmdlets or the SharePoint Online Management Shell.
175199

176200
```powershell
177201
$title = "Awesome ModernTeamsite"
@@ -185,6 +209,24 @@ New-SPOSite -Title $_title -Url $_url -Owner $owner -StorageQuota 512 -Template
185209
New-PnPTenantSite -Url $_url -Description $_title -Title $_title -Template STS#3 -Owner $owner
186210
```
187211

212+
#### Provision an Office 365 Group using the Office 365 CLI
213+
214+
Alternatively, the [Office 365 CLI](https://sharepoint.github.io/office365-cli/cmd/graph/o365group/o365group-add/?utm_source=msft_docs&utm_medium=page&utm_campaign=Provisioning+modern+team+sites+programmatically) can be used to create an Office 365 Group, which will let you easily authenticate with the Microsoft Graph and then create the new group.
215+
The example below shows how it can be done using the [Office 365 CLI immersive mode](https://sharepoint.github.io/office365-cli/user-guide/using-cli/#start-the-cli-in-the-immersive-mode?utm_source=msft_docs&utm_medium=page&utm_campaign=Provisioning+modern+team+sites+programmatically).
216+
217+
```bash
218+
# Use the Office 365 CLI immersive mode by typing o365 in the terminal
219+
# Connect to Microsoft Graph using the Office 365 CLI
220+
# This command will prompt a sign-in confirmation message to authenticate
221+
graph connect
222+
223+
# Create an Office 365 Group
224+
# The newly created SharePoint site for that group will has URL
225+
# https://[tenant].sharepoint.com/sites/awesome-group
226+
graph o365group add --displayName 'Awesome Group' --description 'Awesome Group' --mailNickname awesome-group
227+
```
228+
229+
188230
## Provisioning "modern" communication sites
189231

190232
In this section, you learn how to provision a "modern" communication site, and what are the available options to do that.
@@ -258,6 +300,27 @@ Execute-PnPQuery
258300
$web.Title
259301
```
260302

303+
#### Provision a "modern" communication site using the Office 365 CLI
304+
305+
Alternatively, the [Office 365 CLI](https://sharepoint.github.io/office365-cli/cmd/spo/site/site-add/?utm_source=msft_docs&utm_medium=page&utm_campaign=Provisioning+modern+team+sites+programmatically) can be used to create "modern" Communication site. The following bash script will create the site and then return the actual SharePoint site URL for further manipulation. Once you have access to the URL you can use it to automate other operations on the created site.
306+
307+
```bash
308+
#!/usr/bin/env bash
309+
# Connect to SharePoint Online
310+
# This command will prompt a sign-in confirmation message to authenticate
311+
o365 spo connect https://[tenant].sharepoint.com/
312+
313+
# Create the new "modern" communication site
314+
siteUrl=$(o365 spo site add --type CommunicationSite --url https://[tenant].sharepoint.com/sites/mymoderncommunicationsite --title displayName --description description --classification classification)
315+
316+
# Display the modern site url
317+
echo $siteUrl
318+
319+
# Since the Office 365 CLI is connected to SharePoint Online we can do any operations.
320+
# As example, we can list all the properties from the site property bag:
321+
o365 spo propertybag list -u $siteUrl
322+
```
323+
261324
## Additional considerations
262325

263326
### Subsites use "classic" templates

0 commit comments

Comments
 (0)