【问题标题】:Windows AppLocker Path Wildcards for Files and Folders文件和文件夹的 Windows AppLocker 路径通配符
【发布时间】:2022-12-16 12:55:28
【问题描述】:

我有一个Java应用程序它会在用户配置文件中的以下位置生成一个临时 JNA 文件夹和一个临时 DLL 文件:

%OSDRIVE%\Users\ABC-<SOME-USER-ID>\AppData\Local\Temp\jna--881477353\jna7513918229606912988.dll

(JNA 文件夹和文件名包含随机数作为后缀和前缀“jna--" , "jna“ 分别)

JNA DLL文件“小路” 需要在应用程序控制策略中作为例外,特别是在 AppLocker -> DLL Rules -> [Users] -> Exceptions 中,以便 Java 应用程序正常运行。目前,它被 AppLocker 阻止,但是,如果我将此路径添加到 AppLocker,它将为当前用户.

现在,这对于 1 个用户来说是可以实现的,但是我有很多用户的前缀是“ABC-“和后缀”一些用户ID" 包含一个带有数字和字母的随机字符串,即许多具有前缀 " 的用户ABC-”应该能够使用此应用程序,而无需将每个用户的配置文件路径手动添加到 AppLocker 配置中。

有什么办法可以“通配符“这条进入 AppLocker 配置的路径? 例如,像这样:

%OSDRIVE%\Users\ABC-<WILDCARD>\AppData\Local\Temp\jna--<WILDCARD>\jna<WILDCARD>.dll

甚至:

%OSDRIVE%\Users\ABC-<WILDCARD>\AppData\Local\Temp\jna--<WILDCARD>\*

是否有通过通配符实现这一目标的现实方法? 我不想使用“*”在路径内,因为它将允许全部免除 AppLocker 设置的用户。

任何帮助表示赞赏。

提前致谢!

【问题讨论】:

    标签: java filesystems jna windows-server-2016 applocker


    【解决方案1】:

    您可以将 JNA 本机库预提取到所有用户的已知位置,而不是在 AppLocker 的路径中使用通配符。

    来自 JNA API 概述Loading JNA

    JNA 包括一个小型的、特定于平台的共享库,它支持所有本机访问。当首次访问 Native 类时,JNA 将首先尝试从 jna.boot.library.path 中指定的目录加载该库。如果失败并且设置了jna.nosys=false,它将回退到从系统库路径加载。最后,它将尝试从 JNA jar 文件中提取存根库,并加载它。

    这为您提供了两个选项来避免随机命名的临时文件。将其复制到:

    • 您选择的目录,并通过 -Djna.boot.library.path=C:yourpath 或在加载 JNA 之前在您的程序中调用 `System.setProperty("jna.boot.library.path", "C:yourpath")。
    • PATH 上的系统目录,例如System32,并设置jna.nosys=false。 (你也可以设置jna.nounpack=true来防止临时文件解包。)

    【讨论】:

      猜你喜欢
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2012-03-25
      • 1970-01-01
      • 1970-01-01
      • 2022-10-15
      • 2014-11-05
      • 2012-01-27
      相关资源
      最近更新 更多