Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Active Directory检索密码过期警告_Java_Active Directory_Jndi - Fatal编程技术网

Java 从Active Directory检索密码过期警告

Java 从Active Directory检索密码过期警告,java,active-directory,jndi,Java,Active Directory,Jndi,我有一个使用Active Directory对用户进行身份验证的系统。现在我必须使用AD的安全设置来警告用户他的密码将在几天后过期。向用户显示通知时,密码过期之前的时间段定义如中所述。 我想读取“交互式登录:提示用户在到期前更改密码”中设置的值 从AD使用javax.naming.directory.InitialDirContext。我希望这个值在广告中被记住,但我不知道如何找到它。我在寻找一组广告属性,但似乎没有人能匹配这些信息。是否可以从AD检索此值?由于此设置未直接保存在Active D

我有一个使用Active Directory对用户进行身份验证的系统。现在我必须使用AD的安全设置来警告用户他的密码将在几天后过期。向用户显示通知时,密码过期之前的时间段定义如中所述。 我想读取“交互式登录:提示用户在到期前更改密码”中设置的值
从AD使用javax.naming.directory.InitialDirContext。我希望这个值在广告中被记住,但我不知道如何找到它。我在寻找一组广告属性,但似乎没有人能匹配这些信息。是否可以从AD检索此值?

由于此设置未直接保存在Active Directory中,因此此设置更为复杂。这是组策略的一部分(考虑到它是在策略中配置的,而不是在本地计算机上),它保存在网络共享上并链接到Active Directory中

举一个简单的例子,你可以这样做:

  • 阅读预期OU并检查
    gPLink
    属性。该值类似于按优先级降序链接到选定OU的组策略对象列表。每个值都类似于:
    [LDAP://CN={31B2F340-016D-11D2-945F-00C04FB984F9},CN=Policies,CN=System,DC=internal,DC=local;0]
    。第一部分是一个GP位置,最后一部分似乎是一个标志(2意味着策略被强制执行)
  • 读取策略对象并检查
    gPCFileSysPath
    属性。这是存储策略设置的位置。它类似于
    \\internal.local\sysvol\internal.local\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}
  • 从第2点开始检查文件存储。并查找
    MACHINE\Microsoft\windowsnt\SecEdit\GptTmpl.inf
    文件。这是一个常规的inf/ini文件,请调查
    [注册表值]
    部分,找到一行内容:
    MACHINE\Software\Microsoft\windowsnt\CurrentVersion\Winlogon\PasswordExpiryWarning=4,14
    。此
    14
    是一项策略设置(在到期前14天提示更改密码)
  • 现在,要获得实际的策略结果集,事情变得复杂了。策略从父级继承,这意味着在第1点中。您应该将预期OU及其所有父OU与域节点本身一起检查,以适当的顺序评估所有
    gPLink
    s,可能还要考虑它们的WMI筛选器,无论它们是否应用,以便找出有效的值

    如果您的应用程序恰好运行在可以置于同一组策略下的Windows上,那么从注册表读取信息可能会更容易,因为系统已经应用了这一点


    在任何情况下,我都会考虑使用一些默认的过期警告周期,考虑到从AD中获取值的复杂性(前提是它是在组策略中定义的,而不仅仅是本地计算机上的默认)。由于精确解的复杂性,我想我会使用一些默认值。