Как найти логин по имени пользователя

Как узнать имя компьютера по имени пользователя в домене

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в России Pyatilistnik.org. В прошлый раз мы с вами производили поиск неактивных пользователей в домене. Сегодня мы сделаем еще одну полезную вещь для нашего AD, а именно научимся автоматически определять DNS-имя компьютера на котором локально залогинен пользователь и заносить эту информацию в атрибут Active Directory у пользовательской учетной записи.

Постановка задачи

В компаниях, где есть техническая поддержка пользователей, ее инженеры очень часто подключаются удаленно к компьютерам сотрудников для устранения всевозможных проблем. Чаще всего используются программы TeamViewer, встроенный помощник Windows или Dameware. Но для того, чтобы подключиться вам необходимо знать имя компьютера. Понятно, что можно каждый раз просить пользователя посмотреть его либо в окне системы или же на рабочем столе, если у вас выводится информация с помощью BGinfo. Но проще и правильнее всегда эту информацию иметь в базе Active Directory.

Поэтому мы сделаем так, что при локальном входе в компьютер, информация, о его DNS-имени будет автоматически записана в нужное нам поле. Это удобно и можно легко эту информацию выдергивать в любую программу, которая умеет работать с Active Directory, например SCCM.

Необходимо с помощью VBS скрипта записывать имя компьютера на котором пользователь произвел локальный вход, но игнорировать подключения к удаленному рабочему столу, например на терминальные сервера.

Реализация задачи

Делать мы все будет с помощью вот такого простенького скрипта.

Set objSysInfo = CreateObject(«ADSystemInfo»)

Set objUser = GetObject(«LDAP://» & strUserDN)

objUser.Put «Pager», WshNetwork.ComputerName

Давайте с вами пробежимся по каждой из строчек кода.

  • Set WshNetwork = WScript.CreateObject(«WScript.Network») — это объект VBSScript позволяет получать информацию по трем свойствам имя компьютера ComputerName, имя пользователя UserNam, имя домена UserDomain и методы MapNetworkDrive(), AddPrinterConnection(), SetDefaultPrinter(). Объект WScript. Network очень часто используется в WSH. У созданного объекта — всего три свойства и восемь методов, но они могут оказаться очень полезными. Свойства ComputerName , UserDomain и UserName возвращают, соответственно, имя компьютера, имя домена и имя текущего пользователя. Очень удобно:
  1. для протоколирования выполнения скрипта — записывается информация о том, на каком компьютере произошло то или иное событие;
  2. для выполнения каких-либо действий только на том компьютере или только с тем пользователем, который указан в нашем списке (при помощи утилит Resource Kit можно основываться и на членстве пользователей в группах).
  3. Кроме того, можно просто отображать полученную информацию — например, на Web -странице, которая используется в качестве обоев для пользователя.
  • Set objSysInfo = CreateObject(«ADSystemInfo») — создание экземпляра объекта ADSystemInfo. Это невероятно полезный объект, который может возвращать всевозможную информацию о вошедшем в систему пользователе и локальном компьютере. Единственным недостатком этого объекта является тот факт, что он может быть создан только локально: вы не можете создать экземпляр ADSystemInfo на удаленном компьютере, а затем получить информацию о пользователе, вошедшем в систему на этом компьютере.
  • strUserDN = objSysInfo.UserName — получаем значение свойства strUserDN и сохраняем его в переменной с именем strUser
  • Set objUser = GetObject(«LDAP://» & strUserDN) — используем эту переменную как часть вызова GetObject, который связывает нас с учетной записью пользователя.
  • objUser.Put «Pager», WshNetwork.ComputerName — изменение атрибута с помощью метода Put. В моем случае, это атрибут пейджер
  • objUser.SetInfo — подтверждаем изменения в каталоге методом SetInfo

Вы вместо атрибута «Pager» можете подставлять любой, посмотреть атрибуты можно через редактор в Active Directory. Далее создаете текстовый документ и сохраняете его с расширением vbs.

Создание политики во время входа в систему

Файл со скриптом у меня готов. Открываем оснастку «Управление групповой политикой». Выбираем нужное организационное подразделение к которому мы будем применять политику, в моем случае, это контейнер «Users», поэтому политику я буду применять на самый корень домена root.pyatilistnik.org. Кликаем по нему правым кликом и из контекстного меню выбираем пункт «Создать объект групповой политики в этом домене и связать его».

Создаем политику для запуска скрипта при логине пользователя

Задаем имя для нашей политики.

Узнать компьютер пользователя в AD-02

Далее нам необходимо изменить и настроить нашу политику. Для этого щелкаем по ней правым кликом и выбираем «Изменить».

Настройка GPO для запуска скрипта узнающего имя компьютера у пользователя

Переходим по пути:

У вас откроется окно с вкладкой «Сценарии» и «Сценарии PowerShell». Нас будет интересовать первая вкладка, нажимаем кнопку «Добавить».

Узнать компьютер пользователя в AD-04

Через кнопку «Обзор» вам нужно будет выбрать ваш файл vbs. Я вам советую его скопировать в сетевую папку с политикой, либо в сетевую шару, где файл будет доступен для всех.

выбор vbs скрипта для входа пользователя на компьютер

В итоге у вас должно появиться вот так, если скриптов более одного, то можно выставлять их позиции при применении. Начинаем тестирование. У меня есть тестовая учетная запись Барбоскина Геннадия, в оснастке ADUC она у меня лежит в контейнере «Users». Поле пейджер пустое.

Тестовый пользователь в оснастке ADUC

Пробуем залогиниться Геннадием на рабочей станции с Windows 10 с именем W10-CL01. После входа на компьютер, проверяем свойство «Пейджер» у данного пользователя. Как видим, все прописалось.

Узнать компьютер пользователя в AD-07

Пробуем подключиться к еще одному компьютеру с Windows 10 под именем W10-CL02. Видим, что атрибут в AD изменил свое значение на имя второго компьютера.

Узнать компьютер пользователя в AD-08

Напоминаю, что записываться будут только локальные входы. Сама реализация до безобразия проста, но надежна. Надеюсь, что кому-то данная заметка оказалась полезной, а с вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.

Упрощаем жизнь администратору, ассоциируем имя пользователя и имя компьютера в автоматическом режиме в каталоге AD

Добрый день, хабр!
Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя. То есть мы знаем имя сотрудника, но какой у него компьютер, без понятия. И, зачастую, попытка заставить пользователя определить имя компьютера вызывает мучение. Они вместо этого называют имя пользователя, mail, номер телефона, все что угодно, только не имя компьютера. А попытка объяснить пользователю где находится информация о системе вызывает баттхерт сотрудника и лютую ненависть. Можно, конечно, было бы написать какую-нибудь утилитку, позволяющая отображать имя компьютера на рабочем столе или где-нибудь еще на видном месте, но для этого надо каждый раз объяснять где находится эта информация. Немного упрощает задачу, но не решает ее полностью. Тем более что я склоняюсь к тому, что пользователю и во все положено не знать имя компьютера, на котором он сидит. В результате было решено сделать определение имени компьютера современным, удобным, правильным и, главное, автоматическим.

image
Примерно так может выглядеть подключение к компьютеру. При чем оснастку даже не обязательно открывать с помощью административной учетной записи. Для тех, кому интересно как все это работает и как это сделать в вашей инфраструктуре, добро пожаловать под кат.
Для выполнения описанного, вы должны понимать что такое AD, понимать хотя бы примерно структуру объектов в AD, понимать работу скриптов, а также любить котиков.

Общий принцип

Скрипт, запущенный из под пользователя определяет имя компьютера, на котором он работает, и от своего имени текущего пользователя записывает значение атрибута в самом себе в каталоге AD. Далее администратор уже волен сам решать что делать с этим значением атрибута. Я в этой статье приведу пример PowerShell скриптов и пример добавления пункта контекстного меню в оснастку Active Directory Users and Computers (далее ADUC).

Создаем атрибут

Многие не шли далеко и не мудрили, используя общедоступные для записи, например параметр «Веб страница» пользователя по-умолчанию доступен для записи самим собой. Однако мне эта идея не понравилась, хотелось создать специализированный атрибут для пользователя, который не имел бы двойного назначения и не требовал компромисса. А то кто знает, как в будущем сложится ситуация и потребует использование этого атрибута, а он уже занят…
Итак, для того, чтобы создать новый атрибут в схеме нужно сначала добавить оснастку. На компьютере с установленным пакетом удаленного администрирования, либо на контроллере домена, нужно запустить с правами локального администратора regsvr32 schmmgmt.dll. Сложно сказать почему эта оснастка по-умолчанию не зарегистрирована, видимо чтобы по незнанию не напортачили. Но тем не менее мы ее можем добавить, зарегистрировав DLL. После этого открываем оснастку Схема Active Directory и идем в раздел Attributes. Создаем новый атрибут. Тут, конечно, я должен предупредить, что атрибуты это не место для экспериментов и создаются они один раз и навсегда, удалить атрибут или переименовать невозможно. Это предупреждение есть во всех местах, где имеет место добавление атрибута, но все же 🙂 Для добавления нового атрибута также потребуются права Администратора схемы. Если ваш административный пользователь имеет права Администратор предприятия, то это больше, чем достаточно.
Для добавления нового атрибута потребуется ввести OID. Это уникальный идентификатор объекта. Почитать про него можно в гугле, углубляться не буду, но скажу что он должен быть уникальный. Пересечение OID недопустимо и если его вбить любым, то есть вероятность, что будут нерешаемые проблемы в будущем. OID обычно начинается с 1.2.840.113556 и далее циферки. Я особенно не заморачивался и т.к. третье число (840) это код страны, а четвертое это код компании (Microsoft), я ввел код несуществующей страны 800 и сгенерировал 2 случайных числа через точку. Список стран можно посмотреть здесь. На самом деле, по хорошему, в этом случае необходимо обратиться в ITU-T и запросить уникальный OID, но мне ответ так и не пришел и я не стал залезать в бутылку и создал на основе случайных чисел. Потом я нашел скрипт, который генерирует относительно уникальный идентификатор, но было уже поздно :))
image
В общем, с OID решили. Дальше нам нужно указать syntax атрибута. В моей конфигурации это Unicode String. Также, конечно, нужно имя атрибута. В этом примере я буду использовать имя LabelComputer, в рабочей конфигурации лучше придумать что-нибудь получше.
После того как мы создали атрибут, нам нужно его добавить в класс. Выбираем класс user и в закладе Attributes добавляем наш новый атрибут. Теперь пользователь с нужными правами будет иметь право записывать этот атрибут в пользователе. По-умолчанию эти правом владеет Account operator или выше. Но нас интересует ситуация, когда пользователь сам бы мог редактировать этот атрибут. Для подобных целей существует пользователь с именем SELF, который олицетворяем самого себя. Нам нужно дать права для всех пользователей пользователю SELF записывать атрибут LabelComputer. Т.к. наследование еще ни кто не отменял, переходим на столько высоко, на сколько это нужно и изменяем права. Я предлагаю изменить права на весь домен, для нас это будет dc=contoso,dc=com, входим в настройки безопасности объекта домен в оснастке ADUC. Входим в закладку разрешения и нажимаем кнопку Advanced. Добавляем права для пользователя SELF и разрешаем ему читать и записывать атрибут LabelComputer. Атрибут в списке, кстати, появляется не сразу после его создания. Должно пройти некоторое время от создания атрибута до того момента, как мы сможем видеть его в списке назначения прав и в свойствах атрибутов пользователя.
image

Маркировка

В итоге мы создали атрибут, права назначили. Переходим к рабочему этапу, нужно добавить имя компьютера в значение атрибута.
Для этого используется VBscript. Как показывает практика, Microsoft не пытается делать PowerShell заменой VBS. А жаль. Для таких задач VBS оказывается быстрее и универсальнее.
Скрипт, записывающий данные в текущего пользователя:

Скрипт прост и примитивен. Скрипт и модель впрочем, можно расширить, сохранять не только компьютер, а, например, и время для актуальности, но в данном примере я не буду касаться этого.
Скрипт с помощью групповой политики назначаем на запуск во время Logon. Но не только. Возможна ситуация, когда человек залогинен на двух компьютерах, хочется чтобы информация все равно была актуальна, даже в этом случае. Для этого добавляем выполнение скрипта в планировщик со срабатыванием по событию разблокировки компьютера.
image
В этом случае, даже если логин был выполнен на нескольких компьютерах, актуальным будет записан тот компьютер который был разблокирован последним. Есть только одно разочарование. Этот метод работает исключительно на Vista+ компьютерах. То есть в XP нельзя в планировщике поставить такой триггер. И к великому сожалению, VBS тоже не позволяет определить, заблокирован ли компьютер или нет. Иначе можно было бы запускать скрипт раз в 15 минут с проверкой заблокирован ли компьютер или нет. В VBS можно только по субъективным признакам определять, например, по записям в евент логе Security, но тогда, как минимум, потребуется дать обычному пользователю права на просмотр этого журнала. Это неудобно, плохо применимо да и вообще XP становится все меньше, эту группу компьютеров можно игнорировать, для них будет достаточно Logon скрипта.
Т.к. нам хочется помечать не каждый вход, а только тот, который локальный, нам нужно исключить запуск Logon скрипта на терминальных и других серверах, не относящихся к локальным компьютерам. Я этого достигал включением замыкании групповой политики в режиме слияние и применением объекта групповой политики к области персональных компьютеров, серверов, в которой, нет. Метод, соглашусь, достаточно плохой и растрачивающий ресурсы, лучше использовать замыкание групповой политики только тогда, когда это точно надо, а не для всех компьютеров. Но, возможно, это будет следующим этапом улучшения. Тем не менее, таким образом мы четко ограничиваем на каких именно компьютерах будет выполняться нужная нам групповая политики с Logon скриптом и настройками планировщика.

Пример PowerShell скрипта для сбора данных

Главная задача выполнена. Мы начинаем видеть, что в пользователях начинает появляться информация о текущем компьютере.
image
Теперь нам надо что-то с этими данными сделать. Например, сделать удобную табличку с тем, какие пользователи на каких компьютерах сидят. Или увидеть у каких пользователей нет значения в атрибуте, несмотря на недавний вход в систему, чтобы проследить, выполняются ли групповые политки в системе, например, либо в пользователе почему-то не хватает прав для записи значения атрибута в своего пользователя. Такое бывает, если у пользователя отключено наследование прав, к примеру.

Я написал 3 PowerShell скрипта, помогающих работе.

Поиск пользователей без значений

Этот скрипт делает красивую таблицу, в которой будут показываться только пользователи, отображаемое имя, логин и дату последнего входа в систему. Тут мы сможешь посмотреть подозрительных пользователей и потом попытаться понять, почему же несмотря на недавний заход в систему, имя компьютера до сих пор отсутствует.

Все компьютеры с метками

Этот скрипт похож на предыдущий, но показывает список помеченных пользователей. Позволяет прикинуть относительное количество помеченных пользователей.

Поиск имя компьютера по пользователю

Ну и, непосредственно, поиск. Like поиск происходит по всем основным параметрам пользователя. Возвращает таблицу найденного.

По всем скриптам, вывод можно делать не в Format-Table, а в Export-CSV и создавать сразу CSV файл и анализировать его уже в каком-нибудь табличном редакторе.
>

Добавление пункта в оснастку

Скрипты это красиво, но хочется большей автоматизации. И захотелось, чтобы при нажатии в контекстном меню происходило автоматическое подключение к компьютеру программой для удаленного управления DameWare. Безусловно, можно запускать любую удобную программу, можно таким образом удаленно перезагружать, например, машину, если надо. Тем не менее рассмотрим пример с DameWare.
Настройки контекстного меню оснастки ADUC находятся не локально, как может сначала показаться, а, опять же, в каталоге AD. Для того, чтобы добавить новый пункт, необходимо воспользоваться редактором конфигурации AD, утилитой ADSI Edit. Необходимо подключиться к конфигурации AD.
image

Требуемый атрибут для изменения находится в объекте
CN=user-Display,CN=419,CN=DisplaySpecifiers,CN=Configuration,DC=contoso,DC=com. При том CN=419 это, как не сложно догадаться, язык. Если нужно поменять параметр для англоязычной оснастки ADUC, то CN=419 нужно поменять на CN=409.
image
Добавляем в adminContextMenu пункт. Первое это, на сколько я понимаю, сортировочный номер, второе это непосредственно имя и третье это, собственно, адрес объекта для выполнения. Параметры разделяются запятыми. После перезапуска ADUC для объектов user в контекстном меню появится новосозданный пункт. Скрипт будет запускаться от прав пользователя, от имени которого оснастка и была запущена. Всего при запуске программы из контекстного меню ADUC скрипту или программе передается 2 значения в параметрах, это DN объекти и типа объекта. Нам интересен только первый параметр, по которому мы находим имя пользователя в скрипте.

Этот скрипт запускает программу Damware с учетными данными contosoLocalAdmin. Этот пользователь заранее был добавлен в список локальных администраторов на компьютерах пользователей. По сути, параметры -u:, -p: и -d: можно исключить и тогда DameWare будет запускаться от имени текущего пользователя. Если у вас есть права локального администратора на компьютерах пользователя, то так будет проще.

В дальнейшем хотелось бы развить эту тем перевести телефонию отдела технической поддержки на программные SIP телефоны и адаптировать всю схему работы под программу таким образом, чтобы при входящем звонке производились все нужные выборки и у сотрудника на экране сразу появлялась вся информация о звонящем. И наступит счастье!

Несмотря на то, что никакие уникальные знания здесь не описаны, надеюсь, что как минимум, примеры скриптов помогут начинающим админам в понимании этой области 🙂 Все это можно продолжать улучшать, добавить новые атрибуты, добавлять метку не только пользователю, но и компьютеру добавлять Timestamp, сохранять последние компьютеры и т.п. В каждой компании могут найтись свои потребности.

Токарчук Андрей

За каким компьютером работает пользователь Active Directory

В целях инвентаризации, да и вообще для админского удобства, надо знать за каким компьютером сидит пользователь. Ну и обратная задача — какой пользователь сидит за компом в данный момент. Решению этой задачи посвещен сегодняшний пост.

1. Сделаем это так — при логине/логауте в описании компьютера будем писать юзера, а в описании юзера — писать компьютер. Для начала нам надо делегировать права группе «Пользователь домена» права на чтение и запись свойства «Описание» объекта. Делается это так. Правой кнопкой мыши кликаем на нужный нам OU (например с юзерами домена) -> Делегирование управления -> Выбираем группу «Пользователи домена» -> Создать особую задачу для делегирования -> Только следующим объектам в этой папке -> ищем там «Пользователь объектов» (для OU с компами тут выбираем «Компьютеры объектов») -> Убираем галку «Общие», ставим галку «Разрешение для свойств» -> ищем «Чтение Описание» и «Запись Описание» и ставим там галки.

2. Аналогично проводим этот же этап для OU с компьютерами.

3. Создаём новый объект GPO и привязываем его к нужному OU с группой «Пользователи домена» в фильтрах безопасности. В папке \yourdomain.localSysVolmniitep.ruPolicies\UserScriptsLogon соаздём скрипт writeComputerDescription_Logon.vbs

writeComputerDescription_Logon.vbs

On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject(«adsysteminfo»)
Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName)
Set oUser = GetObject(«LDAP://» & adsinfo.UserName)
oUser.put «description», «Computer: » + ThisComp.cn + » » + CStr(Now)
oUser.Setinfo
Thiscomp.put «description», «Logged on: » + oUser.cn + » » + CStr(Now)
ThisComp.Setinfo

Там же создаём скрипт writeComputerDescription_Logon.bat

writeComputerDescription_Logon.bat

wscript.exe //d //x \mniitep.ruSysVoldomain.localPolicies\UserScriptsLogonwriteComputerDescription_Logon.vbs

и прописываем его(bat-ник_ в политику.

Аналогично с logout (\yourdomain.localSysVolmniitep.ruPolicies\UserScriptsLogoff).

writeComputerDescription_Logout.vbs

On Error Resume Next
Dim adsinfo, ThisComp, oUser
Set adsinfo = CreateObject(«adsysteminfo»)
Set ThisComp = GetObject(«LDAP://» & adsinfo.ComputerName)
Set oUser = GetObject(«LDAP://» & adsinfo.UserName)
oUser.put «description», «>> Computer: » + ThisComp.cn + » » + CStr(Now)
oUser.Setinfo
Thiscomp.put «description», «>> Logged off: » + oUser.cn + » » + CStr(Now)
ThisComp.Setinfo

writeComputerDescription_Logon.bat

wscript.exe //d //x \mniitep.ruSysVoldomain.localPolicies\UserScriptsLogoffwriteComputerDescription_Logout.vbs

В результате получится такая вот симпатюлина.

Ссылки

Спасибо!

Если вам помогла статья, или вы хотите поддержать мои исследования и блог — вот лучший способ сделать это:

Хотите знать, как узнать логин ВК 4 способами?

  1. Посмотреть в настройках аккаунта;
  2. Помощь друга;
  3. Сотовый оператор
  4. Обратиться в техподдержку.

Узнать логин другого человека в ВК нельзя, разве что, спросить лично.

Что это за комбинация?

Логин – это номер телефона, привязанный к профилю, или электронная почта. Если вам известны эти данные, вы знаете логин. Никнейм (Фамилия и Имя в шапке) и ID страницы им НЕ являются. Таким образом, вопрос «Как узнать свой логин в ВК» можно свести к проблеме поиска привязанных к аккаунту мобильного и электронки.

В сети можно найти массу инструкций по выявлению логина по уникальному идентификатору, по коду страницы, с помощью специальных плагинов, альтернативных клиентов и т.д., вплоть до обращения к профессиональным шаманам и экстрасенсам. Все эти способы в 2023 году НЕ работают. Разработчики ВК давно устранили уязвимости в своей системе безопасности. Можете быть уверены, пара Логин/Пароль сегодня защищена надежно.

ID – уникальный код страницы. Он генерируется при регистрации и не подлежит замене, даже при смене имени автора или пароля. Он НЕ предназначен для авторизации в соцсети, и используется, преимущественно, при обращении к поисковым алгоритмам. То есть, по ID вы сможете лишь найти нужную страницу ВКонтакте, но вот узнать ее логин, как бы ни хотелось, не выйдет.

Другими словами, в этой статье вы не найдете инструкций для того, чтобы узнать логин от ВК по ID, ни платно, ни бесплатно.

К слову, про платные услуги. Не рекомендуем обращаться к сторонним расширениям и сервисам, как и устанавливать на устройство «левые» приложения и программы. Мы гарантируем, ни один софт не поможет вам узнать свой или чужой login. Исключение – вы обратитесь к профессиональным хакерам, которые, банально, взломают страницу. Однако, эти действия не только запрещены социальной сетью, но и незаконны, чреваты ответственностью.

Обращение же к многообещающим дополнениям и альтернативным клиентам может причинить массу неудобств, от захвата аккаунта мошенниками, до замедления работы устройства и занесения на него вирусов и вредоносных кодов. Будьте благоразумны.

Как узнать свой логин от страницы ВК?

Как и обещали, мы расскажем, как посмотреть свой логин в ВК. Для выполнения этой задачи существует 3 способа.

1 Способ: настройки

Для обращения к этому методу у пользователя должен быть доступ к аккаунту. Конечно, авторизация, при незнании логина, невозможна. Однако, нередко люди настраивают в браузере запоминание паролей, и месяцами заходят в профиль не авторизовываясь повторно.

  • Словом, первое, что нужно сделать, зайти на страницу;
  • Щелкните по малой аватарке в правом верхнем углу и перейдите к Настройкам;

  • Вам нужен раздел «Общее». Промотайте до строк «Телефон» и «Электронная почта»;
  • Вы обнаружите, что большая часть указанных комбинаций скрыта под звездочками. И это тоже мера безопасности. Она рассчитана на то, что истинный владелец страницы по имеющимся данным вспомнит привязанный номер и почту;

  • Убрать звездочки никак нельзя. Даже если вы воспользуетесь возможностью изменить привязанные комбинации, сначала придется их полностью указать.

Данный способ не поможет узнать логин в ВК, если вы его забыли. Он, скорее, представляет собой подсказку, с помощью которой будет проще вспомнить. Если не получается, переходите к следующим инструкциям.

Способ 2: помощь друга

Как вы думаете, можно ли узнать свой логин в ВК с помощью друзей? Как ни странно, да.

Если вы напрочь забыли свой старый номер телефона или электронную почту, возможно, у кого-то из ваших старых знакомых он сохранился в записных книжках. Вспомните, период, в который регистрировали аккаунт. В тот момент учились в школе? В ВУЗе? Напишите людям, которые вас тогда окружали. Вдруг у кого-то сохранились ваши координаты!

Конечно, если в данный момент этот номер или почта вам более недоступны, воспользоваться ими для авторизации тоже не выйдет. 9 из 10, если вы давно не заходили в профиль, система запросит код, который отправит в СМС. Однако, чем больше у вас будет информации о странице, тем более, такой важной, как логин, тем выше шансы, что техподдержка поможет восстановить доступ.

Способ 3: сотовый оператор

Ваш сотовый провайдер может помочь найти и узнать логин от ВК. Если вы не помните цифры, но знаете, что это был за оператор, при условии, что симка была оформлена на вас официально, сходите в салон связи и обратитесь к менеджеру. Возможно, вам не просто помогут узнать точный номер, но даже восстановят сим карту!

Способ 4: техподдержка

Итак, если узнать логин от страницы ВК с телефона или компьютера, как бы печально это ни звучало, не удалось, у вас есть последний шанс: обратитесь в техподдержку с просьбой восстановить доступ.

  • Перейдите по ссылке: https://connect.vk.com/restore/#/restore;
  • Укажите ссылку на аккаунт или найдите его через поиск;
  • Выполните все шаги помощника, пока он не доведет до заполнения заявки;
  • Здесь вам нужно заполнить все поля, и подтвердить подлинность своей личности. Для этого, прикрепить фото документа и селфи на фоне заявки с разворотом паспорта.

Обратите внимание, заявка будет одобрена только в случае наличия на странице стартовой фотографии, а также если в шапке указано ваше настоящее имя и фамилия. В противном случае поддержка откажет в восстановлении и профиль можно считать утерянным безвозвратно.

Можно ли узнать чужие данные?

Мы не станем долго расписывать, почему логин аккаунта другого пользователя в ВК узнать невозможно. Просто еще раз напомним, все сторонние программы – потенциальные мошенники или бесполезные.

Вам не удастся узнать или посмотреть чей-то логин ВКонтакте ни на телефоне, ни с компа, ни по ID, ни по ссылке, ни через код страницы. Единственный способ – если человек онлайн, спросить лично. Кстати, если он указал в информации о себе номер телефона (в открытом доступе), есть шанс, что именно его он и привязал к странице. То есть, у вас получится узнать логин.

Для чего он нужен и как его защитить?

Итак, мы рассказали, где можно найти свой и чужой логин в ВК. Запоминайте на будущее и не позволяйте себя обмануть.

Для чего нужен логин?

Чтобы система понимала, кто именно входит в соцсеть. Следом обязательно вводится пароль, для проверки подлинности пользователя. Пара Логин/Пароль – это один из первых инструментов защиты от взлома. Их можно рассматривать, как дверной замок, к которому, практически, невозможно подобрать отмычку. Понятно дело, ключи необходимо тщательно оберегать.

  • Никогда не передавайте никому входные данные от аккаунта;
  • Не пользуйтесь для входа в ВК сторонними клиентами или онлайн сервисами;
  • Используйте длинный и сложный пароль, который регулярно меняйте;
  • При первых признаках посторонней активности в аккаунте, незамедлительно меняйте пароль;
  • Не регистрируйтесь на левых площадках через свой профиль ВКонтакте. Если очень надо, лучше создать там отдельный аккаунт.

За безопасность своей страницы, в первую очередь, отвечает ее владелец. Не теряйте логины, берегите их и никому не передавайте!

В среде Windows каждому доменному и локальному пользователю, группе и другим объектам безопасности, присваивается уникальный идентификатор — Security Identifier или SID.  Именно SID, а не имя пользователя используется для контроля доступа к различным ресурсам: сетевым каталогам, ключам реестра, объектам файловой системы и т.д. В этой статье мы покажем несколько простых способов узнать SID пользователя и обратной процедуры – определения имени пользователя Windows по его SID.

Для преобразования username в SID можно воспользоваться отличий утилитой из комплекта Sysinternals — PsGetSid. Но ее придется выкачивать и устанавливать на каждую систему вручную.

Гораздо проще воспользоваться утилитой командной строки или скриптом Powershell

Получить SID локального пользователя

Чтобы получить SID локальной учетной записи на данной машине, можно воспользоваться утилитой wmic, обращающейся к WMI хранилищу. Для локального пользователя test_user команда будет такой:

wmic useraccount where name='test_user' get sid

Узнать SID пользователя через WMIВ этом примере SID  пользователя — S-1-5-21-1175651296-1316126944-203051354-1005

Если нужно узнать SID текущего пользователя, выполните такую команду:

wmic useraccount where name='%username%' get sid

На PowerShell скрипт, выдающий тот же результат можно реализовать с помощью двух классов SecurityIdentifier и NTAccount.

$objUser = New-Object System.Security.Principal.NTAccount("LOCAL_USER_NAME")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

Получить SID доменного пользователя

Узнать SID текущей доменной учетной записи можно командой:

whoami /user

whoami user getsidДля получения SID доменного пользователя можно воспользоваться командлетом Get-ADUser, входящего в состав модуля Active Directory Module для Windows PowerShell.

Get-ADUser -Identity 'jjsmith' | select SID

get-aduser select sidЕсли модуль AD для PowerShell отсутствует, через Powershell можно запросить данные из домена так:

$objUser = New-Object System.Security.Principal.NTAccount("corp.wintpro.ru","jjsmith")
$strSID = $objUser.Translate([System.Security.Principal.SecurityIdentifier])
$strSID.Value

PowerShell - get SID via SecurityIdentifier and NTAccountЭта же команда в одну строку:

(new-object security.principal.ntaccount “jjsmith").translate([security.principal.securityidentifier])

Определить имя пользователя по SID

Чтобы узнать имени учетной записи пользователя по SID (обратная процедура), можно воспользоваться одной из следующих команд:

wmic useraccount where sid='S-1-3-12-12452343106-3544442455-30354867-1434' get name

На PowerShell при помощи модуля AD для Powershell:

Get-ADUser -Identity S-1-5-21-247647651-3952524288-2944781117-23711116

Или так:

$objSID = New-Object System.Security.Principal.SecurityIdentifier ("S-1-5-21-2470456651-3958312488-29145117-23345716")
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
$objUser.Value

Источник

(Всего просмотров: 11 926, просмотров сегодня: 2)

Содержание

  1. Как узнать имя компьютера по имени пользователя в домене
  2. Постановка задачи
  3. Реализация задачи
  4. Создание политики во время входа в систему
  5. На каком компьютере залогинился пользователь?
  6. На каком компьютере залогинился пользователь?
  7. Windows: узнаём, кто где залогинен
  8. Удобный поиск компьютера пользователя в домене Windows
  9. Что у нас есть?
  10. Что мы хотим?
  11. Название?
  12. Приступим к реализации
  13. Получаем в Powershell активных сессий пользователей AD и их компьютеров
  14. Как получить список залогиненных пользователей
  15. Локально при входе пользователя
  16. Системная утилита quser.exe
  17. Через файл ntuser.dat
  18. Через WMI

Как узнать имя компьютера по имени пользователя в домене

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов в России Pyatilistnik.org. В прошлый раз мы с вами производили поиск неактивных пользователей в домене. Сегодня мы сделаем еще одну полезную вещь для нашего AD, а именно научимся автоматически определять DNS-имя компьютера на котором локально залогинен пользователь и заносить эту информацию в атрибут Active Directory у пользовательской учетной записи.

Постановка задачи

В компаниях, где есть техническая поддержка пользователей, ее инженеры очень часто подключаются удаленно к компьютерам сотрудников для устранения всевозможных проблем. Чаще всего используются программы TeamViewer, встроенный помощник Windows или Dameware. Но для того, чтобы подключиться вам необходимо знать имя компьютера. Понятно, что можно каждый раз просить пользователя посмотреть его либо в окне системы или же на рабочем столе, если у вас выводится информация с помощью BGinfo. Но проще и правильнее всегда эту информацию иметь в базе Active Directory.

Поэтому мы сделаем так, что при локальном входе в компьютер, информация, о его DNS-имени будет автоматически записана в нужное нам поле. Это удобно и можно легко эту информацию выдергивать в любую программу, которая умеет работать с Active Directory, например SCCM.

Необходимо с помощью VBS скрипта записывать имя компьютера на котором пользователь произвел локальный вход, но игнорировать подключения к удаленному рабочему столу, например на терминальные сервера.

Реализация задачи

Делать мы все будет с помощью вот такого простенького скрипта.

Set objSysInfo = CreateObject(«ADSystemInfo»)

Set objUser = GetObject(«LDAP://» & strUserDN)

objUser.Put «Pager», WshNetwork.ComputerName

Давайте с вами пробежимся по каждой из строчек кода.

Вы вместо атрибута «Pager» можете подставлять любой, посмотреть атрибуты можно через редактор в Active Directory. Далее создаете текстовый документ и сохраняете его с расширением vbs.

Создание политики во время входа в систему

Файл со скриптом у меня готов. Открываем оснастку «Управление групповой политикой». Выбираем нужное организационное подразделение к которому мы будем применять политику, в моем случае, это контейнер «Users», поэтому политику я буду применять на самый корень домена root.pyatilistnik.org. Кликаем по нему правым кликом и из контекстного меню выбираем пункт «Создать объект групповой политики в этом домене и связать его».

Uznat kompyuter polzovatelya v AD 01

Задаем имя для нашей политики.

Uznat kompyuter polzovatelya v AD 02
Далее нам необходимо изменить и настроить нашу политику. Для этого щелкаем по ней правым кликом и выбираем «Изменить».

Uznat kompyuter polzovatelya v AD 03

У вас откроется окно с вкладкой «Сценарии» и «Сценарии PowerShell». Нас будет интересовать первая вкладка, нажимаем кнопку «Добавить».

Uznat kompyuter polzovatelya v AD 04

Через кнопку «Обзор» вам нужно будет выбрать ваш файл vbs. Я вам советую его скопировать в сетевую папку с политикой, либо в сетевую шару, где файл будет доступен для всех.

Uznat kompyuter polzovatelya v AD 05

В итоге у вас должно появиться вот так, если скриптов более одного, то можно выставлять их позиции при применении. Начинаем тестирование. У меня есть тестовая учетная запись Барбоскина Геннадия, в оснастке ADUC она у меня лежит в контейнере «Users». Поле пейджер пустое.

Uznat kompyuter polzovatelya v AD 06

Пробуем залогиниться Геннадием на рабочей станции с Windows 10 с именем W10-CL01. После входа на компьютер, проверяем свойство «Пейджер» у данного пользователя. Как видим, все прописалось.

Uznat kompyuter polzovatelya v AD 07

Пробуем подключиться к еще одному компьютеру с Windows 10 под именем W10-CL02. Видим, что атрибут в AD изменил свое значение на имя второго компьютера.

Uznat kompyuter polzovatelya v AD 08
Напоминаю, что записываться будут только локальные входы. Сама реализация до безобразия проста, но надежна. Надеюсь, что кому-то данная заметка оказалась полезной, а с вами был Иван Семин, автор и создатель IT блога Pyatilistnik.org.

Источник

На каком компьютере залогинился пользователь?

na kakom kompyutere zaloginilsya polzovatel

На каком компьютере залогинился пользователь?

В какой ситуации нам может понадобиться узнать, на каком компьютере залогинился (выполнил вход) пользователь?

Как правило, это нужно для того, чтобы удаленно подключиться к компьютеру клиента, либо при составлении отчетности, в которой указывается имя сотрудника и компьютер, за которым он сидит. Так же информация может быть полезна при проектировании групповой политики.

На просторах интернета я нашел различные варианты, в которых предлагаю писать скрипты, однако мы с вами рассмотрим метод куда проще.

Использую стандартные средства серверной операционной системы, в моем примере будет рассматриваться Windows Server 2008 R2.

Рассмотрим примерный сценарий задачи по поиску компьютера, на котором залоигнился (выполнил вход) пользователь.

Пользователь звонит вам в поисках решения определенного вопроса, и первым делом мы узнаем (если не знаем) фамилию и имя сотрудника. Далее, для подключения к компьютеру нам нужно, по полученным данным, выяснить за каким компьютером сидит данный сотрудник. Для этого заходим в (Пуск Администрирование Диспетчер сервера Роли Доменные службы Active Directory Active Directory – пользователи и компьютеры ваш домен.local ПКМ Найти)

na kakom kompyutere zaloginilsya polzovatel 1

Вводим имя сотрудника, которое нас интересует и жмем кнопку «Найти»

na kakom kompyutere zaloginilsya polzovatel 2

Из полученных данных нам нужно узнать логин пользователя, под которым он выполняет вход (залогинивается) в систему. Нужен именно логин, так как имя не является логином, по этому открываем свойства учетной записи и переходим во вкладку «Учетная запись». Где узнаем имя входа пользователя.

na kakom kompyutere zaloginilsya polzovatel 3

Теперь нам потребуется проверить, на какой компьютер последний раз выполнялся вход под данной учетной записью? Для этого запустим «Журнал событий» (Пуск Администрирование Просмотр событий Журналы Windows Безопасность)

na kakom kompyutere zaloginilsya polzovatel 4

Как вы видите, у нас есть записи из категории «Вход в систему» Именно в таких записях и хранится информация о том, на каком компьютере залогинился (выполнил вход) пользователь. Теперь нам остается найти запись, в которой фигурирует наш пользователь, для этого выполним поиск по данным записям щелкнув правой кнопкой мыши по вкладке (Безопасность Найти Вводим логин пользователя Найти далее) и ищем запись из категории «Вход в систему»

na kakom kompyutere zaloginilsya polzovatel 5

Заходим в свойства записи и смотрим, чтобы «Имя учетной записи» совпадало с нашим, если все совпадает, то смотрим «Сетевой адрес источника» это и есть IP адрес машины, на которую последний раз выполнял вход (залогинивался) наш пользователь.

na kakom kompyutere zaloginilsya polzovatel 6

Теперь можем узнать доменное имя машины, по её IP адресу через команду в командной строке (Пуск Выполнить cmd) ping –a 192.168.0.97

na kakom kompyutere zaloginilsya polzovatel 7

Вот и все, теперь мы знаем, что пользователь Севостьянов Антон последний раз был залогинен на компьютере admins. Скорее всего, он за ним и сидит.

А далее уже можем использовать полученную информацию в своих интересах, как вариант это подключиться через удаленный рабочий стол, удаленный помощник, Radmin или удаленно установить LiteManager и подключиться к нему.

В качестве альтернативы, можно вывести на рабочий стол IP адрес компьютера и спрашивать его у пользователя. Об этом я рассказывал в уроке по программе BGinfo для обычной сети и в домене.

Источник

Windows: узнаём, кто где залогинен

— Ой, у меня ничего не работает, помогите!
— Не переживайте, сейчас всё исправим. Назовите имя компьютера…
(классика жанра из звонков в техподдержку)

Хорошо, если у вас есть инструмент а-ля BgInfo или ваши пользователи знают про шорткат Windows+Pause/Break и умеют его нажимать. Встречаются даже редкие экземпляры, которые успели выучить имя своей машины. Но часто у звонящего вдобавок к его основной проблеме появляется вторая: узнать имя/IP-адрес компьютера. И нередко на решение этой второй проблемы уходит куда больше времени, чем первой (а надо было всего лишь обои поменять или вернуть пропавший ярлык :).
А ведь намного приятнее услышать что-то вроде:
— Татьяна Сергеевна, не беспокойтесь, уже подключаюсь…

А надо для этого не так уж и много.
Специалисту техподдержки достаточно лишь выучить наизусть имена машин и помнить, кто за какой работает.
Перед описанием решения, которым мы пользуемся сейчас, я кратко рассмотрю другие варианты, чтобы раскритиковать их в пух и прах объяснить свой выбор.

Душу излил, а теперь к делу.
За основу была взята идея хабровчанина mittel из этой статьи.
Суть задумки в том, что при входе пользователя в Windows логон-скрипт заносит нужную информацию (время и имя машины) в определенный атрибут учётной записи пользователя. А при выходе из системы отрабатывает аналогичный логофф-скрипт.

Теперь скрипты выглядят так:

Кто первым найдет все отличия между логон- и логофф-скриптом, тому плюс в карму. 🙂
Также для получения наглядной информации создан такой небольшой PS-скрипт:

Буду признателен, если вы пройдете короткий опрос ниже.

Источник

Удобный поиск компьютера пользователя в домене Windows

Привет всем!
Работаю в компании. 1500+ активных пользователей.
Организован ХелпДеск, сотрудники регистрируют тикеты в системе, но, как-то так получается, что часть из юзеров забывают указывать имя пк, за которым они находятся.

Для выяснения этой информации (по телефону/email/экстрасенсорные способности) девочки из поддержки тратят драгоценное время, которое они могли бы уделить свежей чашке кофе или разговорам о новом платье (шутка). Наши сотрудники постоянно заняты своей непосредственной работой.

Идея (не инновация конечно) — писать данные о логонах пользователя в единую базу, а потом через веб оперативно искать нужную информацию.

88fd1f46bca94a75a370517aa129096e

Что у нас есть?

Windows среда (ХР/7/2003/2008), учетные записи хранятся в AD, все устройства работаю в локальной сети в качестве СУБД используем MSSQL 2005/2008R2.

Что мы хотим?

Поиск информации через веб интерфейс:

Должна отображаться информация:

Название?

Так как «решением» будут пользоваться несколько человек (от 5 до 35 человек), надо как-то его обозвать для удобства. Нарекли мы его «SuperVisor».

Приступим к реализации

Как будем писать в БД?

Первое, что пришло в голову — это создать bat файл с sqlcmd, но для каждой версии Windows нужна своя версия утилиты sqlcmd. Неудобно, и мы не стали копать глубже.

Вторым решением было создать небольшой exe клиент, который при запуске будет собирать данные об имени доменной учетной записи, имени пк, ip адресе пк и после получения этой информации будет выполняться вставка данных в БД. Программу размещаем, например, в папке NETLOGON на контроллере домена и групповыми политиками распространяем на ПК/Сервера в локальной сети компании.

Дальше алгоритм такой:

Таблицы созданы и наполняются данными. Забыл написать, что сервер БД у нас виртуальный и работает под Windows Server 2003R2, СУБД MSSQL 2008R2. Сервер приложения виртуальный, Windows 2003R2, Apache 2.2 + PHP 5.2

Следующий шаг — создание веб интерфейса для того, чтобы системные администраторы и сотрудники хелпдеска могли комфортно работать с сервисом. Во внутренних разработках, для экономии времени, я использую фреймфорк Bootstrap. Главная страница, до того как начинают вводить данные в поисковую строку, выглядит так:

000e920074fb441fb7bccb56f45a8bfa

В строку поиска можно ввести фамилию сотрудника/учетную запись(логин) или имя компьютера:

abd791eecae145938beb51bfedc63f46

«Супервизор» работает у нас в компании около года, со своей главной задачей справляется отлично. Тикеты теперь берутся в работу оперативнее, сотрудникам не нужно тратить время на уточнение дополнительной информации для того, чтобы преступить к решению заявки.

Данное решение по определению имени компьютера получилось современным и удобным, на мой взгляд.

Источник

Получаем в Powershell активных сессий пользователей AD и их компьютеров

Когда появляется необходимость сделать работу на компьютере пользователя, по его заявке, иногда бывает сложно узнать имя компьютера для подключения к нему. В этой статье будет рассмотрена возможность сбора всех активных сеансов пользователей (тех кто прошел аутентификацию на определенном компьютере) на всех компьютерах AD. Конечно, есть сторонние программы, которые решают такие проблемы и встроенные средства, но тут будет рассмотрена реализация через Powershell. Такой список так же хорошо подойдет для аудита, если понадобится быстро узнать кто пользовался компьютером и когда.

Навигация по посту

Как получить список залогиненных пользователей

В Powershell есть несколько методов возврата списка активных пользователей. Каждый из способов имеет свои минусы и поэтому, в зависимости от цели, какой-то способ будет удобнее использовать локально (при входе пользователя), а какой-то удаленно. В случае с WMI это так и не получилось сделать, так нет класса, который бы хранил все нужные значение и работал бы везде.

Локально при входе пользователя

31

Можно создать политику, которая будет запускать скрипт при входе и экспортировать в CSV. Сам файл CSV может находится на удаленном компьютере. Следующая команда сделает это записав данные в конец существующий файл (т.е. не перезапишет файл):

Получится примерно следующий вид файла:

32

Как создавать команды и функции в Powershell вызывать их и передавать параметры

Системная утилита quser.exe

Мы можем использовать системную программу quser, которая возвращает имя текущего пользователя и время его входа. Выглядит это так:

1

Quser так же может работать удаленно используя следующий синтаксис:

2

Для примера, следующие команды исправят эти проблемы на одном компьютере, но скорее всего вы будете менять настройки через политики. Так же обратите внимание, что правило устанавливается на «Any», а не только «Domain»:

4

6

7

Метод substring убирает первый символ, так как программа возвращает имя пользователя либо с пробелом начали или символом «>».

Такой скрипт мы можем объединить в один командлет, который сможет работать локально и удаленно:

В функцию добавлено несколько деталей:

Мы можем вызывать скрипт несколькими приемами:

9

Легче всего такой скрипт запускать на компьютерах пользователей, по событию входа в систему. На примере ниже я экспортирую эти данные в единый, для всех пользователей, файл CSV расположенный в доступности для пользователей:

Сам файл будет выглядеть так:

10

Отмечу следующие моменты:

Через файл ntuser.dat

Каждый раз, как пользователь входит в систему все его настройки загружаются из файла ntuser.dat, который находится в домашнем каталоге ‘C:UsersUserName’. При выходе из системы все настройки записываются в этот же файл. То есть мы можем получить имя пользователя по дате изменения этого файла.

В этом примере вернутся все каталоги пользователей:

20

Получим даты изменения файлов ‘ntuser.dat’:

21

Извлечем из пути имя пользователя и уберем лишние колонки:

23

Как вы знаете к большинству компьютеров можно подключится используя следующие пути:

Это же мы можем использовать с командой Get-ChildItem. Соединим все это в функцию:

Далее мы можем использовать команду в таких вариациях:

25

Ключ ‘-ErrorAction SilentlyContinue’ нужен для игнорирования ошибок связанных с выключенными компьютерами. Если его не написать вы получите ошибки формата:

Отмечу несколько моментов:

Представим, что мы захотим сформировать список из тех пользователей, которые выполнили выход за последний час. Это можно сделать так:

26

Исключить пользователей мы можем так же:

27

Экспорт для Excel аналогичен предыдущему примеру:

28

Через WMI

Я пробовал и другие классы, но каждый со своими проблемами. Решения так и не нашел.

Источник

….расчехляю хрустальный шар….

Если предположить что тэг Active Directory не просто так, то можно через
(Get-CimInstance -ComputerName comptername -Class Win32_ComputerSystem).Username
Узнать логин текущего пользователя

А потом по логину с помощью Get-ADUser login узнать уже другую необходимую инфу

Никак.
Имя компьютера с ФИО никак не связано.
Это все равно что узнать ФИО отдыхающего по названию отеля.

В Powershell можно зайти удаленно на компьютер через Enter-PSSession и сделать get-childtem c:Users
Будет видно список всех, кто на него логинился.
Затем по логинам достать из AD ФИО.
Можно через Invoke-Command пробежать по нескольким компьютерам, можно переменные вместо абсолютного пути c:users использовать

Есть три способа:
1) Eсли вы зайдёте на комп удалённо и там пошаритесь. Что вы будете делать если у большинства юзеров учётки называются User или Admin?
2) Если имя компьютера содержит ФИО. Такое бывает, но редко.
3) Если кто-то до вас настроил и дал вам доступ в корпоративную сеть с доменом так, что есть база компов с ФИО их владельцев.

Понравилась статья? Поделить с друзьями:
  • Как найти площадь сечения правильной прямоугольной призмы
  • Как составить официальный ответ на обращение
  • Как найти белую ведьму
  • Станция ноль subnautica below zero как найти
  • Как найти скутера borderlands