Question : VBScript : Traction du lastLogonTimestamp

Bonjour experts ! le

j'ai la fonctionnalité de de ce que j'ai besoin dans un DSQUERY et un PowerShell, toutefois je pense quels besoins d'être faits dans mon cas particulier est de casser le chemin de DN vers le bas dans les rangées de sorte que chaque niveau d'OU soit lisible.  Par exemple, les résultats actuels classent que je prends pour ceci contient rudement autour des rangées 75k et le chemin de DN peut l'anwhere moyen de 3 à 6 OU profondes.  Ainsi le quel finit vers le haut l'événement est que certaines des autres données de colonne se trouveront dans une colonne d'OU ou même une colonne différente, ainsi quand je vais assortir il jette le sujet d'ensemble au loin.  En décomposant correctement les OU dans une rangée ou une certaine sorte de funtion de fente qu'elle rayera chaque OU vers le haut dans les colonnes correctement.  Fondamentalement les données ne sont pas à colonnes correctement dans tous une partie du spreadsheet.

ainsi avec ce manuscrit je voudrais tirer le sAMAccountName, le DisplayName, l'UPN et le LogonTimestamp pour chaque utilisateur actif dans mon environnement d'ANNONCE.  le

que les dossiers de résultat de présent qui je deviens arrière sont dans le format de .CSV qui inclut la virgule dans le chemin de DN, ainsi lui est difficile de les séparer pour distinguer les OU.  Ainsi j'ai alors converti le CSV en TSV et ai alors placé l'opérateur spécial en tant que « , » dans l'importation et ceci séparer les colonnes d'OU dehors, mais comme j'ai dit en raison de la façon dont profondément les OU vont, il faisant pour reporter certaines des autres données c.-à-d. UPN, sAMAccountName, LogonTimestamps en d'autres colonnes.    N'importe quelle aide avec ceci est considérablement appréciée.  
class= de

Réponse : VBScript : Traction du lastLogonTimestamp


En fait l'utilisation de la liste de BU a besoin d'une petite modification pour l'empêcher étant terriblement incertaine.

C'est la modification :

ForEach ($Name dans $BU) {si ($_.DN - assortir « OU=$Name, ") {$Name}}

Avec l'original il vous aurait assorti à LUI si votre nom incluait cela, avec ceci qu'il assortira seulement si le nom complet d'OU est LUI (par conséquent le préfixe d'OU= et, suffixe).

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 :
# exige la recherche CmdLets : http://www.quest.com/powershell/activeroles-server.aspx

# liste d'unité d'entreprise
$BU = « finances », « ventes », « lançant sur le marché », « IL », « développement »

# l'intervalle entre les dates. Produira ces derniers dans la colonne finale : 0 à 30 ; 30 à 60, etc.
$DateRange = 30

# recherche CmdLets d'utilisation pour obtenir les utilisateurs
Obtenir-QADUser - permis - le lastLogonTimeStamp d'IncludedProperties - SizeLimit 0 | % {
  # prise sur ceci pour la convenance
  $LastLogon = $_.LastLogonTimeStamp

  # remettre à zéro les valeurs d'IntervalString et de multiplicateur
  # commence par rechercher des dates plus moins de 30 jours de, incrémenté par 30 sur chaque passage de la boucle
  $IntervalString = "" ; $Multiplier = 1

  Si ($LastLogon - Ne $Null) {
    Faire {
      # voir si la date d'ouverture a lieu après la date spécifique
      Si ($LastLogon - GT (Obtenir-Date) .AddDays (- ($DateRange * $Multiplier))) {

        # disque cette valeur en tant que « 0 à 30 », ou « 30 à 60 », etc.
        $IntervalString = « $ ($DateRange * ($Multiplier - 1)) à $ ($DateRange * $Multiplier) »
      }

      # incrément le multiplicateur
      $Multiplier++

    # jusqu'à ce qu'il ait une valeur
    } Tandis que ($IntervalString - "" d'eq)
  } Autrement {
    $IntervalString = « NON-DÉTERMINÉ »
  }

  # produire du rendement
  $ de _ | Choisir-Objet DN, UserPrincipalName, DisplayName, LastLogonTimeStamp, WhenCreated,
    @ {e= de n='BusinessUnit'; {ForEach ($Name dans $BU) {si ($_.DN - assortir « OU=$Name, ") {$Name}}}},
    @ {e= de n='Range'; {$IntervalString}}
# exportation il tout à un CSV using l'étiquette comme délimiteur
} | Exporter-CSV le `t de délimiteur de « SomeFile.csv » - NoTypeInformation -
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us