我想检索一个计算机列表,这些计算机是我的
Windows 7工作站所属的Windows域的一部分.
我想用很少甚至没有额外的安装来实现这一点,特别是微软提供的230MB远程服务器管理工具包.
到目前为止,我看到的选项包括DSQuery工具(RSAT包的一部分)和PowerShell的ActiveDirectory模块(也是RSAT包的一部分).
>可能有一个选项可以单独使用PowerShell模块(仅限脚本),还是真正需要230MB工具集的每一个?
>我错过了另一种选择吗?
关于将执行查询的用户的权限,我希望能够使用非特权域用户,但如果没有非特权的替代方案,也可以选择管理员.
我还要提到net view命令显示同一子网中的几台计算机或“工作站附近”,但显然不是域中的所有计算机.另一方面,命令net view / domain:< domain_name>没有显示任何结果,并返回错误6118(这很奇怪,因为我希望网络视图也不会显示任何结果).
您始终可以通过PowerShell / .NET和
System.DirectoryServices
命名空间使用
ADSI接口.
这是使用DirectorySearcher
的快速示例,假设您将PowerShell作为标准域用户运行.
$searcher = New-Object DirectoryServices.DirectorySearcher $searcher.Filter = '(objectclass=computer)' $searcher.SearchRoot = 'LDAP://DC=example,DC=com' $searcher.FindAll()
在我看来,它不如使用ActiveDirectory模块那么好.但它绝对可行,在某些情况下可能比ActiveDirectory模块更快.
您也可以从另一个安装中提取ActiveDirectory模块文件,并将它们添加到您的个人配置文件中,而不是需要安装整个RSAT包.如果我没记错的话,它是一个文件夹和大约5 MB的文件.