【问题标题】:Installation failed due to low priviledge on Win8Win8权限低导致安装失败
【发布时间】:2012-09-25 10:32:11
【问题描述】:

我正在使用 Java 代码在 Win8 上安装 EXE 程序,方法是在 CML 中执行此命令“java -jar installapp.jar”。 “以管理员身份运行”没有打开命令行窗口,但当前用户是管理员组的成员。

但是,在同一个 CML 窗口中,如果我直接安装 EXE,它可以工作。只是在Java执行安装时失败。

那么有人可以给我小费吗?

非常感谢, 迈克尔

【问题讨论】:

    标签: java installation uac


    【解决方案1】:

    如果不通过 UAC 提升,则无法正确安装包含写入系统保护区域的应用程序。这意味着 CML 窗口必须以管理员身份运行

    Java 可执行文件标有请求asInvoker 权限的清单。因此,如果父进程未提升,则该进程将从删除管理员令牌开始。这就是 UAC 的重点:即使您是管理员组的成员,在您提升​​之前也无法获得完整的、无限的权限。

    “直接安装exe”是什么意思?

    【讨论】:

    • 感谢您的回复! “直接安装 exe”是指直接在 CML 中执行 appinstall.exe,而不是调用链“CML->Java->Jar 文件->appinstall.exe”。现在我已经提升了权限并且可以进行安装,但是,我不想以管理员身份运行,而只是提升了可以连接套接字、安装应用程序、编写系统文件的特定权限。 Microsoft 是否提供任何方法来实现这种细粒度的访问控制?谢谢
    • 有点奇怪……而且如果你直接在CML中运行appinstall.exe,它就可以写入Program Files。我的猜测是,在这种情况下,appinstall.exe 是在启用虚拟化的情况下运行的,并且实际上写入VirtualStore 而不是预期的位置。
    • 细粒度访问控制?是和不是。您可以配置您的系统,使用户,甚至是管理员,只能访问系统的特定部分。但是,作为管理员,可以覆盖这些权限。通常您可以连接到一个套接字(除非防火墙拒绝)。但是要在所有用户或系统级别安装应用程序,您必须提升以拥有完整的管理员权限。无需为每个用户安装提升。不鼓励编写系统文件,您不应该这样做:您可能会破坏系统或其他应用程序。
    猜你喜欢
    • 1970-01-01
    • 2015-12-13
    • 2021-11-30
    • 2013-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多