获取EXEDIR以显示映射路径不是UNC,但仍具有管理员权限,nsis

获取EXEDIR以显示映射路径不是UNC,但仍具有管理员权限,nsis,nsis,uac,Nsis,Uac,我正在用NSIS创建一个安装程序 它只做两件事。创建可执行文件的快捷方式,并将dll放入system32目录中 我必须请求管理员提升以实现dll的复制到system32中 但是,当它以管理员权限运行时,映射的驱动器将消失并成为UNC路径。但我想保留映射的驱动器路径。一些互联网研究表明,当提升到管理时,UNC路径将取代用户特定的映射 如何在同一安装中实现这两个目标?映射的驱动器是每个登录会话令牌,UAC在提升时使用拆分令牌模型,因此无法解决此问题。有关更多详细信息,请参阅 在运行安装程序之前,您可

我正在用NSIS创建一个安装程序

它只做两件事。创建可执行文件的快捷方式,并将dll放入system32目录中

我必须请求管理员提升以实现dll的复制到system32中

但是,当它以管理员权限运行时,映射的驱动器将消失并成为UNC路径。但我想保留映射的驱动器路径。一些互联网研究表明,当提升到管理时,UNC路径将取代用户特定的映射


如何在同一安装中实现这两个目标?

映射的驱动器是每个登录会话令牌,UAC在提升时使用拆分令牌模型,因此无法解决此问题。有关更多详细信息,请参阅


在运行安装程序之前,您可以提升cmd.exe并重新映射驱动器…

是否有办法将其保留为用户权限,然后使用其他解决方法将文件安装到system32目录中?可能。$ExeDir与快捷方式有什么关系?目标是在运行安装的同一目录中创建文件的快捷方式。这没有意义$如果安装程序位于CD/DVD ROM上,并且在安装过程中需要复制/提取外部文件,则ExeDir非常有用。它不应该被用作任何东西的目的地,而应该只是一个源。独立安装程序.exe可以位于任何位置;%临时internet文件,甚至在您没有写访问权限的目录中…此文件保证位于正确的位置。它不是典型的安装程序。