Назад | Перейти на главную страницу

получить список имени хоста, IP-адреса, маски подсети

хотите написать сценарий Vb, чтобы получить полную информацию обо всех именах хостов, IP-адресах и маске подсети компьютера, который был добавлен в элемент управления доменом.

Лучше всего проверить центр скриптов microsoft где многое из этого было написано для вас. В центре сценариев есть учебные пособия, а также репозиторий сценариев, в котором администраторы Windows обмениваются сценариями. Вам также следует взглянуть на scriptomatic, приложение HTA, которое может генерировать для вас код для чтения wmi.

Вот адаптированный сценарий VBS с этой страницы (искать "перечислить Домен, компьютер и IP-адреса всех компьютеров в AD"):

' Modify these vars to match your enviroment
' requires Windows 2003 DNS

strDomain = "MyWindowsDomain"     ' Windows Domain NetBIOS Name
strDNSSVR = "DNSserver"           ' DNS Server's name or IP
strDNSDomain = ".mydomain.com"    ' Note the . at the beginning!
strFILENAME = "AD-Computers.txt"   ' Output File Name

'------------------------------------------------
'
' File stuff
Dim filesys, testfile 
Set filesys = CreateObject("Scripting.FileSystemObject") 
Set OUTfile= filesys.CreateTextFile(strFILENAME, True)


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.CommandText = _
    "Select Name, Location from 'LDAP://" & strDomain & "' " _
        & "Where objectCategory='computer'"  
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE 
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst



'debug stuff   Comment if you want to see it during execution
'Wscript.Echo "My DNS Server is: " & strDNSSVR
'Wscript.Echo "My Windows Domain is: " & strDomain
'Wscript.Echo "My DNS Suffix is: " & strDNSDomain
'Wscript.echo "Writing output to File: " & strFILENAME

'output
Do Until objRecordSet.EOF
    strHOST = objRecordSet.Fields("Name").Value
    strHOSTFQDN = strHOST & strDNSDomain
    strIP = GetIPFromDNS(strHOSTFQDN,strDNSSVR)
    OUTfile.WriteLine strDomain & " " & strHOST & " " & strIP
    'Comment line below to not dump output to screen
    Wscript.Echo strDomain & " " & strHOST & " " & strIP
     objRecordSet.MoveNext
Loop

Function GetIPFromDNS(sFQDN, strDNS)
  Set objWMI=GetObject("WinMgmts://" & strDNS & "\root\microsoftDNS")    
  Set colIP=objWMI.ExecQuery("Select * from MicrosoftDNS_AType where ownerName='" & sFQDN & "'")     
    For Each item In colIP          
        GetIPFromDNS = item.RecordData     
    Next
End Function

Outfile.Close