Spawning powershell.exe from a plugin (Tools & Plugins) - ok for submission?

Working on a small editor plugin that needs to survive the editor closing

  • basically it triggers a rebuild-and-relaunch flow (close editor, run the build, reopen the project). Since the helper process obviously can’t live inside the process that’s shutting down, I’m spawning a detached PowerShell script from C++ (FPlatformProcess::CreateProc calling powershell.exe, with -ExecutionPolicy Bypass scoped to just that one call, not touching the system policy).

The script itself is a plain .ps1 text file shipped in Resources/, not a compiled exe, so I think that’s fine re: 4.3.6.1.e (no EXE/MSI distribution) - but I’m not 100% sure if spawning powershell.exe with a bypass flag from plugin code is something that gets flagged during review, automated or manual. Couldn’t find anything in the Technical Requirements doc that covers this specific case.

Also been going back and forth on whether the bypass flag is even strictly needed. A user downloading the plugin as a zip (from Fab or GitHub) will likely get the file marked with the NTFS Zone.Identifier alternate data stream (the “this came from the internet” flag Windows adds), which is exactly what triggers the “not digitally signed, won’t run” wall on stricter ExecutionPolicy settings. I could strip that stream in C++ before invoking the script (same thing Unblock-File does under the hood - just a DeleteFileW on “script.ps1:Zone.Identifier”), which handles that specific case. But it doesn’t help on a machine with ExecutionPolicy set to Restricted (no MOTW involved at all, blocks everything regardless), so I’d still want -ExecutionPolicy Bypass as a fallback rather than relying on the unblock alone. Curious if anyone’s found a cleaner way to guarantee a bundled script just runs regardless of the end user’s policy, without the “Bypass” flag looking suspicious to a scanner.

Anyone know if this is a normal/accepted pattern? Or is there a recommended way of doing this kind of “outlives the editor” process without it looking sketchy to a reviewer?

(Found Windows Native Toolkit on Fab which does something similar with an ExecutePowerShell() node + UAC elevation, so I’m guessing it’s fine, but would rather get a straight answer before I build more on top of it)

Thanks!