2013-10-04 2 views
0

이름에 'TC'가있는 특정 OU의 모든 컴퓨터에 대해 AD를 검색하려고합니다. 그 모든 기계를 반환, 나는 그 기계에 자신의 이름으로 'TC'를 반환해야합니다. 나는이 시점에서 일을해야 무엇을해당 이름에 TC가있는 OU에있는 모든 컴퓨터를 찾으려면 검색어를 입력하십시오.

$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} 

정말 확실하지, 나는 파워 쉘 신참입니다.

답변

0

두 가지 옵션이 있습니다. 모든 컴퓨터를 가져 와서 Powershell cmdlet을 사용하여 필터링 할 수 있습니다. 그렇지 않으면 LDAP 필터가 원하는 것을 반영합니다 (더 좋음). 당신이 필터를 사용하여 특정 OU에 기계를 찾을 수 ActiveDirectoryModule와

$searcher.filter = "(&(objectCategory=computer)(cn=TN*))" 

(아래의 예에서 가정 YourDomain.com \ YourOU)를 OU에 대한 검색이 Searchbase (검색베이스)와 함께 원하는 제한 :이 시도

$adcomputers = Get-ADComputer -Filter {name -like "TC*"} -Searchbase "OU=YourOU,DC=YourDomain,DC=com" 
+0

좋아, 내가 가져-ADComputer를 사용하여 이것에 대해 어떻게 갈 것인가? –

+0

ActiveDirectory Module을 이미 사용할 수있는 경우 .NET 검색을 신경 쓰지 않아도됩니다. @alroc 이미 그것을 언급, 나는뿐만 아니라 대안에 대한 답변을 업데이 트됩니다. –

0

AD module을 사용할 수있는 경우 단일 cmdlet을 사용하여이 작업을 수행 할 수 있습니다.

get-adcomputer -filter {name -like "*TC*"}

+0

고마워, 그게 내가 필요한거야. –

+0

이것이 귀하의 문제에 대한 최상의 해결책이라면, 그것을 수용 대답으로 표시하십시오. – alroc

관련 문제