1扫描域中的计算机服务器所有机器等获取其名称和
2使用已找到的计算机的名称填充excel表及其扫描的月份(我将为此查找AD并填充B列)(已完成)
3扫描每台机器的特定版本的软件(已安装),版本在hkey_local_machines \ software \ wow6432node \ Microsoft \ windows \ currentversion \ specific key(tbh任何注册表项都可以,因为我可以随时编辑)
4使用找到的版本更新电子表格列(即C) 现在,我有20个域名全部空中播放,所有机器和ips都不同,所以这将使用域管理员权限单独运行
我找到了下面的代码,但由于我不是每天都使用vba等,所以不知道如何编辑它以反映我的要求
Sub Macro1()
'SearchAD.vbs
On Error Resume Next
' Connect to the LDAP server's root object
'Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("defaultNamingContext")
strTarget = "LDAP://" & strDNSDomain
wscript.Echo "Starting search from " & strTarget
Dim x As Long
'outFile = "C:\Users\name\Desktop\Computers.csv"
'Set objFile = objFSO.CreateTextFile(outFile, True)
' Connect to Ad Provider
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCmd = CreateObject("ADODB.Command")
Set objCmd.ActiveConnection = objConnection
' Show only computers
objCmd.CommandText = "SELECT Name, ADsPath FROM '" & strTarget & "' WHERE objectCategory = 'computer'"
' or show only users
'objCmd.CommandText = "SELECT Name, ADsPath FROM '" & strTarget & "' WHERE objectCategory = 'user'"
' or show only groups
'objCmd.CommandText = "SELECT Name, ADsPath FROM '" & strTarget & "' WHERE objectCategory = 'group'"
Const ADS_SCOPE_SUBTREE = 2
objCmd.Properties("Page Size") = 100
objCmd.Properties("Timeout") = 30
objCmd.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCmd.Properties("Cache Results") = False
Set objRecordSet = objCmd.Execute
' Iterate through the results
objRecordSet.MoveFirst
x = 4
Do Until objRecordSet.EOF
scomputername = objRecordSet.Fields("Name")
'wscript.Echo sComputerName
'objFile.Write sComputerName & vbCrLf
Range("A" & x).Value = scomputername
x = x + 1
objRecordSet.MoveNext
Loop
ActiveSheet.Name = Format(Now(), "mmm-yyyy")
'objFile.Close
End Sub
目前我似乎无法找到任何搜索机器网络的方法来查找注册表项,所以任何帮助都非常感谢