{"id":15130601,"url":"https://github.com/larrywisherman/winregops","last_synced_at":"2025-10-23T07:30:29.465Z","repository":{"id":255845747,"uuid":"853625292","full_name":"LarryWisherMan/WinRegOps","owner":"LarryWisherMan","description":"A PowerShell extension of Microsoft.Win32.RegistryKey for local and remote registry management","archived":false,"fork":false,"pushed_at":"2024-09-24T14:56:21.000Z","size":175,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T20:17:27.130Z","etag":null,"topics":["administration","registry","sysadmin","windows"],"latest_commit_sha":null,"homepage":"https://www.powershellgallery.com/packages/WinRegOps/0.3.0","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LarryWisherMan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-07T04:18:39.000Z","updated_at":"2025-01-04T10:02:27.000Z","dependencies_parsed_at":"2024-10-09T17:00:51.405Z","dependency_job_id":"5fdcafae-f6ba-4470-a06a-3b32e2f0a394","html_url":"https://github.com/LarryWisherMan/WinRegOps","commit_stats":null,"previous_names":["larrywisherman/winregops"],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LarryWisherMan%2FWinRegOps","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LarryWisherMan%2FWinRegOps/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LarryWisherMan%2FWinRegOps/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LarryWisherMan%2FWinRegOps/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LarryWisherMan","download_url":"https://codeload.github.com/LarryWisherMan/WinRegOps/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237793848,"owners_count":19367421,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["administration","registry","sysadmin","windows"],"created_at":"2024-09-26T03:02:53.292Z","updated_at":"2025-10-23T07:30:28.999Z","avatar_url":"https://github.com/LarryWisherMan.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WinRegOps\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/LarryWisherMan/ModuleIcons/main/WinRegOps.png\" \n       alt=\"WinRegOps Icon\" width=\"400\" /\u003e\n\u003c/p\u003e\n\nThe **WinRegOps** module provides a comprehensive set of PowerShell functions to\ninteract with the Windows registry, offering a simplified interface for common\noperations such as reading, writing, deleting, and exporting registry keys and\nvalues. It extends the functionality of the `Microsoft.Win32.RegistryKey` .NET\nclass and enables local and remote registry operations with enhanced error \nhandling.\n\nThis module is designed to handle registry tasks such as retrieving specific \nvalues, managing subkeys, and exporting registry keys. Whether performing \nconfiguration management tasks on local machines or managing registry settings \nacross multiple remote systems, **WinRegOps** simplifies interaction with the \nWindows registry.\n\nThe module can be used independently or as a dependency for higher-level system \nconfiguration or management modules, providing flexibility and reliability in \nregistry management operations.\n\n---\n\n## **Key Features**\n\n- **Open registry keys** on both local and remote machines using \n  `Get-OpenBaseKey` and `Get-OpenRemoteBaseKey`.\n- **Query and retrieve registry values** using `Get-RegistryValue`.\n- **Create, delete, and backup registry keys** and their subkeys with functions \n  like `New-RegistryKey`, `Remove-RegistrySubKey`, and `Backup-RegistryKey`.\n- **Export registry keys** to files using the `reg.exe` utility, with the \n  `Export-RegistryKey` and `Invoke-RegCommand` functions.\n- **Enhanced error handling** for permission issues and remote registry access.\n- **Support for multiple registry hives**, such as `HKEY_LOCAL_MACHINE` and \n  `HKEY_CURRENT_USER`.\n\n---\n\n### **Typical Use Cases**\n\n- **Automating system configuration**: Easily modify or retrieve registry \n  settings during system setup or maintenance tasks.\n- **Profile and application management**: Use the module to configure profile \n  settings or manage application-specific registry values.\n- **Registry backup and recovery**: Export critical registry keys before making \n  changes, ensuring that backups are available if needed.\n- **Remote registry management**: Seamlessly access and modify registry keys on \n  remote systems without needing manual intervention.\n\n---\n\n### **Installation**\n\nTo install **WisherTools.Helpers**, you have two options:\n\n1. **Install from PowerShell Gallery**  \n   You can install the module directly from the [PowerShell Gallery](https://www.powershellgallery.com/packages/WinRegOps)\n   using the `Install-Module` command:\n\n   ```powershell\n   Install-Module -Name WinRegOps\n   ```\n\n1. **Install from GitHub Releases**  \n   You can also download the latest release from the [GitHub Releases page](https://github.com/LarryWisherMan/WinRegOps/releases).\n   Download the `.zip` file of the release, extract it, and place it in one of\n   your `$PSModulePath` directories.\n\n---\n\n### **Usage**\n\n#### Example 1: Opening a Local Registry Key\n\nUse the `Get-OpenBaseKey` function to open a registry hive on the local machine:\n\n```powershell\n$registryKey = Get-OpenBaseKey -RegistryHive 'HKEY_LOCAL_MACHINE'\n```\n\nThis opens the `HKEY_LOCAL_MACHINE` hive on the local machine.\n\n#### Example 2: Exporting a Registry Key\n\nThe `Export-RegistryKey` function allows you to export a registry key to a file\nfor backup purposes:\n\n```powershell\nExport-RegistryKey -RegistryPath \"HKCU\\Software\\MyApp\" -ExportPath \"C:\\Backup\\MyApp.reg\"\n```\n\nThis exports the registry key `HKCU\\Software\\MyApp` to the file `C:\\Backup\\MyApp.reg`.\n\n#### Example 3: Opening a Remote Registry Key\n\nUse the `Get-OpenRemoteBaseKey` function to open a registry key on a remote\ncomputer:\n\n```powershell\n$registryKey = Get-OpenRemoteBaseKey -RegistryHive 'HKEY_LOCAL_MACHINE' -ComputerName 'RemotePC'\n```\n\nThis opens the `HKEY_LOCAL_MACHINE` hive on the remote computer `RemotePC`.\n\n#### Example 4: Removing a Registry Subkey\n\nYou can remove a registry subkey using `Remove-RegistrySubKey`:\n\n```powershell\n$key = Open-RegistryKey -RegistryPath 'HKLM\\Software'\nRemove-RegistrySubKey -ParentKey $key -SubKeyName 'MyApp' -WhatIf\n```\n\nThis will show what would happen if the `MyApp` subkey were deleted without\nactually performing the deletion.\n\n#### Example 5: Backing Up a Registry Key\n\nThe `Backup-RegistryKey` function allows you to back up a registry key to a\nspecified backup directory:\n\n```powershell\nBackup-RegistryKey -RegistryPath 'HKLM\\Software\\MyApp' -BackupDirectory 'C:\\Backups'\n```\n\nThis backs up the registry key `HKLM\\Software\\MyApp` to the `C:\\Backups` directory.\n\n---\n\n### **Key Functions**\n\n- **`Get-OpenBaseKey`**: Opens a registry hive on the local computer. Supports\n  both 32-bit and 64-bit views.\n- **`Get-OpenRemoteBaseKey`**: Opens a registry hive on a remote computer.\n  Requires the remote registry service to be running.\n- **`Get-RegistryValue`**: Retrieves a specific value from a registry key.\n- **`Export-RegistryKey`**: Exports a registry key to a `.reg` file.\n- **`Invoke-RegCommand`**: Executes a registry-related command using the `reg.exe`\n  utility. This function is used internally for registry exports and other commands.\n- **`Backup-RegistryKey`**: Backs up a registry key from a local or remote\n  computer to a specified backup file.\n- **`Remove-RegistrySubKey`**: Removes a subkey from a specified parent registry\n  key, supporting `-WhatIf` and `-Confirm` for safety.\n\n---\n\n### **Contributing**\n\nContributions are welcome! Feel free to fork this repository, submit pull\nrequests, or report issues. You can contribute by adding new features, improving\nthe existing code, or enhancing the documentation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarrywisherman%2Fwinregops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flarrywisherman%2Fwinregops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flarrywisherman%2Fwinregops/lists"}