MK Nepal Solutions

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:

DecisionSensible default
Site addresshttps://<tenant>.sharepoint.com/sites/ITDivision
Site typeCommunication site (the template assumes one)
HubJoin your intranet hub, if you have one
OwnersTwo 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

  1. Save IT-Division-Site-Template.zip and extract it, for example to C:\IT-Division-Template.
  2. 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"
  1. 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:

SettingExample
tenant.namecontoso
tenant.adminUrlhttps://contoso-admin.sharepoint.com
tenant.rootUrlhttps://contoso.sharepoint.com
site.urlhttps://contoso.sharepoint.com/sites/ITDivision
site.titleIT Division
site.ownerA 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.

The scripts refuse to run while 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.

The script does not stop at the first problem: every stage reports, and you get a list of warnings and failures at the end. Re-running is safe – existing lists keep their data and nothing is duplicated.

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

  1. Put people in the groups – Site Settings → Site permissions (IT Division Owners, Staff, Service Desk, Change Advisory Board, Readers).
  2. Finish the home page – edit the Quick Links, chart, news and people web parts, then publish.
  3. Build the flows – docs/04-Power-Automate-Flows.md describes five flows (request acknowledgement, approvals, escalation, review reminders, contract renewals). Allow half a day.
  4. Tell people – hand out docs/02-User-Guide.md.

If something goes wrong

MessageWhat to do
…cannot be loaded… not digitally signedThe 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 consentedEntra admin center → App registrations → your app → API permissions → Grant admin consent.
(401) Unauthorized partway throughThe sign-in expired on a slow tenant. Run the same command again – it carries on safely.
File Not Found right after -CreateSiteThe 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 verificationThe key was cut off or changed when copied. Copy it again from My licenses with Copy key.
ExpiredRenew 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.

Was this article helpful?

Updated 2026-10-18