다음의 스크립트를 통해 이 기능을 이용할 수 있습니다. 중요한 점은 SAM 계정 이름, 계정 형식 등은 매개변수로 입력해야 합니다. 다음의 URL에서 다운로드할 수 있습니다.

http://www.windowsitpro.com/articles/download/AddGroup.zip


'Check that all arguments required have been passed.
If Wscript.Arguments.Count < 3 Then
Wscript.Echo "Arguments required. For example:" & vbCrLf _ & "cscript searchad.vbs john user dc=savilltech,dc=com"
Wscript.Quit(0)
End If

strObjectName = Wscript.Arguments(0) strObjectType = Wscript.Arguments(1)
strRootSearch = Wscript.Arguments(2)


Set objConnection = CreateObject("ADODB.Connection") objConnection.Open
"Provider=ADsDSOObject;"


Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection


objCommand.CommandText = _ ";(&(objectCategory=" & strObjectType & ")" & _ "(samAccountName=" & strObjectName & "));samAccountName,distinguishedName;subtree"


Set objRecordSet = objCommand.Execute


If objRecordset.RecordCount = 0 Then
WScript.Echo "sAMAccountName: " & strObjectName & " does not exist." intReturnValue=0
Else
WScript.Echo strObjectName & " exists."
objRecordSet.MoveFirst
Wscript.Echo "Distinguished Name: " & objRecordSet.Fields& DistingishedName").Value
intReturnValue=1
End If

objConnection.Close



스크립트를 실행하는 방법은 다음과 같이 2가지 방식입니다.
D:projectsVBScripts>cscript searchad.vbs john user dc=savilltech,dc=com

john exists. Distinguished Name: CN=John Savill,CN=Users,DC=savilltech,DC=com D:projectsVBScripts>cscript searchad.vbs johnnope user dc=savilltech,dc=com sAMAccountName: johnnope does not exist.
또한, 스크립트에서는 %ERRORLEVEL% 값을 이용할 수 있습니다. 개체가 존재하는 경우에는 1이고 없는 경우에는 0입니다. 결과 값을 보려면 'echo %errorlevel%'을 입력합니다.

samAccountName 대신에 CN(Common Name)을 이용하여 검색할 수도 있습니다. 또한, 와일드 카드를 사용할 수 있습니다.



objCommand.CommandText = _ ";(&(objectCategory=" & strObjectType & ")" & _ "(cn=" & strObjectName & "));sAMAccountName,cn,distinguishedName;subtree" Set objRecordSet = objCommand.Execute If objRecordset.RecordCount = 0 Then
WScript.Echo "sAMAccountName: " & strObjectName & " does not exist." intReturnValue=0 Else WScript.Echo strObjectName & " matched" Do Until objRecordSet.EOF Wscript.Echo "Name: " & objRecordSet.Fields("sAMAccountName").Value & " Distinguished Name: " & objRecordSet.Fields("distinguishedName").Value objRecordSet.MoveNext Loop intReturnValue=1 End If objConnection.Close wscript.quit(intReturnValue) 다음의 스크립트를 실행하면 결과값이 나타납니다.

D:projectsVBScripts>cscript searchad.vbs b* user "ou=Justice League,dc=savilltech,dc=com" b* matched
Name: barry Distinguished Name: CN=Barry Allen,OU=Justice League,DC=savilltech,DC=com
Name: bruce Distinguished Name: CN=Bruce Wayne,OU=Justice League,DC=savilltech,DC=com


D:projectsVBScripts>echo %errorlevel%
Posted by NTFAQ

트랙백 주소 :: http://ntfaq.co.kr/trackback/2313 관련글 쓰기

댓글을 달아 주세요