Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84378
  • 博文数量: 9
  • 博客积分: 1460
  • 博客等级: 上尉
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2007-03-08 10:51
文章分类
文章存档

2008年(9)

我的朋友

分类: WINDOWS

2008-04-09 11:57:08

'#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) |
给主人留下些什么吧!~~