none
script für PCs im Ad die nicht aktiv sind RRS feed

  • Frage

  • Hallo zusammen,

    wir haben im AD jede Menge alter PCs drinnen. Ich bräucht daher ein Powershellscript, dass mir im AD alle PCs herausfindet die sich schon lange nicht mehr angemeldet haben oder so. Es gibt sicher ein Feld lastPassword change oder irgendwas andem man herausfinden kann ob ein PC noch aktiv ist. Also länger als 6Monate oder 1 Jahr nicht eingeschalten wurde.

     


    Chris
    • Bearbeitet -- Chris -- Mittwoch, 14. Dezember 2011 07:50
    Mittwoch, 14. Dezember 2011 07:49

Antworten

  • Hallo,

    verdammt. Ich sollte das auch testen, was ich schreibe:-).

    Zum ersten Problem:

    Du brauchst eine Shell, in der das AD Modul geladen ist. Auf dem Server und auf Win7 mit installierten RSAT kannst Du das direkt aufrufen. In einer "normalen" Shell importierst Du das Modul einfach: "import-module ActiveDirectory".

    Zum zweiten Problem:

    Es scheint so, dass er das Statement im Filter nicht auswerten mag. Zusätzlich hatte ich noch einen kleinen Syntaxfehler "-resultsize unlimited". Deshalb umgehen wir das jetzt mal:

    $date = ((get-date).adddays(-365))
    get-adcomputer -filter {passwordlastset -le $date} -properties passwordlastset -resultsize $null | ft samaccountname,passwordlastset

     Jetzt passt es aber.

    Viele Grüße

    Frank


    -- Frank Röder blog.iteach-online.de --
    • Als Antwort markiert -- Chris -- Donnerstag, 15. Dezember 2011 15:22
    Donnerstag, 15. Dezember 2011 14:33

Alle Antworten

  • Hallo Chris,

    wenn Du 2008R2 einsetzt und das ActiveDirectory Modul einsetzt, dann könnte das so aussehen:

    Alle Rechner die seit einem Jahr nicht eingeschaltet wurden:

    Get-ADComputer -Filter {PasswordLastSet -le ((get-date).adddays(-365))} -Properties passwordLastSet -ResultSetSize unlimited | ft samaccountname,PasswordLastSet
    

    Viele Grüße

    Frank

     


    -- Frank Röder blog.iteach-online.de --
    • Als Antwort markiert -- Chris -- Mittwoch, 14. Dezember 2011 10:43
    • Tag als Antwort aufgehoben -- Chris -- Donnerstag, 15. Dezember 2011 14:09
    Mittwoch, 14. Dezember 2011 10:21
  • cool, danke frank
    Chris
    Mittwoch, 14. Dezember 2011 10:42
  • nachtrag muss ich am AD noch etwas installieren?

    Fehler:

    The term 'Get-ADComputer' is not recognized as the name of a cmdlet, function, script file, or operable program. Check
    the spelling of the name, or if a path was included, verify that the path is correct and try again.
    At line:1 char:15
    + Get-ADComputer <<<<  -Filter {PasswordLastSet -le ((get-date).adddays(-365))} -Properties passwordLastSet -ResultSetS
    ize unlimited | ft samaccountname,PasswordLastSet
        + CategoryInfo          : ObjectNotFound: (Get-ADComputer:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException


    Chris
    Donnerstag, 15. Dezember 2011 10:53
  • auf meinem Windows 7 mit RSAT kommt nachfolgender Fehler

    Get-ADComputer : Fehler beim Analysieren der Abfrage: "Get-ADComputer -Filter {
    PasswordLastSet -le ((get-date).adddays(-365))} -Properties passwordLastSet | f
    t samaccountname,PasswordLastSet" Fehlermeldung: "Operator Not supported: -Filt
    er" an folgender Position: "16".
    Bei Zeile:1 Zeichen:15
    + get-adcomputer <<<<
        + CategoryInfo          : ParserError: (:) [Get-ADComputer], ADFilterParsi
       ngException
        + FullyQualifiedErrorId : Fehler beim Analysieren der Abfrage: "Get-ADComp
       uter -Filter {PasswordLastSet -le ((get-date).adddays(-365))} -Properties
      passwordLastSet | ft samaccountname,PasswordLastSet" Fehlermeldung: "Opera
     tor Not supported: -Filter" an folgender Position: "16".,Microsoft.ActiveD
    irectory.Management.Commands.GetADComputer


    Chris
    Donnerstag, 15. Dezember 2011 14:10
  • Hallo,

    verdammt. Ich sollte das auch testen, was ich schreibe:-).

    Zum ersten Problem:

    Du brauchst eine Shell, in der das AD Modul geladen ist. Auf dem Server und auf Win7 mit installierten RSAT kannst Du das direkt aufrufen. In einer "normalen" Shell importierst Du das Modul einfach: "import-module ActiveDirectory".

    Zum zweiten Problem:

    Es scheint so, dass er das Statement im Filter nicht auswerten mag. Zusätzlich hatte ich noch einen kleinen Syntaxfehler "-resultsize unlimited". Deshalb umgehen wir das jetzt mal:

    $date = ((get-date).adddays(-365))
    get-adcomputer -filter {passwordlastset -le $date} -properties passwordlastset -resultsize $null | ft samaccountname,passwordlastset

     Jetzt passt es aber.

    Viele Grüße

    Frank


    -- Frank Röder blog.iteach-online.de --
    • Als Antwort markiert -- Chris -- Donnerstag, 15. Dezember 2011 15:22
    Donnerstag, 15. Dezember 2011 14:33
  • ohne -resultize $null hats jetzt funktioniert!

     

     

     


    Chris
    Donnerstag, 15. Dezember 2011 15:22