electron 电子制造商:在管理员用户appdata中以管理员安装身份运行,而不是当前用户

f45qwnt8  于 2023-06-27  发布在  Electron
关注(0)|答案(1)|浏览(207)

我今天在$LocalAppdata文件夹中安装了一个电子应用程序。我今天的配置如下:

"nsis": {
    "oneClick": true,
    "perMachine": false,
    "createDesktopShortcut": true,
    "createStartMenuShortcut": true,
    "runAfterFinish": false,
    "include": "installer.nsh"
}

在我的installer.nsh文件中:

!macro preInit
  SetRegView 64
    WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppdata\Programs\My App"
    WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppdata\Programs\My App"
 SetRegView 32
    WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppdata\Programs\My App"
    WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "$LocalAppdata\Programs\My App"
!macroend

如果我以普通用户(或管理员用户)的身份运行安装程序,一切都正常,应用程序安装在"$LocalAppdata\Programs\My App"下没有任何问题。
但在正常用户的情况下,右键单击安装程序,然后选择“以管理员身份安装”,应用程序将安装在管理员帐户的$LocalAppdata内,而不是当前用户。我试图通过将$LocalAppdata替换为$PROFILE来找到解决方案,但似乎无法解决我的问题。
我可以有帮助,请使其工作,并使用当前用户$LocalAppdata,而不是管理员谁给予的权利?
有没有办法通过.nsh脚本来实现?
先谢谢你了!

wpcxdonn

wpcxdonn1#

这是根据微软的设计。非管理员用户无法提升自己,他们必须在UAC对话框中选择一个管理员,新提升的进程将以该管理员(其配置文件和HKCU)的身份运行。

相关问题