Вопросы по компьютерам в домене

9IKOB
Дата: 30.11.2012 11:32:01
Всем доброго времени суток!
У меня возникло два вопроса - надеюсь мне здесь кто-нибудь на них сможет ответить:
1. Как узнать имена всех зарегистрированных в домене компьютеров (в том числе тех, которые в данный момент не в сети)?
2. Как узнать, под каким локальным пользователем работает в данный момент юзер на компе, входящем в сеть?

Если что не так сформулировал - поправьте или уточните (у меня не идеальные знания о сетевых технологиях).
ArgonS
Дата: 30.11.2012 12:27:15
9IKOB,

1) как узнать....
Local ;
   loNetwork As Object, loItem As Object

If Used("locdomains")
   Use In locdomains
Endif

Create Cursor locdomains (Id c(12),domainname c(20))
loNetwork=Getobject("WinNT:")
For Each loItem In loNetwork
   Insert Into locdomains ;
      (Id,domainname)  ;
      Values ;
      ("LD"+Sys(2015),loItem.Name)
Endfor

Local  ;
   lcDomainID As String, ;
   lcDomainName As String

Create Cursor dcomputers (Id c(12), pid c(12), compname c(20), isonline L)

Select locdomains
Go Top

Do While ! Eof("locdomains")
   lcDomainID=locdomains.Id
   lcDomainName=Rtrim(locdomains.domainname)
   loNetwork=Getobject("WinNT://"+lcDomainName)
   For Each loItem In loNetwork
      If loItem.Class="Computer"
         Insert Into dcomputers ;
            (Id, pid, compname,isonline)  ;
            Values ;
            ("DC"+Sys(2015),lcDomainID,loItem.Name,.F.)
      Endif
   Endfor
   Skip In locdomains
Enddo


2) пользователь

x= CREATEOBJECT("WScript.Network")
?x.ComputerName
Dima T
Дата: 30.11.2012 12:30:10
1. Тут и тут почитай.
Там эта ссылка упоминается, код правда на бэйсике, но переправить не сложно.

2. sys(0)
9IKOB
Дата: 30.11.2012 14:35:21
Всем спасибо за ответы.
У меня только небольшое уточнение насчёт 2 вопроса: я хотел узнать не имя пользователя или имя компьютера, открывшего какую-то программу, написанную на FoxPro. Меня вот что интересует: можно ли, зная имя конкретного компьютера и зная, что в данный момент этот компьютер в сети, какими-либо средствами узнать, какой пользователь в данный момент работает за этим компом? Необязательно это сделать средствами FoxPro.
Надеюсь, что понятно объяснил суть вопроса.
ArgonS
Дата: 30.11.2012 15:11:25
9IKOB,

sys(0) - ХХХХХ (имя ПК) # ХХХХ (имя пользователя)

если хотите экзотики, то установите на все ПК вэб камеры и напишете на С++ программку по распознаванию лиц используя OpenCV
9IKOB
Дата: 30.11.2012 16:02:05
ArgonS,

Про sys(0) я уже давно знаю и успешно использую. Вы меня неправильно поняли - я хочу узнать не реальное имя пользователя, работающего за компом (например, Иван Васильевич Пупкин), а имя пользователя, под которым он зашёл в Windows.
Dima T
Дата: 30.11.2012 16:08:14
9IKOB
Вы меня неправильно поняли - я хочу узнать не реальное имя пользователя, работающего за компом (например, Иван Васильевич Пупкин), а имя пользователя, под которым он зашёл в Windows.

Как ты себе это представляешь? Если в сети порядок, админы выдают персональные учетки каждому пользователю, то Иван Васильевич Пупкин зайдет только под своей учеткой. Иначе только вариант с вэбкамерами от ArgonS, т.к. бардак автоматизировать нельзя (с)
Dima T
Дата: 30.11.2012 16:13:35
9IKOB
Про sys(0) я уже давно знаю и успешно использую. Вы меня неправильно поняли - я хочу узнать не реальное имя пользователя, работающего за компом (например, Иван Васильевич Пупкин), а имя пользователя, под которым он зашёл в Windows.

Что-то я туплю. наверно пятница-вечер сказывается.
sys(0) и так возвращает имя пользователя, под которым пользователь зашёл в Windows
9IKOB
Дата: 30.11.2012 16:14:45
Dima T,

Вот это уже ответ по существу. Я же не утверждал, что это реально сделать. Я как раз хотел узнать: возможно такое сделать или нет. Нет так нет.
ArgonS
Дата: 30.11.2012 16:15:52
Dima T
9IKOB
Про sys(0) я уже давно знаю и успешно использую. Вы меня неправильно поняли - я хочу узнать не реальное имя пользователя, работающего за компом (например, Иван Васильевич Пупкин), а имя пользователя, под которым он зашёл в Windows.

Что-то я туплю. наверно пятница-вечер сказывается.
sys(0) и так возвращает имя пользователя, под которым пользователь зашёл в Windows



да, вечер пятницы... :)
выше я уже это писал ( про
sys()
) :)
повторение мать-учения :)