问题描述
我正在尝试在AD中搜索给定OU中名称中带有'TC'的所有计算机,这是我到目前为止所拥有的,但是它返回了所有计算机,我需要它仅返回带有' TC".
I'm trying to search AD for all machines in a given OU that have 'TC' in their name, this is what I have so far, but its returning all machines, I need it to return just the machines with 'TC' in their name.
$root = ([adsi]'LDAP://OU=PCs,OU=Student Computers,DC=student,DC=belfastmet,DC=int','objectCategory=computer')
$searcher = new-object System.DirectoryServices.DirectorySearcher($root)
$searcher.filter = "(objectCategory=computer)"
$searcher.pageSize=1000
$searcher.propertiesToLoad.Add("name")
$computers = $searcher.findall()
$computers | foreach {$_.properties.name}
我不太确定从现在起应该做什么,我是Powershell新手.
Not really sure what I should be doing from this point, I am a Powershell Newbie.
推荐答案
您有两个选择.您可以获取所有计算机,然后使用Powershell cmdlet进行过滤,或者ldap过滤器反映您想要的内容(更好).试试这个:
You have two options. You can get all computers and then filter using Powershell cmdlets, or your ldap filter reflects what you want (better). Try this:
$searcher.filter = "(&(objectCategory=computer)(cn=TN*))"
使用ActiveDirectoryModule,您可以使用过滤器在特定OU中找到计算机,并使用SearchBase将搜索限制为所需的OU(假设在以下示例中为YourDomain.com \ YourOU):
With ActiveDirectoryModule, you could find machines in a specific OU using filter and limit the search to the OU (assuming YourDomain.com\YourOU in the example below) you want with SearchBase:
$adcomputers = Get-ADComputer -Filter {name -like "TC*"} -Searchbase "OU=YourOU,DC=YourDomain,DC=com"
这篇关于查询AD以查找名称为TC的OU中的所有计算机的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!