|   |   | 
| 
 | Программно получить список пользователей домена. | ☑ | ||
|---|---|---|---|---|
| 0
    
        mzelensky 10.07.14✎ 08:24 | 
        Доброго всем!
 Мне необходимо получить список пользователей сервера (компутера). На ИС нашел замечательную процедурку: // Функция, позволяющая получить список групп и их пользователей на локальном/удаленном компьютере. // Параметры: // Computer - Имя компьютера. // Возвращаемое значение: // Таблица значений. // // Рекомендация: // Перед применением проверить на компьютерах // Windows Management Instrumentation (WMI): // 1. Состояние служб. // 2. Разрешение в брандмауэре. // &НаСервереБезКонтекста Функция Computer_GroupUsersList(Computer = ".") Win32_GroupUsersInfo = Новый ТаблицаЗначений; Win32_GroupUsersInfo.Колонки.Добавить("Group"); Win32_GroupUsersInfo.Колонки.Добавить("User"); Попытка WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2"); Win32_GroupUser = WinMGMT.ExecQuery("SELECT * FROM Win32_GroupUser WHERE GroupComponent IS NOT NULL"); Для Каждого GroupUser ИЗ Win32_GroupUser Цикл GroupInfo = Win32_GroupUsersInfo.Добавить(); // Группа. GroupComponent = GroupUser.GroupComponent; ПозицицияИмени = Найти(GroupComponent, "Name="); GroupInfo.Group = Сред(GroupComponent, ПозицицияИмени+6); GroupInfo.Group = СтрЗаменить(GroupInfo.Group, """", ""); // Пользователь. PartComponent = GroupUser.PartComponent; ПозицицияИмени = Найти(PartComponent, "Name="); GroupInfo.User = Сред(PartComponent, ПозицицияИмени+6); GroupInfo.User = СтрЗаменить(GroupInfo.User, """", ""); КонецЦикла; Исключение КонецПопытки; Возврат Win32_GroupUsersInfo; КонецФункции Косяк в том, что она возвращает ТЗ, где содаржится имя группы и имя пользователя, а мне еще нужно так называемое "Полное имя" ну или как я бы это назвал ПРЕДСТАВЛЕНИЕ имени пользователя. Т.е. мне нужно то Имя, которое отображается у пользователя, если нажать кнопку "Пуск". Например имя пользователя может быть "Zelensky" (имя учетки) а полное имя "Зеленский Максим Александровчи". Вот мне нужно как-то получить это полное имя. Есть у кого идеи? | |||
| 1
    
        mzelensky 10.07.14✎ 09:11 | 
        В общем нашел то, что надо. На ИС. Вот процедурка
 функция ПолучитьДанныеДоменныхПользователей(ИмяДомена,Реквизиты,Знач Режим = 1) Экспорт Реквизиты = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Реквизиты,","); Результат = Новый ТаблицаЗначений; Если Реквизиты.Количество() = 0 Тогда Возврат Результат; КонецЕсли; СтрокаРеквизитов = ""; сч = 0; для Каждого ИмяРеквизита из Реквизиты цикл сч = сч + 1; Результат.Колонки.Добавить(ИмяРеквизита); СтрокаРеквизитов = СтрокаРеквизитов + ИмяРеквизита; Если сч < Реквизиты.количество() Тогда СтрокаРеквизитов = СтрокаРеквизитов + ","; КонецЕсли; КонецЦикла; ТекстЗапроса = "SELECT |" + СтрокаРеквизитов + " |FROM | Win32_UserAccount |WHERE | Domain = '" + ИмяДомена + "' | AND Disabled = " + ?(Режим = 1,"False","True") + " |"; objWMIService = ПолучитьCOMОбъект("winmgmts:\\.\root\CIMV2"); colItems = objWMIService.ExecQuery(ТекстЗапроса,,48); Для Каждого objItem Из colItems Цикл НоваяСтрока = Результат.Добавить(); для Каждого ИмяРеквизита из Реквизиты цикл НоваяСтрока[ИмяРеквизита] = objItem[ИмяРеквизита]; КонецЦикла; КонецЦикла; Возврат Результат; КонецФункции Пример вызова ПолучитьДанныеДоменныхПользователей(СокрЛП("ИмяДомена"),"Caption,Name,FullName") | |||
| 2
    
        mzelensky 10.07.14✎ 09:15 | 
        Да, миста все больше и больше превращается в место обитания домохозяек, игроманов, политиканов и неудачников, которые спорят о том что лучше "Рено логан или новая Лада Калина", при этом бьют себя пяткой в грудь, что машина дешевле ляма вообще не машина,  но при этом сами ездят на солярисе...
 беда-беда... :( | |||
| 3
    
        ДенисЧ 10.07.14✎ 09:16 | 
        (2) Ты реально думаешь, что в 8 утра кто-то для тебя будет лазить по гуглю и что-то искать?
 Ой бяда... | |||
| 4
    
        Бешеная Нога 10.07.14✎ 09:16 | 
        (2) а что ты хотел в 8 утра?     | |||
| 5
    
        Kamas 10.07.14✎ 09:17 | 
        (1) спасибо сохраню себе в полезные знания     | |||
| 6
    
        Бешеная Нога 10.07.14✎ 09:17 | 
        и с учетом того что ты сам с помощью поиска нашел ответ - тему вообще можно было не создавать     | |||
| 7
    
        zak555 10.07.14✎ 09:17 | 
        (3) (4) что делает народ в 8 утра ?     | |||
| 8
    
        ДенисЧ 10.07.14✎ 09:19 | 
        (7) На работу собирается - моется, бреется, похмеляется     | |||
| 9
    
        mzelensky 10.07.14✎ 09:22 | 
        (3)(4) Вы по прежнему считаете, что вся Россия находится в одном часовом поясе?     | |||
| 10
    
        mzelensky 10.07.14✎ 09:24 | 
        (8) Лично я на рабочем месте с 7.40     | |||
| 11
    
        ДенисЧ 10.07.14✎ 09:24 | 
        (9) Мы по прежнему считаем, что тут, на этом форуме, большинство живёт по московскому времени.     | |||
| 12
    
        zak555 10.07.14✎ 09:28 | 
        (8) мыться надо перед сном, похмелье лечить     | |||
| 13
    
        Lama12 10.07.14✎ 09:29 | 
        (0) Эти примеры в книжке по системному программированию в 1С. Книжка писалась еще во времена 7.7.     | |||
| 14
    
        mzelensky 10.07.14✎ 09:32 | 
        (13) Да, И как бы актуальности они не потеряли. Я уже качаю эту книженцию.     | |||
| 15
    
        Kamas 10.07.14✎ 09:33 | 
        (12) я и после сна моюсь и зубы чищу;)     | |||
| 16
    
        Kamas 10.07.14✎ 09:35 | 
        (13) спасибо за наводку почитаем))     | |||
| 17
    
        Kamas 10.07.14✎ 09:35 | 
        полезная ветка получилась ))     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |