Pytanie : ADFIND, DSQUERY lub LDAP Querie dla LastLogOn

Cześć Ekspert!

Potrzebować być prawdopodobnie dosyć łatwy prośba gdy I potrzebować być the następujący atrybut dla użytkownik/komputerowy przedmiot w REKLAMA:

1.) DN Path
2.) UserPrincipleName
3.) DisplayName
4.) LastLogonTimeStamp
5.) WhenCreated

Warstwa I mieć obecnie być wielki, jednakże mój problem być mieć gdy I otwierać the .CSV ponieważ problem mój OU rzucać z wack ponieważ tam  kilka OU warstwa głęboko, warstwa 4 6 warstwa głęboko.  W Ten Sposób gdy I patrzeć mój CSV kartoteka the na najwyższym szczeblu OU I widzieć mój pokaz imię w the ten sam kolumna robić dla poniekąd trudny ponieważ tam  być nad 70,000 rząd data.

adfind - brak - kawałek - f "& (objectcategory=person) (objectclass=user) (! userAccountControl: AND: =2)" samaccountname userprincipalname displayname lastlogontimestamp whencreated - csv - tdca > c:\xxxx\xxxxx\LastLogonRep ort.csv


W whencreated świat, =2) I polubić być the co info w ładny staranny kolumna (więc i móc atleast) i sprawnie jak długo ono być w międzyczasie że użytkownik notować dalej. i.e. 30-60 dzień, 61-120 dzień ect, ect… znać jeżeli 61-120 być ewentualny lub nie i wtedy oczywiście miewać the rezultat piszczeć piszczeć .CSV kartoteka.  Znać jaki zapytanie język być najlepszy i.e. ADFIND, DSQUERY lub LDAP dla to?

     

Odpowiedź : ADFIND, DSQUERY lub LDAP Querie dla LastLogOn


OK w ten sposób…

The prosty forma the zapytanie prosty być forma:

Dostawać-QADUser - Umożliwiać - IncludedProperties LastLogonTimeStamp - SizeLimit (0) |
  Wybierać-protestować DN, UserPrincipalName, DisplayName, LastLogonTimeStamp, WhenCreated |
  Eksportować-CSV SomeFile.csv

The kod notować przedłużyć ten rozkaz, szpaltowy oznaczanie okres gdy the obrachunkowy kopyto szewskie notować dalej.

Świat starannie w kolumna, i, z nadzieją, ty dostawać the z nadzieją świat zbyt;)

Chirs
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
# Wymagać Poszukiwanie CmdLets: http://www.quest.com/powershell/activeroles-server.aspx

# The interwał między data. Produkować kolumna w the definitywny kolumna: (0) 30; 30 60, Etc.
$DateRange = 30

# Use Poszukiwanie CmdLets the użytkownik
Dostawać-QADUser - Umożliwiać - IncludedProperties lastLogonTimeStamp - SizeLimit (0) | % {
  # Chwyt na dogodność dla dogodność
  $LastLogon = $_.LastLogonTimeStamp

  # Reset the IntervalString i Mnożnik wartość
  # Zaczynać dla data pętla niż 30 dzień stary, stary 30 na 30 przepustka the pętla
  $IntervalString = ""; $Multiplier = (1)

  Jeżeli ($LastLogon - ne $Null) {
    {
      # Widzieć jeżeli the logon data być po tym jak the precyzować data
      Jeżeli ($LastLogon - gt (Dostawać-Datować) .AddDays (- ($DateRange * $Multiplier))) {

        # Rejestr ten wartość "(0) 30", lub "30 60", etc
        $IntervalString = "$ ($DateRange * ($Multiplier - 1)) $ ($DateRange * $Multiplier)"
      }

      # Przyrost the mnożnik
      $Multiplier++

    # Until ono mieć wartość
    } Podczas Gdy ($IntervalString - eq "")
  } Inny {
    $IntervalString = "$INTERVALSTRING"
  }

  # Wytwarzać the wydajność
  $ _ | Wybierać-protestować DN, UserPrincipalName, DisplayName, LastLogonTimeStamp, WhenCreated, `
    @ {n='Range'; e= {$IntervalString}}
# Eksport ono csv CSV
} | Eksportować-CSV "SomeFile.csv" - NoTypeInformation
Inne rozwiązania  
 
programming4us programming4us