| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1992 人关注过本帖
标题:VB6写WMI查询网路域內电脑并自动生成清单的问题
取消只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
结帖率:97.66%
收藏
已结贴  问题点数:20 回复次数:2 
VB6写WMI查询网路域內电脑并自动生成清单的问题
1.最快的方法是上AD将电脑清单汇出,但是问题是AD上的电脑清单不完全〜
  因为用了2012的一个BUG快速转移AD控制站〜这问题日后会慢慢解决〜

  不知道有没有方法是能查询到同域名的全部主机〜不透过查询AD内资料?
  当然扫指定段落的全部IP地址再反查主机名称和域名是最后手段~
  希望有更好的使用WMI的解决方法~

-------------------------------------------------------------------

2.网路上找到一段代码可以停用太久没使用的使用者帐户〜
  不知怎麼改成停用太久没使用的使用者电脑〜

程序代码:
on error resume next
Set objRootDSE = GetObject("LDAP://rootDSE")
Domain=objRootDSE.Get("defaultNamingContext")
Const ADS_SCOPE_SUBTREE = 2
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adUseClient = 3

Set AD_Connection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("")
AD_Connection.Provider = "ADsDSOObject"
AD_Connection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = AD_Connection

objCommand.Properties("Page Size") = 10000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE


 = _
    "SELECT sAMAccountName,cn,department,adspath FROM 'LDAP://""' WHERE objectCategory='computer'" 

Set ADRecordSet = objCommand.Execute

ADRecordSet.MoveFirst

Do Until ADRecordSet.EOF
    strPath = ADRecordSet.Fields("AdsPath").Value
    ComputerCN = ADRecordSet.Fields("CN").Value
    If InStr(strPath,"Domain Controllers")=0 Then

    Set objPC = GetObject(strPath)
    Set objLastLogon = objPC.Get("lastLogon")

        intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart

    intLastLogonTime = intLastLogonTime / (60 * 10000000)

    intLastLogonTime = intLastLogonTime / 1440

    StrTime = intLastLogonTime + #1/1/1601#

    dtmEndingDate = strTime

    intDays = DateDiff("d", dtmEndingDate, Now)


    If (intDays > 60) Then

        ' 停用 60 天以上未登入的电脑帐户

        WScript.Echo "停用 " & ComputerCN & " " & strTime & " " & Intdays

        objPC.AccountDisabled = True

        objPC.SetInfo

    End If

    end If
    ADRecordSet.MoveNext
Loop

AMS_cpf_cpyRecordset.Close
ADRecordSet.close

试过能用〜
收到的鲜花
  • xiangyue05102016-12-08 18:55 送鲜花  10朵   附言:好文章
搜索更多相关主题的帖子: IP地址 查询网 帐户 主机 
2016-12-08 17:29
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用xiangyue0510在2016-12-8 18:55:14的发言:

赞一个

我是来问问题的~不是来分享程式的耶~

不要選我當版主
2016-12-09 10:06
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
以下是引用风吹过b在2016-12-9 20:24:54的发言:

局域网搜索计算机方面没接触过,
域,用都没用过。。。。
下次来用用,需要什么设置?
server: WIN2003
 

WMI在Windows系统全都能用~不用另外装编译器~
用来管理或检视或设置Windows系统用的~
可以直接运行~也可以写在VB6中去运行~

权限够大的话~也可以把别人的电脑搞得半死不活~

不要選我當版主
2016-12-12 14:29
快速回复:VB6写WMI查询网路域內电脑并自动生成清单的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023692 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved