Knorkator 12 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 Hallo, ich möchte in unser Server 2012 AD Umgebung eine Rechnerliste erstellen. Diese soll anzeigen, welche Computer seit längerem nicht "aktiv" waren. Folgendes funktioniert, zeigt mir aber falsche Daten bzgl. des Datums an. get-adcomputer -filter * -properties *| select name,operatingsystem,lastlogondate | sort lastlogondate | ft -Auto Ein System, welches am heutigen Tage durch Updates etc. mehrfach gestartet wurde, wurde mit in der Spalte lastlogondate mit dem Datum vom 02.09.2013 7:15 gelistet. So wird auch nur ein einziger Rechner mit heutigem Datum gelistet, scheinbar laufen die anderen 50 Systeme durch....? Leider finde ich bei MS auch nichts bzgl. lastlogondate und get-adcomputer Ist das bei Euch auch so? Danke Zitieren
4077 30 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 Nur als alternative Lösung, die ich seit ewigen Zeiten in "AD Users & Computers" als Abfrage gespeichert habe (und ich auch bisher zu faul war mir was anderes zu suchen): (&(&(objectCategory=Computer)(lastLogonTimeStamp<=130182028790000000)(!userAccountControl:1.2.840.113556.1.4.803:=2))) Was man halt manuell ändern muß ist das vor "x Tagen" (hier 60 Tage) in Nanosekunden. Berechnen lasse ich mir das über ein VBS-Skript: Dim dtmDate, dbl100NanoSecsConst MAXIMUM_PASSWORD_AGE = 60 dtmDate = DateAdd("d", -MAXIMUM_PASSWORD_AGE, Now()) dbl100NanoSecs = 10000000 * (DateDiff("s", "1/1/1601", dtmDate)) dbl100NanoSecs = FormatNumber(dbl100NanoSecs, 0, False, False ,0) WScript.Echo ("Value for query = " & dbl100NanoSecs) Zitieren
mamamia 13 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 Habt ihr mehrere DC´s?Ist da vllt die Objekt-Repli noch nicht gelaufen? Zitieren
Knorkator 12 Geschrieben 11. September 2013 Autor Melden Geschrieben 11. September 2013 Hallo, wir haben noch einen 2. DC in einer VM, der spuckt (Gott Sei Dank) die gleichen Werte aus. Wenn der da 9 Tage zurück liegen würd, wär´s ja nicht so prickelnd! @4077 Danke für den Tipp, per PS wär es mir lieber, nur so aus Prinzip. Fraglich ist ja auch, ob das lastlogon property überhaupt das richtige ist. Trotzdem Danke! Gruß Zitieren
mamamia 13 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 (bearbeitet) Du könntest ja auch einfach deinen Zeitraum größer wählen. 9 Tage sind ja nicht gerade lange. $COMPAREDATE = GET-DATE $NumberDays = 90 GET-QADCOMPUTER -SizeLimit 0 -IncludedProperties LastLogonTimeStamp | where { ($CompareDate-$_.LastLogonTimeStamp).Days -gt $NumberDays } | Select-Object Name, LastLogonTimeStamp, OSName, ParentContainerDN | Sort-Object ModificationDate, Name Müsstest deine Filter noch einbringen. Hier gibt es noch Infos zum lastlogontimestamp: http://msdn.microsoft.com/en-us/library/windows/desktop/ms676824%28v=vs.85%29.aspx Gilt zwar für User, wird beim Computer aber nicht anders sein. bearbeitet 11. September 2013 von mamamia Zitieren
Knorkator 12 Geschrieben 11. September 2013 Autor Melden Geschrieben 11. September 2013 (bearbeitet) Die 9 Tage sind ja nur die Daten des PC´s der heute definitiv neu gestartet wurde! Gefiltert wird ja nichts, die ursprüngliche Abfrage zeigt ja alles an. Ich verwende übrigens kein get-Qadcomputer sondern "nur" get-adcomputer. Danke Edit: Es geht ja drum, das die Werte von lastlogondate nicht stimmen können bearbeitet 11. September 2013 von Knorkator Zitieren
4077 30 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 Ich habe eben Deine Abfrage mal laufen lassen: ich bekomme prima viele Anzeigen und sie machen auch Sinn (z.B. auch einen vom 14.07.2011) Zitieren
mamamia 13 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 Okay. Man müsste halt wissen, wann lastlogon aktualisiert wird. Ich habe gerade mal ein paar Server angeschaut, bei manchen stehen da auch Daten drin, die != 10 Tage sind. Zitieren
4077 30 Geschrieben 11. September 2013 Melden Geschrieben 11. September 2013 http://blogs.technet.com/b/askds/archive/2009/04/15/the-lastlogontimestamp-attribute-what-it-was-designed-for-and-how-it-works.aspx => "Logon types and that will trigger an update to the lastLogontimeStamp attribute. The lastLogontimeStamp attribute is not updated with all logon types or at every logon. The good news is that the logon types that admins usually care about will update the attribute and often enough to accomplish its task of identifying inactive accounts. Interactive, Network, and Service logons will update the lastLogontimeStamp. So if a user logs on interactively, browses a network share, access the email server, runs an LDAP query etc… the lastLogontimeStamp attribute will updated if the right condition is met. (The conditions are discussed below in the section Update and Replication of lastLogontimeStamp. As of Windows 2003 SP1 these logon types will NOT update lastLogontimeStamp Certificate mapping through Microsoft Internet Information Services (IIS). Microsoft .NET Passport mapping through IIS." Zitieren
Knorkator 12 Geschrieben 12. September 2013 Autor Melden Geschrieben 12. September 2013 Ok, dann ist das mit den Werten nachvollziehbar. Danke! Zitieren
Spidey75 10 Geschrieben 21. November 2013 Melden Geschrieben 21. November 2013 Hallo Leute, hier eine Lösung von Mark Minasi (aus seinem Webinar "The Case For Powershell" http://www.uvm.edu/~gcd/2013/09/mark-minasis-talk-the-case-for-powershell/): search-adaccount -accountinactive -DateTime "01.10.2013" -ComputersOnly Etwas für meine Zwecke umgebaut (Powershell 3.0, Export in CSV-Datei, ohne Column Headers, nur Computername und LastLogon): import-module Activedirectory $outfile = -join ("c:\temp\OldComp-",([datetime]::Now).Year,"-",([datetime]::Now).Month,".csv") search-adaccount -accountinactive -timespan "90" -ComputersOnly -SearchBase "OU=xxx,OU=xxx,dc=xxx,dc=xxx" | Select-Object Name,LastLogonDate | sort lastlogondate | convertTo-CSV | Select -Skip 2 | Out-File $outfile Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.