如题,XP可以多用户同时登陆,如何得到所有登陆者的用户名,及用户数?

解决方案 »

  1.   

    On Error Resume Next
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colItems = objWMIService.ExecQuery("Select * from Win32_LoggedOnUser",,48)Dim aLog()
    i = -1
    For Each objItem in colItems
    i = i + 1
    ReDim Preserve aLog(i)
    aLog(i) = Replace(Split(objItem.Antecedent, """,Name=""")(1), """", "")
    NextDim aUser()
    i = -1
    Set colItems = objWMIService.ExecQuery("Select * from Win32_Account Where SIDType=1",,48)
    For Each objItem in colItems
    For Each a In aLog
    If a = objItem.Name Then
    i = i + 1
    ReDim Preserve aUser(i)
    aUser(i) = a
    Exit For
    End If
    Next
    Nexts = ""
    For Each a In aUser
    s = s & a & vbCrLf
    NextMsgBox CStr(UBound(aUser) + 1) & " User(s):" & vbCrLf & s
      

  2.   

    Microsoft Windows [版本 5.2.3790]
    (C) 版权所有 1985-2003 Microsoft Corp.C:\Documents and Settings\Administrator>net users\\ 的用户帐户-------------------------------------------------------------------------
    __vmware_user__          Administrator            ASPNET
    Guest                    IUSR_WWW-D25FF5EE20C     IWAM_WWW-D25FF5EE20C
    SUPPORT_388945a0         VUSR_M5HOME-NB-001
    C:\Documents and Settings\Administrator>
      

  3.   

        非常感谢 s11ss 给我的帮助,你给的代码我反复测试了很长时间,一开始好像很管用,能准确得到当前登陆者的用户名及用户数;后来不知道什么原因,又不灵了,1个用户登陆时能得到准确结果,再加入1个用户也能得到2个用户的准确结果;但注销掉1个用户后,得到的仍然是2个用户的结果。不知道什么原因?
        我的系统有点特殊,安装了主机一拖二,两个显示屏的那种。但奇怪的是先前还能得到正常的结果,反复测试后又不行了。
      

  4.   

    老马那个是得到所有已注册的用户的啊
    其实通过netstat /an命令,然后过滤下端口为3389的,最后得到的就是所有当前连接的,但是只能得到ip