Collaborate, Innovate, Automate

Create Folder Structure

This PnP PowerShell script automates the creation of standardized folder structures in SharePoint Online document libraries. Build consistent organizational hierarchies to improve content management and user navigation.

Purpose

This script helps you:

Prerequisites

PowerShell Script

# Script will be added here
# Connect to SharePoint Online site
# Connect-PnPOnline -Url "https://yourtenant.sharepoint.com/sites/yoursite" -Interactive

# Your PnP PowerShell script for creating folder structures will go here

JSON Configuration File

{
  "folderStructure": {
    "targetLibrary": "Documents",
    "createPermissions": "Inherit",
    "folderHierarchy": [
      {
        "name": "Projects",
        "description": "Project documentation and deliverables",
        "subFolders": [
          {
            "name": "2024 Projects",
            "subFolders": [
              {"name": "Project Alpha"},
              {"name": "Project Beta"},
              {"name": "Project Gamma"}
            ]
          },
          {
            "name": "2025 Projects",
            "subFolders": [
              {"name": "Planning"},
              {"name": "Active"},
              {"name": "Completed"}
            ]
          }
        ]
      },
      {
        "name": "Templates",
        "description": "Document templates and standards",
        "subFolders": [
          {"name": "Proposals"},
          {"name": "Reports"},
          {"name": "Presentations"}
        ]
      },
      {
        "name": "Archive",
        "description": "Historical documents and records",
        "subFolders": [
          {"name": "2023"},
          {"name": "2022"},
          {"name": "2021"}
        ]
      },
      {
        "name": "Policies",
        "description": "Organizational policies and procedures",
        "subFolders": [
          {"name": "HR Policies"},
          {"name": "IT Policies"},
          {"name": "Financial Policies"}
        ]
      }
    ]
  },
  "folderSettings": {
    "setUniquePermissions": false,
    "inheritFromParent": true,
    "defaultContentType": "Document",
    "enableVersioning": true
  }
}

Usage Notes

Best Practices