【问题标题】:Powershell filter computers with no LAPS password set未设置 LAPS 密码的 Powershell 过滤器计算机
【发布时间】:2021-08-19 09:59:47
【问题描述】:

我最近在我们的域上部署了 LAPS(本地管理员密码服务),现在想创建一个脚本,我可以运行它来查找尚未与 AD 通信的机器,以安装组策略扩展并更新其本地管理员密码。

如果我运行,我可以看到:

Get-AdComputer -Identity Computer_Name -Properties *

我看到一台已更新密码并显示两个属性的计算机:

ms-Mcs-AdmPwd
ms-Mcs-AdmPwdExpirationTime

我的powershell不是很好,所以我可能语法错误,但是在尝试运行时:

Get-AdComputer -Filter {ms-Mcs-AdmPwd -ne ''}

我收到一条错误消息:

The search filter cannot be recognised

谁能告诉我如何过滤这两个属性?我是否必须通过管道输入 Where-Object 或者甚至使用 LDAP 过滤器?

【问题讨论】:

    标签: powershell active-directory


    【解决方案1】:

    最合适的方法是使用 LDAP 过滤器而不是 PowerShell 过滤器。 LDAP 过滤器可以测试是否存在,而不是与可能存在的值进行比较(即使它只是远程可能的)。

    要获取带有密码的计算机列表:

    Get-ADComputer -LDAPFilter "(ms-mcs-AdmPwd=*)"
    

    要查找没有一台的计算机:

    Get-ADComputer -LDAPFilter "(!(ms-mcs-AdmPwd=*))"
    

    如果您想搜索特定的 OU 等,可以将其与 Get-ADComputer 的其他参数结合使用。

    【讨论】:

      【解决方案2】:

      好的,所以我认为我的问题与我寻找尚未设置的属性有关。

      我怀疑可能有一种更优雅的过滤方式,但下面的方法对我来说很好:

       Get-ADComputer -Filter {ms-Mcs-AdmPwd -notlike "*"}
      

      【讨论】:

        【解决方案3】:

        如果我运行命令

        Get-ADComputer -Filter {ms-Mcs-AdmPwd -notlike '<not set>'}

        在我的 2016 年 DC 上,我得到了一个包含所有设置了密码的计算机的列表。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-06-28
          相关资源
          最近更新 更多