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

Иногда необходимо узнать какой пользователь домена работает за компьютером, а иногда и наоборот необходимо узнать за какими компьютерами в домене работает пользователь (или просто получить список пользователей работающих на Пк в домене). Для этого дела у меня есть два небольших скрипта: Скрипт № 1:  получение имени пользователя работающего на компьютере в домене strComputer = «computername» Set objWMIService = GetObject(«winmgmts:\\» & strComputer & «\root\CIMV2») Set colItems = objWMIService.ExecQuery( _ «SELECT * FROM Win32_ComputerSystem»,,48) For Each objItem in colItems Wscript.Echo «UserName: » & objItem.UserName Next Этот скрипт выдаст логин с которым работает пользователь на указанном компьютере. Если нужен не только логин, но и DN , то можно скомбинировать его с примером из предыдущего поста:  Список пользователей в группе AD.

Список пользователей в группе AD

Понадобилось сегодня срочно сделать отчет по пользователям которые включены в одну специфическую группу OU  в домене AD. Готового под рукой ничего не было, поэтому я раздербанил несколько старых скриптов и соорудил один рабочий: On Error Resume Next Set objGroup = GetObject («LDAP://cn=X_Users,ou=Security — Groups,dc=blabla,dc=bla,dc=ru») objGroup.GetInfo arrMemberOf = objGroup.GetEx(«member») For Each strMember in arrMemberOf Set objUser = GetObject(«LDAP://» & strMember) WScript.echo objUser.samaccountname & «;» & objUser.userPrincipalName &»;»& objUser.distinguishedName Next Принцип работы очень простой. Копируете в текстовый файл, сохраняете с разрешением VBS, указываете функции GetObject необходимый DN  до нужной группы. Затем запускаете из командной строки: cscript //nologo вашскрипт.vbs > users.csv Ключ //nologo подавляет вывод в результаты команды служебных заголовков, а модификатор > переправляет результаты в текстовый файл.  Его потом можно открыть  Excel как структурированные данные с разделителем точка с запятой, и использовать как необходимо.