All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.2.0 - 2025-11-15
- New public functions
New-PSProfileSnapshot- Creates snapshots of the current profile with optional custom names and notes metadata
Get-PSProfileSnapshot- Lists all stored snapshots with metadata, file size, hash, and creation time (sorted newest first)
Restore-PSProfileSnapshot- Restores the profile from a named snapshot or GUID with automatic safety backups
Remove-PSProfileSnapshot- Removes snapshots with support for retention policies (KeepLast, OlderThan timespan); deletes ALL associated files (backup, hash, metadata, pre-restore)
Compare-PSProfileSnapshot- Shows line-by-line differences between two snapshots or a snapshot and the current profile
Register-PSProfileSnapshotTest- Registers automatic snapshot integrity checking at profile load time
Unregister-PSProfileSnapshotTest- Removes automatic snapshot testing from the profile
Test-PSProfileSnapshot- Tests current profile integrity against the latest snapshot with detailed diff visualization
Clear-PSProfileSnapshotOrphans- Cleans up orphaned snapshot files (hash, metadata, and pre-restore safety backups) that lack corresponding backups
- Metadata storage system using JSON files for snapshot documentation
- GUID-based snapshot identification for reliable snapshot tracking
- Comprehensive Pester test suite with 28 unit tests covering all snapshot functions
- Module refactoring to use dot-sourcing pattern for cleaner function organization
- Pipeline interoperability
- Pre-restore safety backup files created before restoration operations for easy undo capability
- Pre-restore orphan cleanup as part of maintenance function
- Module version bumped from 0.1.1 to 0.2.0
- Complete redesign to snapshot-based approach
- Parameter names standardized across functions
- GUID property returned as
[guid]type instead of string for proper typing Remove-PSProfileSnapshotenhanced to remove all 4 associated file types (was only removing backup file)
Export-PSProfileHash(replaced byNew-PSProfileSnapshot)Test-PSProfileHash(replaced byTest-PSProfileSnapshot)Add-PSProfileCheck(replaced byRegister-PSProfileSnapshotTest)Remove-PSProfileCheck(replaced byUnregister-PSProfileSnapshotTest)Reset-PSProfileState(empty placeholder function)
Get-PSProfileSnapshotno longer uses Format-Table, returns raw objects for proper pipeline use- Type consistency issues with GUID parameters across functions
0.1.1 - 2025-11-11
- Refresh NuGet package due to corruption issue
- Add .gitignore for project
- Bump v0.1.1
- Add screenshot and demo recording
0.1.0 - 2025-11-11
Initial release of PSProfileWatcher module. This module provides utilities to monitor and detect changes to PowerShell profiles by maintaining hash signatures and backups.
Export-PSProfileHash- Saves a SHA256 hash snapshot and backup copy of the current user's PowerShell profileTest-PSProfileHash- Compares the current profile hash against the most recently saved hash to detect unauthorized or accidental changesAdd-PSProfileCheck- Adds a call toTest-PSProfileHashat the beginning of the user's profile to enable automatic checking on profile loadRemove-PSProfileCheck- Removes theTest-PSProfileHashcall from the user's profile- Module manifest (
PSSecurityUtils.psd1) with proper versioning and function exports - Comprehensive help documentation for all public functions