Archiv

Archiv für die Kategorie ‘Programme und Tools’

Standortabhängiges Anmeldescript

28. September 2009 Daniel Keine Kommentare

Den aktuellen Standort eines Benutzers zu ermitteln, definiert durch die Active Directory Sites, funktioniert folgender VBS Code:

On Error Resume Next
Set wshShell = WScript.CreateObject( "WScript.Shell" )
strUserDomain = wshShell.ExpandEnvironmentStrings( "%USERDOMAIN%" )

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colItems = objWMIService.ExecQuery("SELECT ClientSiteName FROM Win32_NTDomain WHERE DomainName = '"& strUserDomain &"'",,48)

For Each objItem in colItems
  ' Hier wird der erkannte Sitename der Anmeldedomäne ausgegeben.
  strSiteName = objItem.ClientSiteName
next

select case strSiteName
	case "Berlin"
             ' Tu irgendwas
	case "München"
             ' Tu irgendwas anderes
end select

Getestet unter Windows XP, Windows 2003, Vista und Windows 7.

LastLogon Lookup

5. August 2009 Daniel Keine Kommentare

Ein Problem bei einer Windows 2000 Domäne, d.h. einer Domäne die sich nicht im einheitlichen Modus befinden, ist das nicht alle Eigenschaften von Objekten innerhalb der Domäne zwischen den Domänencontrollern repliziert werden.

Dies Betrifft unter anderem auch die letzte Anmeldezeit eines Benutzerkontos.

Dieser Wert ist allerdings ziemlich nützlich um z.B. Benutzerleichen zu identifizieren.

Mir ist kein Windows Boardmittel bekannt mit dem man diese Werte aus einer Domäne über alle Domänencontroller hinweg auslesen kann, deswegen habe ich mir ein kleines Tool geschrieben.

Programmaufruf

LastLogon Lookup.exe > Datei.cvs

Ausgabe

distinguishedName;sAMAccountName;LogonCount;LastLogon;DomainController

Das ganze wird dann über alle DCs für alle Benutzer ausgelesen.

Der Benutzeraccount unter dem das Progamm läuft muss mindestens entsprechende Werte aus dem AD lesen können (wär auch komisch sonst), eine Schreibberechtigung ist natürlich nicht notwendig. Das Ergebnis ist einfach mit Access/Excel/Stift und Zettel o.Ä. auszuwerten.

Geschrieben in VB.NET, wenn lieb gefragt wird schick ich bestimmt auch den Quellcode zu ;)

Download: LastLogon Lookup.zip