![]() |
|
Программно получить список пользователей домена. | ☑ | ||
---|---|---|---|---|
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
|
полезная ветка получилась ))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |