Fråga : VBScript: Dra lastLogonTimestamp

Hälsningexperter!

jag har funktionsdugligheten av vad I-förmiddagen som behöver inom en DSQUERY och en PowerShell, however jag funderare vilka behov att göras i mitt särskilda fall är att bryta DN-banan, besegrar i samlingar, så att varje jämn OU är läslig.  Till exempel de närvarande resultaten sparar att jag har för denna innehåller runt om 75k ror ungefärligt och DN-banan kan i genomsnitt uppgå till anwhere från 3 till 6 djupa OU.  Så vad avslutar upp att hända är att några av de andra kolonndatan ska fyndet sig själv i en OU-kolonn eller även en annan kolonn, så, när jag går att sortera, den kastar av det hela tinget.  Genom riktigt att bryta, besegra OU'SNA i en samling, eller några sorterar av den kluvna funtionen som den ska fodrar varje OU upp i kolonnerna korrekt.  I stort datan är inte den columned korrekt alltigenom någon av spreadsheet.
, så med denna skriva mig skulle önskar till handtag sAMAccountNamen, DisplayNamen, UPNEN och LogonTimestampen för varje aktivanvändare i min ANNONSmiljö.  

som det närvarande resultatet sparar att I-förmiddagen som får baksida är i .CSV formaterar som inkluderar kommat i DN-banan, så det är svårt att avskilja dem för att skilja OU'SNA.  Så jag konverterade därefter CSVEN till en TSV, och därefter uppsättningen den speciala operatören som ”,” i importen och denna avskilde OU-kolonnerna ut, men, som jag sade på grund av, hur OU'SNA går djupt, det som orsakar några av de andra datan dvs. UPN, sAMAccountName, LogonTimestamps för att bära över in i andra kolonner.    Någon hjälp med denna uppskattas väldeliga.  
" klar "

Svar : VBScript: Dra lastLogonTimestamp


Faktiskt bruk av BUNA listar behov en liten ändring att förhindra den som är horribly opålitlig.

Denna är ändringen:

ForEach ($Name i $BU) {om ($_.DN - matcha ”OU=$Name,”) {$Name}}

Med original har den skulle matchat dig till DEN om ditt kända inklusive att, med denna den ska endast matchen, om den kända färdiga OUEN är DET (hence OU=-prefixet och, ändelsen).

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:
Nr. kräver sökanden CmdLets: http://www.quest.com/powershell/activeroles-server.aspx

Nr. affärsenheten listar
$BU = ”finans”, ”Salar”, ”marknadsföra”, ”DET”, ”utveckling”,

Nr. mellanrummet between daterar. Ska jordbruksprodukter dessa i finalkolonnen: 0 till 30; 30 till 60, Etc.
$DateRange = 30

Nr. brukssökanden CmdLets som får användarena
Få-QADUser - möjliggjort - IncludedProperties lastLogonTimeStamp - SizeLimit 0 | % {
  Nr. håll på detta för bekvämlighet
  $LastLogon = $_.LastLogonTimeStamp

  Nr. nollställa IntervalStringen, och multiplikatorn värderar
  Nr. starter, genom att söka efter, daterar mindre, än 30 gammala dagar, ökat av 30 på varje passerar av kretsa
  $IntervalString = ""; $Multiplier = 1

  Om ($LastLogon - ne $Null) {
    Gör {
      Nr. se, om inloggningen daterar är, efter specificerade har daterat
      Om ($LastLogon - gt (Få-Datera), .AddDays (- ($DateRange * $Multiplier))) {

        Nr. rekord som detta värderar som ”0 till 30”, eller ”30 till 60”, etc.
        $IntervalString = ”$ ($DateRange * ($Multiplier - 1)) till $ ($DateRange * $Multiplier)”,
      }

      Nr. öka multiplikatorn
      $Multiplier++

    Nr., tills den har en värdera
    } Fördriva ($IntervalString - eq"")
  } Annars {
    $IntervalString = ”N/A”,
  }

  Nr. frambring tillverkad
  $ _, | Välja-Anmärka DN, UserPrincipalName, DisplayName, LastLogonTimeStamp, WhenCreated,
    @ {n='BusinessUnit';e= {ForEach ($Name i $BU) {om ($_.DN - matcha ”OU=$Name,”) {$Name}}}},
    @ {n='Range';e= {$IntervalString}}
Nr. export allt det till en CSV using flik som en delimiter
} | Exportera-CSV ”SomeFile.csv-” - NoTypeInformation - Delimiter`t
Andra lösningar  
 
programming4us programming4us