Скрипт позволяет получить список имен компьютеров домена и вывести его в текстовый файл. Полученный файл содержит имя компьютера и версию его операционной системы.
On Error Resume Next Dim UserPCs(10000,1) Set FSO = CreateObject("Scripting.FileSystemObject") Set TF = FSO.CreateTextFile("C:\file_name.txt", 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, operatingSystem FROM 'LDAP://DC=domain,DC=local' WHERE objectClass='computer' " objCommand.Properties("Page Size") = 1000 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE Set objRecordSet = objCommand.Execute i=1 objRecordSet.MoveFirst Do Until objRecordSet.EOF strComputer = objRecordSet.Fields("Name").Value UserPCs(i,0)=strComputer&".domain.local" UserPCs(i,1)=objRecordSet.Fields("operatingSystem").Value objRecordSet.MoveNext TF.Write (UserPCs(i,0)) TF.Write "|" TF.Write (UserPCs(i,1)) TF.Write vbCrLf i=i+1 Loop
Вместо domain и local подставляем свои данные.
Код хороший, но я бы для таких целей воспользовался программой, которая выгржуает не только указанную информацию, но и многие другие аттрибуты. Например, когда именно компьютер последний раз был доступен, какая версия Service Pack установлена, включено ли делегирование. Кроме того программа может выгрузить и список пользователй и групп домена. Скачать можно тут: http://sysadminsoft.ru/export-from-ad