ssnvit Цитата: 1) как определять время входа пользователя в домен - дата, часы минуты секунды
2) как определять время выхода пользователя из домена - дата часы минуты секунды
я делаю так:
в груповых политиках на логон и логофф прописываю вот такой батник:
Цитата:
SET data_time=%date:~0,2%.%date:~3,2%.%date:~6,4% - %time:~0,2%.%time:~3,2%.%time:~6,2%
echo %data_time% - logON %username% at %computername%>>\\server01\log$\logons.log
если хочешь узнать время логона в AD - то это практически не реально (если я не путаю, то в 2000 этого нет вообще), особенно если стоит 2 контроллера домена. Вот мой скрипт, он показывает то, что есть в AD, но там инфа не всегда правильная.
[more=сохрани файл Find_User.wsf]<job id="Example">
<runtime>
<description>
Имя: multilang.wsf
Кодировка: Windows
Описание: Использование функции InputBox в JScript-сценарии
</description>
</runtime>
<script language="VBScript">
Function InputName ' Описываем функцию на языке VBScript
' Вводим имя в диалоговом окне
InputName = InputBox("Введите логин юзера:", "Окно ввода")
End Function
Function GetString (ar())
GetString = ar(0)
End Function
Function GetData (arg())
' Set objUser = GetObject("LDAP://cn="& arg & ", cn=Users, dc=my_domain, dc=ru")
Set objUser = GetObject("LDAP://server1/cn="& arg & ", cn=Users, dc=my_domain, dc=ru")
Set objLastLogon = objUser.Get("lastLogon")
Set objUser2 = GetObject("LDAP://server2/cn="& arg & ", cn=Users, dc=my_domain, dc=ru")
Set objLastLogon2 = objUser2.Get("lastLogon")
intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart
intLastLogonTime2 = objLastLogon2.HighPart * (2^32) + objLastLogon2.LowPart
If (intLastLogonTime2 < intLastLogonTime) Then
intLastLogonTime = intLastLogonTime / (60 * 10000000)
intLastLogonTime = intLastLogonTime / 1440
Else
intLastLogonTime = intLastLogonTime2 / (60 * 10000000)
intLastLogonTime = intLastLogonTime / 1440
End If
GetData = intLastLogonTime + #1/1/1601#
End Function
</script>
<script language="JScript">
var name, temp, E, str;
var objConnection, objCommand, objCommand, objRecordSet; //Для юзеров
var FullName,
TelNumber,
login,
whenCreated,
whenChanged,
description,
office,
lastLogon,logonCount,
EMail;
name = new String (InputName()); //Вызываем функцию InputName
name = name.toLowerCase();
objConnection = WScript.CreateObject("ADODB.Connection");
objConnection.Open("Provider=ADsDSOObject;");
objCommand = WScript.CreateObject("ADODB.Command");
objCommand.ActiveConnection = objConnection
objCommand.CommandText ="SELECT lastLogonTimestamp,logonCount,cn,sAMAccountName,userAccountControl,mail,telephoneNumber,physicalDeliveryOfficeName,whenCreated,whenChanged,description FROM 'LDAP://dc=my_domain,dc=ru' WHERE objectCategory='user'";
objRecordSet = objCommand.Execute;
temp = 0;
var intLastLogonTime;
while (!objRecordSet.EOF){
//Логин
login = new String (objRecordSet.Fields("sAMAccountName"));
login = login.toLowerCase();
if (login == name){
FullName = String (objRecordSet.Fields("cn"));
TelNumber = String(objRecordSet.Fields("telephoneNumber"));
EMail = String (objRecordSet.Fields("mail"));
whenCreated = new Date (objRecordSet.Fields("whenCreated"));
whenChanged = new Date (objRecordSet.Fields("whenChanged"));
createTimeStamp = objRecordSet.Fields("userAccountControl").Value;
description = new VBArray(objRecordSet.Fields("description").Value).toArray();
office = String (objRecordSet.Fields("physicalDeliveryOfficeName"));
logonCount = String (objRecordSet.Fields("logonCount"));
lastLogon = new Date (GetData(FullName));
temp = 1;
break;
}
objRecordSet.MoveNext;
}
objConnection.Close;
if (temp == 0) WScript.Echo("Юзер не найден");
else {
s = "Пользователь найден:\n" + login + " - " + FullName;
if (createTimeStamp & 2) s += " (User - Disabled)\n";
else s += " (User - Enabled)\n";
s += "Телефон: " + TelNumber + "\n";
s += "Офис: " + office + "\n";
s += "Почта: " + EMail + "\n";
s += "Создан: " + whenCreated.toLocaleDateString() + " ("+whenCreated.toLocaleTimeString()+")" + "\n";
s += "Изменен: " + whenChanged.toLocaleDateString() + " ("+whenChanged.toLocaleTimeString()+")" + "\n";
s += "Кол-во входов: " + logonCount + "\n";
s += "Последний вход: " + lastLogon.toLocaleDateString() + " ("+lastLogon.toLocaleTimeString()+")" + "\n";
// s += "Последний вход: " + lastLogon.toLocaleDateString() + " ("+(lastLogon.getHours()+1)+":"+lastLogon.getMinutes()+":"+lastLogon.getSeconds()+")" + "\n";
s += "Описание: " + description + "\n";
WScript.Echo(s);
}
</script>
</job>
[/more]
Добавлено: по последнему скрипту - его надо изменять под тебя, я дал свой вариант. Если будут вопросы - спрашивай