Pytanie : VBScript: Ciągnięcie lastLogonTimestamp

Cześć Ekspert!

I mieć the funkcjonalność poziom I potrzebować wśród DSQUERY i PowerShell, jednakże I myśleć jaki potrzeba robić w mój szczególny skrzynka być the DN ścieżka puszek w szyk tak, że szczególny OU poziom być szczególny.  Na przykład, the teraźniejszy rezultat segregować że I mieć dla to zawierać z grubsza wokoło 75k rząd i the DN ścieżka móc średni anwhere od 3 6 OU głęboko.  W Ten Sposób jaki kończyć jaki być że jaki the inny szpaltowy dane znajdować w OU kolumna albo nawet inny kolumna, więc gdy I iść ono rzucać the cała rzecz daleko.  Stosownie w dół the OU w szyk lub niektóre poniekąd rozszczepiać funtion że ono wykładać rozszczepiać OU rozszczepiać w the kolumna prawidłowo.  Podstawowy the dane być podstawowy prawidłowo przez cały niektóre the spreadsheet.

Więc z ten pismo I chcieć the sAMAccountName, DisplayName, UPN i LogonTimestamp dla ten aktywny użytkownik w mój REKLAMA środowisko.  

The teraźniejszy rezultat kartoteka który I dostawać plecy być w .CSV format che zawierać the przecinek w the DN ścieżka, więc ono być trudny the OU.  W Ten Sposób I wtedy nawracać the CSV TSV i wtedy ustawiać the specjalny operator jako "," w the import i i oddzielać the OU kolumna to, ale gdy I powiedzieć przez jak głęboko the OU iść, ono jak the inny dane i.e. UPN'S, sAMAccountName, LogonTimestamps w inny kolumna.    Jakaś pomoc z ogromnie ogromnie doceniać.  

Odpowiedź : VBScript: Ciągnięcie lastLogonTimestamp


Właściwie use the BU spisywać potrzeba mały modyfikacja ono strasznie nierzetelny.

To być the modyfikacja:

ForEach ($Name w $BU) {Jeżeli ($_.DN - Dopasowywać "OU=$Name, ") {$Name}}

Z the oryginał ono dopasowywać ty ONO jeżeli twój imię zawrzeć ten, z ten ono tylko dopasowywać jeżeli the zupełny OU imię być ONO (hence the OU= prefiks i the, przyrostek).

Chris
(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:
38:
39:
40:
41:
# Wymagać Poszukiwanie CmdLets: http://www.quest.com/powershell/activeroles-server.aspx

# Wspólnota Biznesu Lista
$BU = "Finanse", "Sprzedaż", "Wprowadzać na rynek", "ONO", "Rozwój"

# 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='BusinessUnit'; e= {ForEach ($Name w $BU) {Jeżeli ($_.DN - Dopasowywać "OU=$Name, ") {$Name}}}},
    @ {n='Range'; e= {$IntervalString}}
# Eksportować ono wszystko CSV using Zakładka jako delimiter
} | Eksportować-CSV "SomeFile.csv" - NoTypeInformation - Delimiter `t
Inne rozwiązania  
 
programming4us programming4us