спКомп = СоздатьОбъект("СписокЗначений"); Попытка ScrptCtrl=СоздатьОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function GetComputers() | Set WinNT = GetObject(""WinNT:"") | WinNT.Filter = Array(""domain"") | For Each Domain In WinNT | Set ADSI = GetObject(""WinNT://"" & Domain.Name) | ADSI.Filter = Array(""computer"") | For Each Comp In ADSI | strInfo=strInfo & Domain.Name & "";"" & Comp.Name & vbCrLf | Next | Next | GetComputers = strInfo |End Function |"); Текст=СокрЛП(ScrptCtrl.Run("GetComputers")); ScrptCtrl = ""; Исключение Предупреждение(ОписаниеОшибки()); Возврат; КонецПопытки; Для Индекс=1 по СтрКоличествоСтрок(Текст) Цикл СтрТекста=СтрПолучитьСтроку(Текст,Индекс); Разделитель=Найти(СтрТекста,";"); Домен=Лев(СтрТекста,Разделитель-1); Компьютер=Прав(СтрТекста,СтрДлина(СтрТекста)-Разделитель); спКомп.ДобавитьЗначение(Компьютер,Домен+""+Компьютер); КонецЦикла; спКомп.Сортировать();
спКомп = Новый СписокЗначений; Попытка ScrptCtrl= Новый COMОбъект("MSScriptControl.ScriptControl"); ScrptCtrl.Language="vbscript"; ScrptCtrl.AddCode(" |Function GetComputers() | Set WinNT = GetObject(""WinNT:"") | WinNT.Filter = Array(""domain"") | For Each Domain In WinNT | Set ADSI = GetObject(""WinNT://"" & Domain.Name) | ADSI.Filter = Array(""computer"") | For Each Comp In ADSI | strInfo=strInfo & Domain.Name & "";"" & Comp.Name & vbCrLf | Next | Next | GetComputers = strInfo |End Function |"); Текст=СокрЛП(ScrptCtrl.Run("GetComputers")); ScrptCtrl = ""; Исключение Предупреждение(ОписаниеОшибки()); Возврат; КонецПопытки; Для Индекс=1 по СтрЧислоСтрок(Текст) Цикл СтрТекста=СтрПолучитьСтроку(Текст,Индекс); Разделитель=Найти(СтрТекста,";"); Домен=Лев(СтрТекста,Разделитель-1); Компьютер=Прав(СтрТекста,СтрДлина(СтрТекста)-Разделитель); спКомп.Добавить(Компьютер,Домен+""+Компьютер); КонецЦикла; спКомп.СортироватьПоПредставлению(); //Выберем комп спКомп.ВыбратьЭлемент();