Skip to content

OlaProeis/FileLabeler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FileLabeler

Bulk Sensitivity Label Application for Microsoft Purview

PowerShell Platform License Stars Issues


🎯 Overview

FileLabeler is a PowerShell-based GUI application that enables users to quickly apply Microsoft Purview sensitivity labels to multiple files simultaneously. The application preserves original file dates and provides a modern, user-friendly interface for bulk labeling tasks.

Perfect for: IT administrators, compliance teams, and security professionals managing large volumes of sensitive documents.


Key Features

  • Bulk Labeling - Label multiple files at once
  • Date Preservation - Preserves original file timestamps
  • Folder Import - Import entire folders with subdirectories
  • Drag-and-Drop - Drag files directly from Windows Explorer
  • Smart Preview - Intelligent pre-apply analysis with warnings
  • Detailed Statistics - Comprehensive results and reporting
  • Access Control - Full support for protection settings
  • Downgrade Handling - Automatic justification prompts when required
  • Async Operations - Responsive UI for large datasets (500+ files)
  • Multi-Language Support - Norwegian and English UI
  • Individual File Removal - Remove files from selection with right-click or Delete key
  • Comprehensive Testing - 106 tests, 100% pass rate

Quick Start

🚀 Quick Start

Requirements

Component Requirement
Operating System Windows 10/11 (64-bit)
PowerShell 5.1 or later (included with Windows)
Microsoft Purview Client Required for label operations
License Microsoft 365 E3 or higher (for manual labeling)

Installation

Prerequisites: Install Microsoft Purview Information Protection Client

Option 1: Full Client

# Download and install the full client (includes GUI + PowerShell)
# Download from: https://aka.ms/AIPClient

# Silent installation
PurviewInfoProtection.exe /quiet

Option 2: PowerShell Module Only

# Install only PowerShell cmdlets (no GUI components)
PurviewInfoProtection.exe PowerShellOnly=true /quiet

Method 1: Run as Script

# Download the project
git clone https://github.com/OlaProeis/FileLabeler.git
cd FileLabeler

# Run the application
.\FileLabeler.ps1

Method 2: Convert to EXE

# Install PS2EXE
Install-Module ps2exe -Scope CurrentUser

# Convert to executable
Invoke-ps2exe -inputFile .\FileLabeler.ps1 `
              -outputFile .\FileLabeler.exe `
              -noConsole `
              -title "FileLabeler" `
              -version "1.1.0.0"

Configuration

Create labels_config.json with your organization's labels:

[
  {
    "DisplayName": "Public",
    "Id": "your-label-guid-here",
    "Rank": 0
  },
  {
    "DisplayName": "Internal",
    "Id": "your-label-guid-here",
    "Rank": 1
  },
  {
    "DisplayName": "Confidential",
    "Id": "your-label-guid-here",
    "Rank": 2
  }
]

See Configuration Guide for details on obtaining label IDs.


Documentation

For Users

For Developers

Other Resources


Usage Example

# 1. Start the application
.\FileLabeler.ps1

# 2. Select files
#    - Click "Velg filer..." (Select files)
#    - Or drag files from Explorer
#    - Or select folder with "Velg mappe..." (Select folder)

# 3. Select label
#    - Click desired label button

# 4. Review and apply
#    - Click "Påfør etikett (bevar datoer)" (Apply label - preserve dates)
#    - Review summary
#    - Confirm application

# 5. Export results
#    - Click "Eksporter til CSV" (Export to CSV)

Testing

FileLabeler has comprehensive test coverage:

# Run all tests
.\tests\run_tests.ps1

# Or run unit tests directly
Invoke-Pester -Path .\tests\FileLabeler.Tests.ps1

# Run integration tests
.\tests\run_integration_tests.ps1

Test Results:

  • 58 unit tests
  • 48 integration tests
  • 100% pass rate
  • Full feature coverage

Tech Stack

  • Language: PowerShell 5.1+
  • GUI: Windows Forms (System.Windows.Forms)
  • Labeling: Microsoft PurviewInformationProtection module
  • Testing: Pester 3.4.0+
  • Platform: Windows 10/11

Version

Current Version: v1.1
Status: Production Ready

See CHANGELOG.md for complete version history.


Contributing

We welcome contributions!

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.


License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments

  • Microsoft Purview Information Protection team
  • PowerShell community
  • All contributors and testers

Support


Developed with ❤️ for efficient sensitivity label management

About

Bulk sensitivity label application for Microsoft Purview - PowerShell GUI tool

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published