Windows 7 无法安装到Windows 7上的c:\Program文件中
我有一个使用Izpack用Java编写的安装程序。它在Windows XP上正常工作,但在Windows 7上无法写入c:\Program文件。奇怪的是,作为运行此安装程序的用户,我可以在c:\program files下创建文件夹,但不能从安装程序本身创建文件夹Windows 7 无法安装到Windows 7上的c:\Program文件中,windows-7,permissions,Windows 7,Permissions,我有一个使用Izpack用Java编写的安装程序。它在Windows XP上正常工作,但在Windows 7上无法写入c:\Program文件。奇怪的是,作为运行此安装程序的用户,我可以在c:\program files下创建文件夹,但不能从安装程序本身创建文件夹 我缺少什么?为了写入此路径,安装程序需要请求并被授予以管理员权限运行 对于Java: 以admin的身份运行CMD提示符或以admin的身份运行powershell,并导航到JAVA的Bin dir…,然后运行JAVA.exe-jar
我缺少什么?为了写入此路径,安装程序需要请求并被授予以管理员权限运行 对于Java:
以admin的身份运行CMD提示符或以admin的身份运行powershell,并导航到JAVA的Bin dir…,然后运行JAVA.exe-jar#jar文件的完整路径#,这将获得权限您需要以admin的身份运行安装程序。只有管理员才能写入程序文件目录。通常,当用户试图进行更改时,UAC会询问您是否确定。对于一个程序来说,这不一定是正确的。您是否尝试过使用Run As。。。管理员选项?添加
<run-privileged/>
您所说的“作为运行此安装程序的用户”与“不是来自安装程序本身”是什么意思。安装程序是如何调用自己的?我的意思是手动,即使用资源管理器,我可以在c:\program files下创建文件和目录,但通过编程,即通过此Java安装程序,我无法最终解决问题,让安装程序按照下面的建议请求适当的权限升级。我以管理员身份运行它,请参阅上文了解更多详细信息在Windows Vista和7中以管理员身份运行并不意味着在Windows XP中以管理员身份运行。您仍然可以为UAC授予软件特权。而且,这些特权是不可传递的。如果您的主机程序已被授予UAC访问权限,则默认情况下,该子程序不会。我正在以管理员身份运行应用程序。正如我已经提到的,我可以作为运行安装程序的用户在c:\program files下创建文件和目录,但是安装程序不能!作为管理员用户和以“管理员”身份运行应用程序之间有很大区别。右键单击安装程序,您将看到一个sheild图标,旁边显示“以管理员身份运行”。选择该选项。以admin或powershell的身份运行CMD提示符,并导航到JAVA的Bin dir…,然后运行JAVA.exe-jar#jar文件的完整路径#这将获得它的权限。由于安装程序是一个.jar文件,我不能使用“Run as”,但是,这不是问题所在-我以管理员身份运行它如果您以管理员身份登录,这并不意味着您运行的应用程序将获得管理员权限。更具体地说,您不是以管理员身份运行。您以特权用户身份运行,可以通过UI确认提升为管理员。例如,每当您在资源管理器中创建文件夹时,您都会收到UAC确认提示,询问是否可以这样做。没有办法解决这个问题(除了禁用UAC),也没有神奇地将它强加在所有应用程序上。你的应用程序必须知道这个问题,并在你需要“真正的管理员”访问权限时请求系统提升(弹出UAC对话框并询问用户是否同意)。请突出显示与古老的、被普遍接受的答案相比的额外见解。除此之外,只有代码的答案缺乏被认为是好答案的解释。
<info>
<appname>IzPack</appname>
<appversion>4.2.0</appversion>
<authors>
<author email="" name="Julien Ponge (project founder)"/>
<author email="" name="The fantastic IzPack developers and contributors"/>
</authors>
<url>http://izpack.org/</url>
<javaversion>1.5</javaversion>
<requiresjdk>no</requiresjdk>
<run-privileged condition="izpack.windowsinstall.vista|izpack.macinstall"/>
<summarylogfilepath>$INSTALL_PATH/installinfo/Summary.htm</summarylogfilepath>
</info>