'#cas.vbs
'List user's information (display name, logon name, lock, member of)
'by display name (the same as CN) or logon name
'supported by ADO Object
on error resume next
Name = wscript.arguments.item(0)
fname=wscript.arguments.item(1)
If not err.number=9 Then
chkUsr (name & " " & wscript.arguments.item(1) )
Else
eumName (Name)
End If
''''''''''Enumerate user cn'''''''''''''''''
Sub eumName(names)
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT displayname,userprincipalname,memberOf FROM " & _
"'LDAP://DC=mulkris,DC=cn' WHERE " & _
"objectCategory='person' " & _
"AND samAccountName = '" & names & "'"
Set objRecordSet = objCommand.Execute
if objrecordset.recordcount=0 then
wscript.echo "Can not find user."
else
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields("displayname").value
wscript.echo objrecordset.fields("userprincipalname").value
strcontainer = "OU=Users"
Set objRootDSE = GetObject("")
Set objitem = GetObject("=" & objRecordSet.Fields("displayname").value & _
"," & strcontainer & "," & objRootDSE.get("defaultNamingContext"))
If objitem.isaccountlocked Then
wscript.echo "Account Locked"
Else
wscript.echo "Account Unlocked"
End If
wscript.echo"MemberOf:"
for each item in objrecordset.fields("memberof").value
Item = Left(Item, InStr(Item, ",") - 1)
wscript.echo vbTab & Right(Item, Len(Item) - InStr(Item, "="))
next
objRecordSet.MoveNext
Loop
end if
End Sub
'''''''''''Output cn information''''''''''''
''''''''''Created in cas.vbs at 2008-4-9'''
''''''''''Search CN name by logon name''''''
''''''''''begin'''''''''''''''''''''''''''''
Sub chkUsr(names)
'''''''''''Connect to an object'''''''''''''
On Error Resume Next
strcontainer = "OU=Users
Set objRootDSE = GetObject("")
Set objitem = GetObject("=" & names & "," & strcontainer & "," & _
objRootDSE.get("defaultNamingContext"))
'''''''''''Display information''''''''''''''
Select Case Err.Number
Case -2147016656
wscript.echo "Error user name of assigned."
Case 9
wscript.echo "Non user name assign"
Case 0
wscript.echo objitem.get("name")
wscript.echo objitem.get("userPrincipalName")
If objitem.isaccountlocked Then
wscript.echo "Account Locked"
Else
wscript.echo "Account Unlocked"
End If
strmemberOf = objitem.GetEx("memberOf")
wscript.echo "MemberOf:"
For Each Item In strmemberOf
Item = Left(Item, InStr(Item, ",") - 1)
wscript.echo vbTab & Right(Item, Len(Item) - InStr(Item, "="))
Next
End Select
End Sub
''''''''end'''''''''
阅读(1042) | 评论(0) | 转发(0) |