Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Параметр LastLogonTimestamp В AD. (http://forum.oszone.net/showthread.php?t=124766)

ГрМакс 02-12-2008 12:33 969773

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

exo 02-12-2008 12:50 969790

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

acctinfo.dll


ГрМакс 03-12-2008 15:05 971143

Цитата:

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

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

monkkey 03-12-2008 15:29 971172

ГрМакс,
dsquery user /? не пробовали?

ГрМакс 04-12-2008 10:56 971985

Цитата:

Цитата monkkey
ГрМакс,
dsquery user /? не пробовали? »

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

ГрМакс 04-12-2008 18:12 972407

Всем спасибо вопрос решился.
Кому интересно вот кусок кода:
Код:

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



Время: 02:19.

Время: 02:19.
© OSzone.net 2001-