Функция ПолучитьСписокДоменов () Экспорт
Результат = Новый Массив();
objNameSpace = "";
Попытка objNameSpace = ПолучитьCOMОбъект("WinNT:");
м = Новый Массив(); м.Добавить("domain"); // Computer User Group GlobalGroup domain
м2 = Новый COMSafeArray(м, "VT_VARIANT");
objNameSpace.Filter = м2;
Для каждого item Из objNameSpace Цикл
Результат.Добавить(item.Name);
КонецЦикла;
Исключение
Результат.Очистить();
КонецПопытки;
Возврат Результат;
КонецФункции
Функция ПолучитьСписокГруппВДомене (ИмяДомена, ТипГрупп = "GlobalGroup") Экспорт
Результат = Новый Массив();
objNameSpace = "";
Попытка objNameSpace = ПолучитьCOMОбъект("WinNT://"+СокрЛП(ИмяДомена));
м = Новый Массив();
м.Добавить(ТипГрупп); // Computer User Group GlobalGroup domain
м2 = Новый COMSafeArray(м, "VT_VARIANT");
objNameSpace.Filter = м2;
Для каждого item Из objNameSpace Цикл
Результат.Добавить(item.Name);
КонецЦикла;
Исключение
Результат.Очистить();
КонецПопытки;
Возврат Результат;
КонецФункции
Функция ПолучитьСписокПользователейВГруппеДомена (ИмяДомена, ИмяГруппы) Экспорт
Результат = Новый Массив();
objNameSpace = "";
Попытка
objNameSpace = ПолучитьCOMОбъект("WinNT://" + СокрЛП(ИмяДомена) + "/" + СокрЛП(ИмяГруппы) + ", Group");
Для каждого item Из objNameSpace.Members() Цикл
Результат.Добавить(item.Name);
КонецЦикла;
Исключение
Результат.Очистить();
КонецПопытки;
Возврат Результат;
КонецФункции
Функция ПользовательВГруппеДомена (ИмяДомена, ИмяГруппы, ИмяПользователя) Экспорт
Результат = Ложь;
Массив = ПолучитьСписокПользователейВГруппеДомена (СокрЛП(ИмяДомена), ИмяГруппы);
Для каждого элМассив из Массив Цикл
Если ВРег(элМассив) = ВРег(СокрЛП(ИмяПользователя)) Тогда // пользователь уже в группе
Результат = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
Функция ДобавитьПользователяВГруппуДомена (ИмяДомена, ИмяГруппы, ИмяПользователя) Экспорт
Результат = Ложь;
element_user = "";
element_group = "";
Попытка
element_user = ПолучитьCOMОбъект("WinNT://" + ИмяДомена + "/" + ИмяПользователя + ", user");
element_group = ПолучитьCOMОбъект("WinNT://" + ИмяДомена + "/" + ИмяГруппы + ", group");
element_group.Add(element_user.ADsPath); element_group.SetInfo();
Результат = Истина;
Исключение
Результат = Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Функция УдалитьПользователяИзГруппыДомена (ИмяДомена, ИмяГруппы, ИмяПользователя) Экспорт
Результат = Ложь;
element_user = "";
element_group = "";
Попытка element_user = ПолучитьCOMОбъект("WinNT://" + ИмяДомена + "/" + ИмяПользователя + ", user");
element_group = ПолучитьCOMОбъект("WinNT://" + ИмяДомена + "/" + ИмяГруппы + ", group");
element_group.Remove(element_user.ADsPath);
element_group.SetInfo();
Результат = Истина;
Исключение
Результат = Ложь;
КонецПопытки;
Возврат Результат;
КонецФункции
Процедура ЗаполнитьПочтовыеАдресаИзAD()
Попытка
conn = ПолучитьCOMОбъект("","ADODB.Connection");
conn.Provider = "ADSDSOObject";
conn.Open("Active Directory Provider");
Исключение Предупреждение("Ошибка подключения к Active Directory!");
Возврат;
КонецПопытки;
Для Каждого Стр из Таблица Цикл
Если НЕ ПустаяСтрока(Стр.Логин) Тогда
Попытка
query = "SEL ECT ADsPath FR OM 'LDAP://DC="+СокрЛП(Домен.Код)+"' WHERE SAMAccountName='"+Стр.Логин+"'";
rs = conn.Execute(query);
Пока НЕ rs.EOF() Цикл
obj = ПолучитьCOMОбъект(rs.Fields(0).Value);
Если obj.Class="user" Тогда
Стр.НоваяПочта=СокрЛП(obj.EmailAddress);
Если Стр.НоваяПочта<>Стр.СтараяПочта Тогда
Стр.Установить=Истина;
КонецЕсли;
КонецЕсли;
rs.MoveNext();
КонецЦикла;
Исключение
Сообщить("Ошибка получения почты для логина :"+Стр.Логин);
КонецПопытки;
КонецЕсли;
КонецЦикла;
conn.Close();
КонецПроцедуры
Функция УдалитьПроцесс (ИмяКомпьютера, НазваниеПроцесса, Логин, Пароль) Экспорт
Попытка COM = Новый COMОбъект ("WbemScripting.SWbemLocator");
Серв = COM.ConnectServer(СокрЛп(ИмяКомпьютера), "\root\cimv2", СокрЛП(Логин), СокрЛП(Пароль));
СписокПроцессов = Серв.execQuery("Sel ect * fr om Win32_Process Where Name = '"+СокрЛП(НазваниеПроцесса)+"'");
Для каждого item Из СписокПроцессов Цикл
item.Terminate();
КонецЦикла;
Исключение
Возврат Ложь;
КонецПопытки;
Возврат Истина;
КонецФункции
Вступайте в нашу телеграмм-группу Инфостарт