Quanto a isso ...
the goal is to simply stop the window from closing when I run it from the context menu
Todos nós sabemos que a razão pela qual isso acontece é que o menu de contexto está executando o powershell.exe e seu script é um argumento. Então, é para fechar. Você não pode fazer o que está procurando no menu de contexto sem alterar a maneira como o menu de contexto executa a chamada para o host de script.
Claro que você pode entrar no registro e hackeá-lo para mudar isso. No entanto, para lidar rapidamente com, pelo menos, esta janela próxima, clique com o botão direito do mouse em um .ps1, sem reg hacking. Tente isso.
1 - Crie um novo atalho na área de trabalho e coloque o abaixo na caixa Destino.
%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -noexit
2 - Dê o nome do atalho PowerShell, ou o que for
3 - Copie para sua pasta SendTo: C: \ Usuários \ SeuNomeUsuário \ AppData \ Roaming \ Microsoft \ Windows \ SendTo
Clique com o botão direito do mouse no seu script, selecione SendTo e selecione seu atalho.
Claro, é mais um clique, mas muito simples de implementar contra a gravação de material adicional.
Assim como na barra de tarefas, você pode praticamente colocar o que quiser na pasta SendTo para lidar com um tipo de arquivo no qual você gostaria de trabalhar / com / executar.
Quanto a isso ...
I would prefer to limit it to a specific subset of keys (or even just a single key, such as the enter key)
Eu sinceramente não tenho certeza do ponto (como você teria que mudar a mensagem e dizer ao usuário qual tecla pressionar, já que você está mudando o padrão), eu tenho certeza que você tem suas razões, mas claro que vai exigir um pouco mais de trabalho e eu teria que brincar com ele primeiro.