如何通过Powershell在域计算机上查询Active Directory而不在客户端计算机上安装RSAT工具

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Powershell在域计算机上查询Active Directory而不在客户端计算机上安装RSAT工具相关的知识,希望对你有一定的参考价值。

我已经在Internet上搜索了一种无需安装RSAT工具即可通过Powershell(或cmd)来查询Active Directory用户的方法,但是没有任何效果。我的脚本需要查询AD,以确认用户存在,然后再继续下一步。该计算机位于域上,理想情况下,我不希望我的脚本在客户端工作站上下载并安装RSAT工具。

我能够使以下代码正常工作。但是,我必须以域用户身份登录。理想情况下,我希望此操作可以从绑定到AD的工作站上的本地管理员用户那里进行。

$search = [adsisearcher]"(&(ObjectCategory=Person)(ObjectClass=*)(cn=*))"
$users = $search.FindAll()
foreach($user in $users) 
{
    $CN = $user.Properties['CN']
    $DisplayName = $user.Properties['DisplayName']
    $SamAccountName = $user.Properties['SamAccountName']
    "CN is $CN"
    "Display Name is $DisplayName"
    "SamAccountName is $SamAccountName"
} 
答案

您可以使用[ADSI]类型的加速器,也可以使用如下所示的.Net类。用AD中的用户名替换druffin。有关用户名的示例,请运行$ env:USERNAME

$adsiNET = New-Object system.directoryservices.directorysearcher "name=druffin"
$adsiNET.FindOne()

以上是关于如何通过Powershell在域计算机上查询Active Directory而不在客户端计算机上安装RSAT工具的主要内容,如果未能解决你的问题,请参考以下文章