如何让我的Java程序仅在需要时提升为管理员权限?

时间:2016-05-11 19:24:07

标签: java elevated-privileges

我有以下代码:

try {
    Files.copy(srcFile.toPath(), destFile.toPath(), copyOptions);
} catch (IOException exc) {
    System.out.println("IOException on copy: " + exc.getMessage());
    System.out.println("Files.copy(" + srcFile.toPath() + ", " + destFile.toPath() + ", copyOptions)");
    System.out.println(srcFile.toPath() + " readable is " + srcFile.canRead());
}

某些PDF文件失败。这些特定PDF的某些内容需要管理员权限才能复制它们。 (它们是可读的,目标文件夹是可写的;如果我尝试在命令提示符中复制,我可以复制UAC质询。)

我想尽可能原子地提升权限 - 而不是我的整个程序。理想情况下,我会遇到第一个这样的访问拒绝问题,提示用户是否要我复制它,无论如何,在是/否/始终/从不选择对话框中。

如果有人愿意,我可以编写一个小程序来完成上述Files.copy,我也许能够提供其中一个这些笨拙的PDF - 尽管我正在与之合作的是一个客户,所以我不得不寻找别的地方或者遇到很大麻烦(例如,使用PDFbox)来模糊文本。

我意识到有可能有些信息说明为什么有些PDF会这样做,而且我会承认我在这方面一无所知,但这对我来说实在是无关紧要,除非 - 这将是一个很大的优势,但是我仍然需要特权解决方案 - 我可以检测到特定文件有这个"你不能复制我"方面。

感谢您的帮助!

好吧,显然这些PDF文件没什么神奇之处,它们只是用一些限制性权限创建的:

enter image description here

0 个答案:

没有答案