Install the IT Division Site Template – step by step
From download to a working site: tools, the Entra app, configuration, the prerequisite check, deployment with your licence key, and what to do afterwards.
This guide takes you from the download to a working IT Division site. Allow about 45 minutes the first time – most of it is registering the Entra app – and about 10 minutes for every site after that. The full reference is in the download: docs/01-Implementation-Guide.md.
Before you start
You need:
- Your licence key (starts with
ITDIV1.) – from the e-mail, the thank-you page or My licenses - A Windows, Mac or Linux computer with PowerShell 7.2 or later
- Site Collection Administrator on the target site, or SharePoint Administrator to let the script create the site
- A Global Administrator or Application Administrator for one step: consenting to the Entra app
Decide these four things first – the site address in particular can't be changed later without breaking links:
| Decision | Sensible default |
|---|---|
| Site address | https://<tenant>.sharepoint.com/sites/ITDivision |
| Site type | Communication site (the template assumes one) |
| Hub | Join your intranet hub, if you have one |
| Owners | Two or three named people, not a distribution list |
Step 1 – Install the tools
Install PowerShell 7 from aka.ms/powershell (it sits alongside Windows PowerShell 5.1, which will not work). Then install PnP.PowerShell:
pwsh -Command "Install-Module PnP.PowerShell -Scope CurrentUser -Force -AllowClobber"
Check the versions – PowerShell 7.2+ and PnP.PowerShell 3.0+:
pwsh -Command "$PSVersionTable.PSVersion; (Get-Module -ListAvailable PnP.PowerShell).Version"
Step 2 – Unzip and unblock the download
- Save
IT-Division-Site-Template.zipand extract it, for example toC:\IT-Division-Template. - Windows marks downloaded files as coming from the internet, and PowerShell then refuses to run the scripts. Unblock them once:
pwsh -Command "Get-ChildItem 'C:\IT-Division-Template' -Recurse | Unblock-File"
- Open a PowerShell 7 window in that folder (
cd C:\IT-Division-Template\IT-Division-Site-Template-1.0.0). Every command below runs from there.
Step 3 – Register the Entra app (once per tenant)
PnP.PowerShell needs its own app registration in your tenant. The easiest way – replace contoso with your tenant:
pwsh -Command "Register-PnPEntraIDApp -ApplicationName 'PnP Provisioning' -Tenant contoso.onmicrosoft.com -Interactive"
Sign in, accept the consent prompt, and write down the Client ID it prints – every script needs it. If you prefer to create the app by hand, section 2 of the Implementation Guide lists the exact permissions.
Step 4 – Configure the template
Open config/site-config.json and set at least:
| Setting | Example |
|---|---|
tenant.name | contoso |
tenant.adminUrl | https://contoso-admin.sharepoint.com |
tenant.rootUrl | https://contoso.sharepoint.com |
site.url | https://contoso.sharepoint.com/sites/ITDivision |
site.title | IT Division |
site.owner | A real person, e.g. it.manager@contoso.com |
Worth reviewing too: site.timeZoneId, site.language, your brand colour under branding (see docs/07-Choosing-Colours.md) and your service-desk number in branding.footerText. Keep deployment.createSampleData at false for a production site.
site.url still contains contoso – that stops a deployment into the wrong place.Step 5 – Run the prerequisite check
It changes nothing. Fix anything marked [FAIL]:
pwsh -File "scripts/Test-ITDivisionPrerequisites.ps1" -TestConnection -ClientId "<your-client-id>"
A warning that the target site doesn't exist yet is fine if you deploy with -CreateSite.
Step 6 – Dry run, then deploy with your licence key
Always dry-run first. It prints every change without making any:
pwsh -File "scripts/Deploy-ITDivisionSite.ps1" -ClientId "<your-client-id>" -CreateSite -WhatIf
Check the site address in the output, then deploy for real with your key:
pwsh -File "scripts/Deploy-ITDivisionSite.ps1" -ClientId "<your-client-id>" -CreateSite -LicenseKey "ITDIV1.…"
Deployment takes three to six minutes; the slowest part is creating columns and content types, which SharePoint throttles. A transcript is written to logs/. Leave out -CreateSite if an administrator already created the empty site for you.
Step 7 – Check it worked
Open the site and confirm:
- The IT lists and libraries open without errors, and IT Service Requests has views such as My Queue and Unassigned
- Priority shows as a coloured pill, not plain text
- Site Settings → Site columns has an IT Division group
- The five IT Division groups exist, and an ordinary user can raise a request but can't open vendor contracts
Check the licence on the site at any time:
pwsh -File "scripts/Get-ITDivisionLicenseStatus.ps1" -SiteUrl "https://contoso.sharepoint.com/sites/ITDivision" -ClientId "<your-client-id>"
Adding or replacing a key on an existing site
To add a key to a site that's already deployed – or install a renewal key – run:
pwsh -File "scripts/Install-ITDivisionLicense.ps1" -SiteUrl "<site-address>" -ClientId "<your-client-id>" -LicenseKey "ITDIV1.…"
If the key is awkward on a command line, save it in a text file and use -LicenseKeyPath .\licence.txt instead. A renewal installed early is kept alongside the current key and takes over the day the current one ends.
After deployment
- Put people in the groups – Site Settings → Site permissions (IT Division Owners, Staff, Service Desk, Change Advisory Board, Readers).
- Finish the home page – edit the Quick Links, chart, news and people web parts, then publish.
- Build the flows –
docs/04-Power-Automate-Flows.mddescribes five flows (request acknowledgement, approvals, escalation, review reminders, contract renewals). Allow half a day. - Tell people – hand out
docs/02-User-Guide.md.
If something goes wrong
| Message | What to do |
|---|---|
| …cannot be loaded… not digitally signed | The files are still blocked – run the Unblock-File command from step 2. |
| A parameter cannot be found that matches parameter name 'ClientId' | You're in Windows PowerShell 5.1 or on an old PnP version. Use pwsh and PnP.PowerShell 3.0+. |
| AADSTS65001: …has not consented | Entra admin center → App registrations → your app → API permissions → Grant admin consent. |
| (401) Unauthorized partway through | The sign-in expired on a slow tenant. Run the same command again – it carries on safely. |
File Not Found right after -CreateSite | The new site isn't fully ready. Wait two minutes and run again without -CreateSite. |
| Licence … is issued to tenant 'x' but this is 'y' | The key belongs to another tenant. Use the key for this tenant, or contact us. |
| Licence … failed signature verification | The key was cut off or changed when copied. Copy it again from My licenses with Copy key. |
| Expired | Renew from My licenses and install the new key. Your site and data keep working meanwhile. |
Still stuck? Open a support ticket and attach the transcript from the logs/ folder.
Updated 2026-10-18
