Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Remove-UserProfilesFromRegistry #7

Merged
merged 23 commits into from
Sep 24, 2024

Conversation

LarryWisherMan
Copy link
Owner

Pull Request

Pull Request (PR) description

Added the Public function to remove registry values. This includes updates to how environment variables are used by default and safeguards to prevent crucial profiles from being deleted. Upon removal, the profile registry item is backed up in a JSON file. A restore function will later use this to help restore registry items if accidentally removed. I'm terrible and it's a big PR - will try to keep down in the future.

Added

Functions

  • Remove-UserProfilesFromRegistry: Added a new function to remove user profiles
    from the Windows registry based on SIDs, Usernames, or UserProfile objects.

    • Supports three parameter sets: UserProfileSet, SIDSet, and UserNameSet.

    • Can be run in AuditOnly mode, where no actual deletion is performed, or
      in deletion mode where profiles are removed.

    • Includes a Force switch to bypass confirmation prompts and a ComputerName
      parameter for targeting remote computers.

    • Graceful error handling and logging for cases where the registry key cannot
      be opened or profiles cannot be processed for specific computers.

Environment Variables

  • $env:WinProfileOps_IsAdmin: A boolean value that determines if the
    current user has administrative privileges. This is set by checking the user’s
    security role against the built-in Administrator group using Windows security principals.

  • $env:WinProfileOps_RegistryPath: Specifies the registry path used to
    manage user profiles. Default value: "SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList".

  • $env:WinProfileOps_RegistryHive: Defines the registry hive to use,
    which is set to LocalMachine by default.

  • $env:WinProfileOps_RegBackUpDirectory: Specifies the directory where
    registry backups are stored. Default value: "C:\LHStuff\RegBackUp".

  • $env:WinProfileOps_ProfileFolderPath: The profile folder path,
    defaulting to the system drive's Users folder. Example: "C:\Users".

@LarryWisherMan LarryWisherMan added the enhancement New feature or request label Sep 24, 2024
@LarryWisherMan LarryWisherMan self-assigned this Sep 24, 2024
@LarryWisherMan LarryWisherMan merged commit ac68f80 into main Sep 24, 2024
4 checks passed
@LarryWisherMan LarryWisherMan deleted the fix/FolderName-ProcessFolders branch September 24, 2024 08:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant