System Restore Points

By default, AppProfileSafe creates a Windows System Restore Point before every import operation. This provides a rollback mechanism in case imported registry keys or files cause issues. The restore point is created via PowerShell's Checkpoint-Computer cmdlet with the type MODIFY_SETTINGS.


Default Behavior

Interface Behavior
GUI A restore point is created automatically before the import begins. A progress window shows the creation status. If creation fails, a dialog asks whether to continue or abort.
CLI A restore point is created automatically. If creation fails and neither --noRestorePoint nor --ignoreRestorePointLimit is specified, the CLI exits with code 2.

The restore point description includes the application names being imported, for example: "AppProfileSafe Import: Firefox, Chrome".


The 24-Hour Limit

Windows limits system restore point creation to once per 24 hours. If a restore point was created within the last 24 hours (by AppProfileSafe or any other application), creation is skipped and the import proceeds normally — the existing recent restore point provides sufficient rollback coverage.

AppProfileSafe detects this limit by querying existing restore points via PowerShell before attempting creation. The 24-hour check is performed proactively, so the PowerShell error code 0x81000101 is handled gracefully if encountered.


Prerequisites

Restore point creation requires:

  • Administrator privileges — Already required by AppProfileSafe for all operations.
  • System Restore enabled — Must be turned on in Windows System Properties → System Protection. If disabled, creation fails with an appropriate message.
  • System Restore service running — The srservice (System Restore Service) must not be disabled.


CLI Options

Parameter Effect
--noRestorePoint Skip restore point creation entirely. The import proceeds without any rollback safety net. Use this in environments where System Restore is intentionally disabled or where restore points are managed externally.
--ignoreRestorePointLimit Attempt to create a restore point, but continue the import even if creation fails (due to the 24-hour limit, disabled service, or any other reason). Useful for scheduled tasks that should not fail because of restore point issues.

Both parameters are import-only. Using them with --export causes a validation error (exit code 1).