Frage : VBScript: Ziehen von lastLogonTimestamp

Hallo Experten!

habe ich die Funktionalität von, was ich innerhalb eines DSQUERY und eines PowerShell benötige, gleichwohl ich denke, welche Notwendigkeiten, in meinem besonderen Fall getan zu werden ist, den DN-Weg unten in den Reihen zu brechen, damit jedes OU-Niveau lesbar ist.  Z.B. archivieren die anwesenden Resultate, dass ich für dieses enthalte ungefähr um Reihen 75k habe und der DN-Weg durchschnittliches anwhere von 3 bis 6 tiefe OU kann.  So, welcher oben geschehen ist beendet, dass einige der anderen Spaltendaten in einer OU-Spalte oder sogar in einer anderen Spalte sich finden, also, wenn ich gehe zu sortieren, wirft er die ganze Sache weg.  Durch die OU in einer Reihe oder in irgendeiner Art von Spalte funtion richtig aufgliedern, dass sie jeden OU oben in den Spalten richtig zeichnet.  Im Allgemeinen sind die Daten nicht richtig während einiges des spreadsheet.

columned, also mit diesem Index würde ich das sAMAccountName, das DisplayName, das UPN und das LogonTimestamp für jeden aktiven Benutzer in meiner ANZEIGEN-Umwelt ziehen wollen.  

, welches die Geschenkresultatsakten, die ich rückseitig erhalte, im .CSV Format, das das Komma im DN-Weg umfaßt, also in ihm sind, ist schwierig, sie zu trennen, um die OU zu unterscheiden.  So wandelte ich dann das CSV in ein TSV um und stellte dann den speziellen Operator als „ein,“ im Import und in diesem die OU-Spalten aussondern, aber, wie ich wegen sagte, wie tief die OU gehen, es einige der anderen Daten d.h. UPN, sAMAccountName, LogonTimestamps veranlassend, um in andere Spalten zu übertragen.    Jede mögliche Hilfe bei diesem wird sehr geschätzt.  

Antwort : VBScript: Ziehen von lastLogonTimestamp


Wirklich benötigt Gebrauch von der BU-Liste eine kleine Änderung, sie zu verhindern seiend schrecklich unzuverlässig.

Dieses ist die Änderung:

ForEach ($Name in $BU) {wenn ($_.DN - „OU=$Name zusammenbringen, ") {$Name}}

Mit der Vorlage angepasst haben es Sie an ES, wenn Ihr Name den umfaßte, mit diesem, das es nur zusammenbringt, wenn der komplette OU-Name ES ist (folglich das OU= Präfix und, Suffix).

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:
6:
37:
38:
39:
40:
41:
# erfordert Suche CmdLets: http://www.quest.com/powershell/activeroles-server.aspx

# Unternehmenseinheit-Liste
$BU = „Finanzierung“, „Verkäufe“, „vermarktend“, „ES“, „Entwicklung“

# der Abstand zwischen Daten. Produziert diese in der abschließenden Spalte: 0 bis 30; 30 bis 60, etc.
$DateRange = 30

# Gebrauch-Suche CmdLets, zum der Benutzer zu erhalten
- Ermöglicht - IncludedProperties lastLogonTimeStamp Erhalten-QADUser - SizeLimit 0 | % {
  # Einfluss auf dieses für Bequemlichkeit
  $LastLogon = $_.LastLogonTimeStamp

  # die IntervalString und Vervielfacherwerte zurückstellen
  # beginnt, indem nach Daten weniger als 30 Tage suchen alt, erhöht durch 30 auf jedem Durchlauf der Schleife
  $IntervalString = ""; $Multiplier = 1

  Wenn ($LastLogon - Ne $Null) {
    Tun {
      # sehen, wenn das LOGON-Datum nach dem spezifizierten Datum ist
      Wenn ($LastLogon - GT (Erhalten-Datum) .AddDays (- ($DateRange * $Multiplier))) {

        # Aufzeichnung dieser Wert als „0 bis 30“ oder „30 bis 60“, usw.
        $IntervalString = „$ ($DateRange * ($Multiplier - 1)) zu $ ($DateRange * $Multiplier)“
      }

      # Stufensprung der Vervielfacher
      $Multiplier++

    #, bis es einen Wert hat
    } Während ($IntervalString - eq "")
  } Sonst {
    $IntervalString = „N/A“
  }

  # den Ausgang erzeugen
  $ _ | Vorwählen-Gegenstand DN, UserPrincipalName, DisplayName, LastLogonTimeStamp, WhenCreated,
    @ {n='BusinessUnit'; e= {ForEach ($Name in $BU) {wenn ($_.DN - „OU=$Name zusammenbringen, ") {$Name}}}},
    @ {n='Range'; e= {$IntervalString}}
# Export es aller zu einem CSV using Vorsprung als Begrenzer
} | „SomeFile.csv“ - NoTypeInformation - Begrenzer `t Exportieren-CSV
Weitere Lösungen  
 
programming4us programming4us