Параметр LastLogonTimestamp В AD.

Ответить
Аватара пользователя
ГрМакс

Параметр LastLogonTimestamp В AD.

Сообщение ГрМакс »

Делаю скриптом (VBscript) запрос параметра LastLogonTimestamp в AD, Возвращается время в UNIX-формате (напр. 128718163033593750). Вопрос есть ли на VBScript Функция перевода этого времени в стандартное?
Аватара пользователя
exo

Re: Параметр LastLogonTimestamp В AD.

Сообщение exo »

ГрМакс, на сайте майкрасофт есть dll - регишь её - и получаешь вкладку Additional account info - там есть ласт логон в нормальном виде.



acctinfo.dll





читать дальше »


Изображение
Аватара пользователя
ГрМакс

Re: Параметр LastLogonTimestamp В AD.

Сообщение ГрМакс »

Цитата exo:



ГрМакс, на сайте майкрасофт есть dll - регишь её - и получаешь вкладку Additional account info - там есть ласт логон в нормальном виде.
Параметр LastLogonTimestamp В AD.




Да спасибо, но речь идет об автоматизировании поиска мертвых душ. Вкладка Additional account info есть но скрипт по прежнему возвращает время в UNIX-формате.

Может кто посоветует как сравнить в скрипте(VBScript) время в UNIX-формате и текущую дату.
Аватара пользователя
monkkey

Re: Параметр LastLogonTimestamp В AD.

Сообщение monkkey »

ГрМакс,

dsquery user /? не пробовали?
Аватара пользователя
monkkey

Re: Параметр LastLogonTimestamp В AD.

Сообщение monkkey »

Цитата monkkey:



ГрМакс,

dsquery user /? не пробовали?
Параметр LastLogonTimestamp В AD.




Пробовали. Тогда вопрос как передать возвращаемые значения обратно в VBScript?

Т.к. по задумке скрипт будет отключать записи, через какое-то время, спрашивая, удалять их, вести лог и др.
Аватара пользователя
ГрМакс

Re: Параметр LastLogonTimestamp В AD.

Сообщение ГрМакс »

Всем спасибо вопрос решился.

Кому интересно вот кусок кода:

Код: Выделить всё

Option Explicit
Dim ObjExec,WshShell,s,IsBreak,ArrS,ColStr,ColFiles,i
Set WshShell = WScript.CreateObject("WScript.Shell")
Set ObjExec=WshShell.Exec("dsquery computer -inactive 24")
s=""
IsBreak=False
Do While True 
   If (Not ObjExec.StdOut.AtEndOfStream) Then
    s=s+ObjExec.StdOut.ReadAll
  End If
  If IsBreak Then
    Exit Do  
  End If
  If ObjExec.Status=1 Then
    IsBreak=True
  Else
    WScript.Sleep 100
  End If
Loop
ArrS=Split(s,vbCrLf) 
ColFiles=UBound(ArrS) 
For i=0 To ColFiles-1
s = ArrS(i)
msgbox DosToWin(S)
Next
Function DosToWin(S)
Dim i,k,ss
  ss=""
  For i=1 To Len(S) 
    k = Asc(Mid(s,i,1))  
    If (128 <= k) And (k <= 175) Then
      k=k+64
    ElseIf (224 <= k) And (k <= 239) Then
      k=k+16
    ElseIf k = 240 Then
      k=168
    ElseIf k = 241 Then
      k=184
    End If
    ss=ss+Chr(k) 
  Next
  DosToWin=ss  
End Function
Ответить

Вернуться в «Microsoft Windows NT/2000/2003»