'v3.4*************************************************** ' File: LastLogon.VBS ' Autor: dieseyer@gmx.de ' dieseyer.de ' ' Programm ermittelt den zuletzt angemeldeten Benutzer '******************************************************* Option Explicit Dim WshShell, WSHNet, fso, ObjReg, ObjRemote, KeyX, Text, RootKey, oVal Set WSHShell = WScript.CreateObject("WScript.Shell") Set FSO = CreateObject("Scripting.FileSystemObject") Set WSHNet = WScript.CreateObject("WScript.Network") If (fso.FileExists("REGOBJ.DLL")) Then ' Regobj.dll registrieren (erfordert AdminRechte) Text = "REGSVR32.EXE " & "REGOBJ.DLL" & " /S" ' damit läßt sich besser auf die registry zugreifen WshShell.Run (Text),,TRUE ' muß im gleichen Verzeichnis wie das Script stehen Set ObjReg = WScript.CreateObject("RegObj.Registry") Else MsgBox "REGSVR32.EXE " & "REGOBJ.DLL" & " /S" & vbTab & " konnte nicht aufgerufen werden!", , WScript.ScriptName WScript.Quit End If Text = "Von welchem Computer soll ermittelt werden, " & vbCRLF Text = Text & "wer als letzter angemeldet war bzw. aktuell angemeldet ist?" Text = InputBox (Text, WScript.ScriptName, "rs") Set ObjRemote = objReg.RemoteRegistry(wshnet.ComputerName) ' Objekt zeigt auf aktuellen PC (REGOBJ.DLL) Set ObjRemote = objReg.RemoteRegistry( Text ) ' Objekt zeigt auf (Remote-) PC (REGOBJ.DLL) KeyX = "\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" Text = "Am Computer " & Text & " war zuletzt folgender Benutzer angemeldet:" & vbCRLF & vbCRLF & vbTab & vbTab & vbTab On Error Resume Next Set RootKey = objRemote.RegKeyFromString(KeyX) if not err.Number = 0 then Text = Text & " ==> konnte nicht abgefragt werden!" For Each oVal In RootKey.Values ' Auflistung Werte if oVal.Name = "DefaultUserName" then if not oVal.Name = "DefaultUserName" = "" then Text = Text & oVal.Value End If Next On Error GoTo 0 MsgBox " " & Text , , WScript.ScriptName Set ObjReg = nothing WshShell.Run ("REGSVR32.EXE " & "REGOBJ.DLL" & " /U /S"),,TRUE ' REGOBJ.DLL - Registrierung aufheben