# 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 -
|