Bulk Sensitivity Label Application for Microsoft Purview
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.
- ✅ 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
| 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) |
Option 1: Full Client
# Download and install the full client (includes GUI + PowerShell)
# Download from: https://aka.ms/AIPClient
# Silent installation
PurviewInfoProtection.exe /quietOption 2: PowerShell Module Only
# Install only PowerShell cmdlets (no GUI components)
PurviewInfoProtection.exe PowerShellOnly=true /quiet# Download the project
git clone https://github.com/OlaProeis/FileLabeler.git
cd FileLabeler
# Run the application
.\FileLabeler.ps1# 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"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.
- Installation Guide - Detailed installation instructions
- Configuration Guide - Label setup and settings
- User Guide - Complete usage guide (Norwegian)
- Troubleshooting - Common issues and solutions
- Architecture - Technical overview
- Testing Guide - Test suite and quality assurance
- Contributing - Contribution guidelines
# 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)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.ps1Test Results:
- 58 unit tests
- 48 integration tests
- 100% pass rate
- Full feature coverage
- Language: PowerShell 5.1+
- GUI: Windows Forms (
System.Windows.Forms) - Labeling: Microsoft PurviewInformationProtection module
- Testing: Pester 3.4.0+
- Platform: Windows 10/11
Current Version: v1.1
Status: Production Ready
See CHANGELOG.md for complete version history.
We welcome contributions!
- Fork the project
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Microsoft Purview Information Protection team
- PowerShell community
- All contributors and testers
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Developed with ❤️ for efficient sensitivity label management