加入域的 Windows 10 计算机是否具有用于查询 AD/LDAP 的内置工具?

sta*_*tor 5 windows-domain active-directory ldap windows-10

我在加入域的 Windows 10 计算机上,想要查询我自己的用户帐户的属性。有没有内置的工具可以做到这一点?

它不是管理员计算机,并且我没有安装 RSAT。我的电脑好像没有:

  • dsget
  • dsquery
  • ldapsearch
  • ldp
  • PowerShellActiveDirectory模块

还有其他内置工具吗?我的意思是,一定有什么东西,因为至少我的计算机能够查询 AD,但是有没有我也可以作为用户使用的工具?

use*_*686 7

Windows 具有可供程序使用的ADSI接口,它支持常规 LDAP 访问。

\n

System.DirectoryServicesPowerShell 可以通过类型访问 ADSI :

\n
    \n
  • 类型(别名为)表示特定条目 \xe2\x80\x93 当给定 LDAP 对象时,其属性直接对应于 LDAP 条目的属性[System.DirectoryServices.DirectoryEntry] [ADSI]

    \n
    $obj = [adsi] "LDAP://CN=foo,OU=bar,DC=example,DC=com"\necho $obj.displayName\n$obj | fl *\n
    Run Code Online (Sandbox Code Playgroud)\n

    您不需要指定服务器 \xe2\x80\x93 Windows 将默认使用 AD 目录。(该LDAP://部分区分大小写;这是ADSI 绑定字符串,而不是 URL。)

    \n
  • \n
  • [System.DirectoryServices.DirectorySearcher] 类型(别名为[ADSISearcher])表示 LDAP搜索查询,如果您还不知道,可以使用它来查找您的用户 DN:

    \n
    $qry = [adsisearcher] "(sAMAccountName=stackprotector)"\n$qry.FindAll().Path\n
    Run Code Online (Sandbox Code Playgroud)\n

    从某些或其他 MSDN 文档页面复制的更详细示例(在 AD 中,搜索anr伪属性是 GUI 工具解析名称的方式):

    \n
    $qry = New-Object DirectoryServices.DirectorySearcher\n$qry.Filter = \'(&(objectCategory=person)(anr=Stack))\'\n$qry.SearchRoot = \'LDAP://OU=Laptops,OU=Computers,DC=contoso,DC=com\'\n$qry.FindAll()\n
    Run Code Online (Sandbox Code Playgroud)\n
  • \n
\n

但 ADSI 最初是一个 COM+ API,早于 PowerShell 甚至 .NET,因此 Microsoft 当然有从 VBScriptADODB 中使用它的示例(甚至从 ASP 中,但它在这里没有帮助)。

\n
\n

您还应该能够安装和使用一些 RSAT 工具,而无需任何特殊权限(除了本地 Windows 管理员进行安装之外)。默认情况下,该目录对任何经过身份验证的客户端开放。

\n

您可以将第三方 LDAP 客户端与 AD \xe2\x80\x93 一起使用,域控制器将使用您的用户凭据接受身份验证,这是大多数 Windows GUI 工具首先在 AD 中查找数据的方式(计算机加入帐户为仅某些任务需要)。但是,最好使用通过 GSSAPI 或 GS​​S-SPNEGO 支持 Kerberos 身份验证的客户端,因为这保证可以与任何 AD 设置一起使用。使用 NTLM 或“简单绑定”(密码身份验证)的工具可能会也可能不会工作,具体取决于域配置。

\n

例如,SysInternals ADExplorer来自 Microsoft,无需安装即可使用。(当提示输入服务器详细信息时,将所有字段留空,然后单击“连接”。)

\n

(从技术上讲,RSAT 工具“ADSIEdit”和“dsa.msc”无需完整安装即可使用,甚至微软官方说明也曾说过“从 .cab 和 regsvr32 中提取这些文件”,但您确实需要Windows 本地管理员零件的访问权限regsvr32

\n