Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Source: https://msdn.microsoft.com/en-us/pnp_articles/modern-experience-customizations-provisioning-sites#provisioning-a-modern-team-site-using-pnp-powershell
- #region SITE CREATION REGION
- # ===========================================================
- # Connect to Azure AD and get back an OAuth 2.0 Access Token
- # This command will prompt the sign-in UI to authenticate
- Connect-PnPMicrosoftGraph -Scopes "Group.ReadWrite.All","User.Read.All"
- # Store the Access Token in a local variable
- # This is not really needed for next steps, but is available
- $accessToken = Get-PnPAccessToken
- $siteName = "AutomationTestSite"
- # Create a new Office 365 Unified Group, together with the corresponding Modern Site in SPO
- $group = New-PnPUnifiedGroup -DisplayName "Test" -Description "Test" `
- -MailNickname $siteName -Members "firstnamelastname@contoso.onmicrosoft.com" `
- -IsPrivate -Owners "firstnamelastname@contoso.onmicrosoft.com"
- #endregion
- #region APPLY TEMPLATE REGION
- # ===========================================================
- $username = "firstnamelastname@contoso.onmicrosoft.com"
- $password = "mypassword"
- $credentials = New-Object -TypeName System.Management.Automation.PSCredential -argumentlist $username, $(convertto-securestring $password -asplaintext -force)
- Connect-PnPOnline "https://contoso.sharepoint.com/sites/AutomationTestSite" -Credentials $credentials
- # Now we have access on the SharePoint site for any operations
- $context = Get-PnPContext
- $web = Get-PnPWeb
- $context.Load($web, $web.WebTemplate)
- Execute-PnPQuery
- $web.WebTemplate + "#" + $web.Configuration
- $siteTemplateFolder = "C:Usersf.lastnameDesktopTemplates"
- $siteTemplateFilename = "Template.xml"
- Apply-PnPProvisioningTemplate -Path ($siteTemplateFolder + $siteTemplateFilename)
- #endregion
- #POSSIBLE THAT THE PAGES SECTION MAKE THE TEMPLATE CRASH. REMOVE THEM AND ADD THEM AGAIN
- <pnp:Provisioning xmlns:pnp="http://schemas.dev.office.com/PnP/2017/05/ProvisioningSchema">
- <pnp:Preferences Author="John White" Version="1.0" Generator="Human being :-)">
- <pnp:Parameters>
- <pnp:Parameter Key="Title">Automation Test Site</pnp:Parameter>
- <pnp:Parameter Key="TenantRelativeURL">AutomationTestSite</pnp:Parameter>
- <pnp:Parameter Key="SiteDescription">This will be the first A-Z automatically created site !</pnp:Parameter>
- <pnp:Parameter Key="SiteLanguage">1033</pnp:Parameter>
- <pnp:Parameter Key="ManagedPath">teams</pnp:Parameter>
- <pnp:Parameter Key="Status">Approved</pnp:Parameter>
- <pnp:Parameter Key="SiteTemplate">Regular Template</pnp:Parameter>
- <pnp:Parameter Key="Division">North America</pnp:Parameter>
- <pnp:Parameter Key="Private">True</pnp:Parameter>
- <pnp:Parameter Key="OwnerLookupValue">First Name Last Name</pnp:Parameter>
- <pnp:Parameter Key="OwnerEmail">firstnamelastname@contoso.onmicrosoft.com</pnp:Parameter>
- <pnp:Parameter Key="SecondaryOwnerLookupValue">Test User 2</pnp:Parameter>
- <pnp:Parameter Key="SecondaryOwnerEmail">
- </pnp:Parameter>
- <pnp:Parameter Key="Comments1">Hello. This is a test for the Site Provisioning Script!</pnp:Parameter>
- <pnp:Parameter Key="DateTime-TargetDate">2017-08-17 6:00:00 PM</pnp:Parameter>
- <pnp:Parameter Key="Error">This is a very generic error message. </pnp:Parameter>
- <pnp:Parameter Key="ApproverComments">I, First Name Last Name, approves the creation of this new site.</pnp:Parameter>
- <pnp:Parameter Key="Lifespan">Permanent Site</pnp:Parameter>
- <pnp:Parameter Key="DateTime-Modified">2017-08-18 3:17:09 PM</pnp:Parameter>
- <pnp:Parameter Key="DateTime-Created">2017-08-18 3:17:09 PM</pnp:Parameter>
- <pnp:Parameter Key="AuthorLookupValue">First Name Last Name</pnp:Parameter>
- <pnp:Parameter Key="AuthorEmail">firstnamelastname@contoso.onmicrosoft.com</pnp:Parameter>
- <pnp:Parameter Key="EditorLookupValue">First Name Last Name</pnp:Parameter>
- <pnp:Parameter Key="EditorEmail">firstnamelastname@contoso.onmicrosoft.com</pnp:Parameter>
- </pnp:Parameters>
- </pnp:Preferences>
- <pnp:Templates ID="SAMPLE-TEMPLATES">
- <pnp:ProvisioningTemplate ID="SPECIALTEAM" Version="1.0" BaseSiteTemplate="GROUP#0" ImagePreviewUrl="https://montreal-mp7static.mlsdigital.net/mp6/stencil-citrouille-imfc-logo.jpg" DisplayName="{parameter:Title}" Description="{parameter:SiteDescription}" Scope="RootSite">
- <pnp:Files>
- <pnp:File Src="..SiteAssetsTest.txt" Folder="SiteAssets" />
- <pnp:File Src="..SiteAssetsImpact.jpg" Folder="SiteAssets" />
- </pnp:Files>
- <pnp:WebSettings RequestAccessEmail="{parameter:OwnerEmail}" Title="{parameter:Title}" Description="{parameter:SiteDescription}" SiteLogo="{sitecollection}/SiteAssets/Impact.jpg" MasterPageUrl="{sitecollection}/_catalogs/MasterPage/oslo.master" />
- <pnp:RegionalSettings CalendarType="Gregorian" FirstDayOfWeek="Sunday" FirstWeekOfYear="1" LocaleId="4105" ShowWeeks="true" Time24="true" TimeZone="10" WorkDayEndHour="5:00PM" WorkDayStartHour="9:00AM" />
- <pnp:Security BreakRoleInheritance="true" CopyRoleAssignments="false" ClearSubscopes="true">
- <pnp:AdditionalAdministrators>
- <pnp:User Name="{parameter:OwnerEmail}" />
- <pnp:User Name="{parameter:SecondaryOwnerEmail}" />
- </pnp:AdditionalAdministrators>
- <pnp:AdditionalOwners>
- <pnp:User Name="{parameter:OwnerEmail}" />
- <pnp:User Name="{parameter:SecondaryOwnerEmail}" />
- </pnp:AdditionalOwners>
- </pnp:Security>
- <pnp:Pages>
- <pnp:Page Layout="TwoColumns" Overwrite="true" Url="{site}/SitePages/SiteRequestParameters.aspx">
- <pnp:Fields>
- <pnp:Field FieldName="WikiField"><![CDATA[
- <table style="width:50%">
- <tr>
- <th><b>Column</b></th>
- <th><b>Value</b></th>
- </tr>
- <tr>
- <td>Title</td>
- <td>{parameter:Title}</td>
- </tr>
- <tr>
- <td>TenantRelativeURL</td>
- <td>{parameter:TenantRelativeURL}</td>
- </tr>
- <tr>
- <td>SiteDescription</td>
- <td>{parameter:SiteDescription}</td>
- </tr>
- <tr>
- <td>SiteLanguage</td>
- <td>{parameter:SiteLanguage}</td>
- </tr>
- <tr>
- <td>ManagedPath</td>
- <td>{parameter:ManagedPath}</td>
- </tr>
- <tr>
- <td>SiteTemplate</td>
- <td>{parameter:SiteTemplate}</td>
- </tr>
- <tr>
- <td>Division</td>
- <td>{parameter:Division}</td>
- </tr>
- <tr>
- <td>Status</td>
- <td>{parameter:Status}</td>
- </tr>
- <tr>
- <td>Private</td>
- <td>{parameter:Private}</td>
- </tr>
- <tr>
- <td>OwnerLookupValue</td>
- <td>{parameter:OwnerLookupValue}</td>
- </tr>
- <tr>
- <td>OwnerEmail</td>
- <td>{parameter:OwnerEmail}</td>
- </tr>
- <tr>
- <td>SecondaryOwnerLookupValue</td>
- <td>{parameter:SecondaryOwnerLookupValue}</td>
- </tr>
- <tr>
- <td>SecondaryOwnerEmail</td>
- <td>{parameter:SecondaryOwnerEmail}</td>
- </tr>
- <tr>
- <td>Comments1</td>
- <td>{parameter:Comments1}</td>
- </tr>
- <tr>
- <td>DateTime-TargetDate</td>
- <td>{parameter:DateTime-TargetDate}</td>
- </tr>
- <tr>
- <td>Error</td>
- <td>{parameter:Error}</td>
- </tr>
- <tr>
- <td>ApproverComments</td>
- <td>{parameter:ApproverComments}</td>
- </tr>
- <tr>
- <td>Lifespan</td>
- <td>{parameter:Lifespan}</td>
- </tr>
- <tr>
- <td>DateTime-Modified</td>
- <td>{parameter:DateTime-Modified}</td>
- </tr>
- <tr>
- <td>DateTime-Created</td>
- <td>{parameter:DateTime-Created}</td>
- </tr>
- <tr>
- <td>AuthorLookupValue</td>
- <td>{parameter:AuthorLookupValue}</td>
- </tr>
- <tr>
- <td>AuthorEmail</td>
- <td>{parameter:AuthorEmail}</td>
- </tr>
- <tr>
- <td>EditorLookupValue</td>
- <td>{parameter:EditorLookupValue}</td>
- </tr>
- <tr>
- <td>EditorEmail</td>
- <td>{parameter:EditorEmail}</td>
- </tr>
- </table>
- ]]></pnp:Field>
- </pnp:Fields>
- </pnp:Page>
- </pnp:Pages>
- </pnp:ProvisioningTemplate>
- </pnp:Templates>
- </pnp:Provisioning>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement