Knorkator 12 Geschrieben 11. September 2013 Melden Teilen 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 Link zu diesem Kommentar
4077 30 Geschrieben 11. September 2013 Melden Teilen 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 Link zu diesem Kommentar
mamamia 13 Geschrieben 11. September 2013 Melden Teilen Geschrieben 11. September 2013 Habt ihr mehrere DC´s?Ist da vllt die Objekt-Repli noch nicht gelaufen? Zitieren Link zu diesem Kommentar
Knorkator 12 Geschrieben 11. September 2013 Autor Melden Teilen 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 Link zu diesem Kommentar
mamamia 13 Geschrieben 11. September 2013 Melden Teilen 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 Link zu diesem Kommentar
Knorkator 12 Geschrieben 11. September 2013 Autor Melden Teilen 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 Link zu diesem Kommentar
4077 30 Geschrieben 11. September 2013 Melden Teilen 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 Link zu diesem Kommentar
mamamia 13 Geschrieben 11. September 2013 Melden Teilen 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 Link zu diesem Kommentar
4077 30 Geschrieben 11. September 2013 Melden Teilen 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 Link zu diesem Kommentar
Knorkator 12 Geschrieben 12. September 2013 Autor Melden Teilen Geschrieben 12. September 2013 Ok, dann ist das mit den Werten nachvollziehbar. Danke! Zitieren Link zu diesem Kommentar
Spidey75 10 Geschrieben 21. November 2013 Melden Teilen 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 Link zu diesem Kommentar
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.