Skip to content

futuremotiondev/powershell-fmregjump

Repository files navigation

FMRegJump

FMRegJump is a Windows automation tool that launches RegEdit or Registry Finder and jumps straight to a registry key determined by either a file extension or a named preset. Instead of memorizing long HKEY_CLASSES_ROOT paths or clicking through the registry tree, you right-click a file, folder, or drive and land exactly where you need to be.

Under the hood, FMRegJump resolves the target key from one of two inputs:

  • -InputFile — the file's extension is mapped to HKCR\SystemFileAssociations\<ext>\Shell (or HKCR\<ext>\Shell), which is where per-extension context-menu verbs live.
  • -PresetDestination — a friendly name like DirectoryBackground, AllFiles, or EnvVariablesSystem is mapped to its canonical hive path.

Why it's a great automation tool:

  • Context-menu friendly — the script is designed to be wired into Explorer context menus so right-clicking a file, a folder, a drive, or empty space opens the exact registry key that controls that object's shell behavior. This makes adding, removing, and auditing custom context-menu verbs dramatically faster.
  • Two-tool aware — works with either the built-in RegEdit or the far more capable Registry Finder, selected via -AppToUse.
  • Safe by default — validates input mutual exclusivity, verifies the config file exists, checks that Registry Finder's path resolves to a real .exe or .com, and walks parent keys so a missing leaf won't crash the launcher.
  • ps2exe-compatible — resolves its own script directory correctly whether it's running as a .ps1 script or a compiled .exe, so the companion FMRegJumpConfig.toml can live beside the binary.
  • Single-instance mode — pass -SingleInstance to reuse an existing RegEdit or Registry Finder window instead of opening a new one.

If you spend any time authoring shell verbs (HKCR\*\shell\...), tweaking the DirectoryBackground context menu, or inspecting per-user vs. per-machine environment variables, FMRegJump turns a multi-click registry scavenger hunt into a single right-click.

Manual Installation

  1. Clone the repository:

    git clone https://github.com/Futuremotion/powershell-fmregjump.git
    cd powershell-fmregjump
  2. Install the ps2exe module in Windows PowerShell (NOT PowerShell 7 — Win-PS2EXE is a WinForms GUI that only launches reliably under the Windows PowerShell host):

    Install-Module -Name ps2exe -Scope CurrentUser

    Module page: ps2exe on PowerShell Gallery

  3. Add the modules directory to your User PATH environment variable so the Win-PS2EXE launcher is resolvable from any shell:

    %USERPROFILE%\Documents\WindowsPowerShell\Modules
    
  4. Restart the shell (close and reopen Windows PowerShell) so the updated PATH is picked up.

  5. Launch the GUI:

    Win-PS2EXE

ps2exe GUI Configuration

Fill in the GUI as follows:

  • Source file: path to FMRegJump.ps1 (for example X:\powershell-fmregjump\FMRegJump.ps1)
  • Target file: path and filename for the binary you want to produce
  • Recommended target: the same directory as FMRegJump.ps1, with the extension changed to .exe (so FMRegJump.exe ends up right next to FMRegJumpConfig.toml)

Ensure the following checkboxes are enabled:

  1. Compile a graphic windows program (parameter -noConsole)
  2. Suppress output (-noOutput)
  3. Suppress error output (-noError)
  4. Require administrator rights at runtime (parameter -requireAdmin)

Click Compile and confirm that FMRegJump.exe was produced in the target directory.

Dependencies

FMRegJump defaults to Registry Finder because it supports command-line navigation (--navigate), multi-instance management, bookmarks, and a far better search experience than RegEdit. It is strongly recommended that you download it before using FMRegJump:

If you prefer the built-in editor, you can always pass -AppToUse RegEdit and skip Registry Finder entirely — in that case the config file is still read but the RegistryFinderPath value is not required.

Configuration File

FMRegJump reads a small TOML file named FMRegJumpConfig.toml. This file must sit side-by-side with the compiled FMRegJump.exe (or with FMRegJump.ps1 when running as a script). The tool resolves its own directory at launch and expects the config next to itself — if it isn't there, FMRegJump will refuse to run and display an error dialog.

Example FMRegJumpConfig.toml:

[FMRegJumpConfig]
RegistryFinderPath = 'C:/Tools/Registry Finder/RegistryFinder.exe'

Keys:

  • RegistryFinderPath — absolute path to your Registry Finder executable. Must end in .exe (preferred, GUI subsystem, no console window) or .com (legacy, spawns a console window). FMRegJump validates both the extension and the existence of the file before launching anything.

This file is only strictly required when -AppToUse RegistryFinder (the default) is used. If you exclusively use -AppToUse RegEdit you can leave the value as-is, but the config file must still exist.

Parameters and Usage

The most optimal workflow is to compile FMRegJump.exe once, drop it into a stable location (for example C:\Tools\FMRegJump\) alongside FMRegJumpConfig.toml, and then register context-menu entries that call it with the appropriate arguments.

Parameters

  • -InputFile <path> — a file or directory whose extension determines the target registry key. Mutually exclusive with -PresetDestination.
  • -InputFileRoot <SystemFileAssociations|HKEY_CLASSES_ROOT> — which hive to resolve the extension under. Defaults to SystemFileAssociations (the modern, per-extension shell store).
  • -PresetDestination <name> — jump straight to a well-known key. One of: DirectoryBackground, Directory, DesktopBackground, AllFileSystemObjects, AllFiles, Drive, MyComputer, EnvVariablesCurrentUser, EnvVariablesSystem, Folder.
  • -AppToUse <RegistryFinder|RegEdit> — which editor to launch. Defaults to RegistryFinder.
  • -SingleInstance — reuse an existing window instead of opening a new one. Without this switch, Registry Finder is launched with --multiInst and RegEdit with -m.

Usage Examples

Jump to the shell verbs for the extension of a specific file:

.\FMRegJump.exe -InputFile "C:\path\to\example.txt"

Jump to the Directory Background shell key (the menu you see when right-clicking empty space inside a folder):

.\FMRegJump.exe -PresetDestination DirectoryBackground

Inspect the system-wide environment variables key:

.\FMRegJump.exe -PresetDestination EnvVariablesSystem

Open the all-files shell verbs in RegEdit (instead of Registry Finder), reusing an existing window:

.\FMRegJump.exe -PresetDestination AllFiles -AppToUse RegEdit -SingleInstance

Context-menu wiring example — register "Jump to shell verbs" for every file:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\FMRegJump]
@="Jump to shell verbs"
"Icon"="C:\\Tools\\FMRegJump\\FMRegJump.exe"

[HKEY_CLASSES_ROOT\*\shell\FMRegJump\command]
@="\"C:\\Tools\\FMRegJump\\FMRegJump.exe\" -InputFile \"%1\""

Roadmap

  • Multi-key jumping — accept an array of registry keys and open each one in its own Registry Finder / RegEdit window in a single invocation.
  • Clipboard-driven jumping — read the clipboard and jump to one or multiple registry keys parsed from its contents, so copy-paste from logs, forums, or documentation becomes a one-step navigation.
  • SYSTEM elevation — add an option to launch RegEdit or Registry Finder under the NT AUTHORITY\SYSTEM account (via a scheduled task or service shim) so protected keys like HKLM\SECURITY and HKLM\SAM can be inspected directly.
  • Context-menu installer — an automation script that registers and removes FMRegJump entries under the file, directory, and directory background shell keys, so users don't have to hand-craft .reg files.

About

A powerful PowerShell script enabling you to navigate the Windows registry with supreme speed.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors