- employeeID (N28 en la table de propiedades)
- employeeIDNumber (N29 en la table de propiedades)
- mail (No listada en la table de propiedades, es de exchange)
- mailNickname (No listada en la table de propiedades, es de exchange)
- bnso365upn (No listada en la table de propiedades, es de exchange)
Import-Module ActiveDirectory
#capturamos el contenido del archivo con el listado de usuarios
$csvcontent = get-content user.txt
#definimos nuestro archivo de salida
$logfile="listadoAtributos.txt"
#Iniciamos el proceso de consulta y escritura en nustro archivo definido
foreach ($user in $csvcontent)
{
#creamos una variable para cada propiedad
$emID =get-aduser -Filter {SamAccountName -eq $user} -Properties * | select employeeID -ErrorAction SilentlyContinue
$emIDN=get-aduser -Filter {SamAccountName -eq $user} -Properties * | select employeeIDNumber -ErrorAction SilentlyContinue
$mail=get-aduser -Filter {SamAccountName -eq $user} -Properties * | select mail -ErrorAction SilentlyContinue
$mailNick=get-aduser -Filter {SamAccountName -eq $user} -Properties * | select mailNickname -ErrorAction SilentlyContinue
$bns365=get-aduser -Filter {SamAccountName -eq $user} -Properties * | select bnso365upn -ErrorAction SilentlyContinue
#escribimos todas las variables consultadas separadas por ,
out-file $logfile -input "$user,$emID, $emIDN, $mail, $mailNick, $bns365" -append
}#fin foreach
El anterior Script se debera ejecutar desde una maquina que tenga el cmdlet de Active Directory y nos generara el archivo listadoAtributos.txt
Si requerimos adicionar otras propiedades solo debemos copiar y pegar una de las lineas de la consulta de propiedades, cambiar el nombre de la variable y reemplazar despues del select el nombre de la propiedad asi:
Aqui estamos consultando la propiedad employeeID
$emID =get-aduser -Filter {SamAccountName -eq $user} -Properties * | select employeeID -ErrorAction SilentlyContinue
Queremos adicionar la propiedad lastLogon
cambiamos $emID por $last (o cualquier nombre que creamos comveniente) y cambiamos employeeID por lastLogon
$last =get-aduser -Filter {SamAccountName -eq $user} -Properties * | select lastLogon -ErrorAction SilentlyContinue
y para introducirlo en nuestro archivo de salida solo adicionamos la variable nueva con una coma en la linea:
out-file $logfile -input "$user,$emID, $emIDN, $mail, $mailNick, $bns365" -append
Quedando:
out-file $logfile -input "$user,$emID, $emIDN, $mail, $mailNick, $bns365, $last" -append
Listado de Propiedades usuario Directorio Activo
1 | accountExpires | 54 | MNSLogonAccount |
2 | AccountLockoutTime | 55 | MobilePhone |
3 | AccountNotDelegated | 56 | Modified |
4 | AllowReversiblePasswordEncryption | 57 | modifyTimeStamp |
5 | BadLogonCount | 58 | msDS-User-Account-Control-Computed |
6 | badPasswordTime | 59 | msExchHomeServerName |
7 | badPwdCount | 60 | msExchUserAccountControl |
8 | CannotChangePassword | 61 | Name |
9 | CanonicalName | 62 | nTSecurityDescriptor |
10 | Certificates | 63 | ObjectCategory |
11 | City | 64 | ObjectClass |
12 | CN | 65 | ObjectGUID |
13 | codePage | 66 | objectSid |
14 | Company | 67 | Office |
15 | Country | 68 | OfficePhone |
16 | countryCode | 69 | Organization |
17 | Created | 70 | OtherName |
18 | createTimeStamp | 71 | PasswordExpired |
19 | Deleted | 72 | PasswordLastSet |
20 | Department | 73 | PasswordNeverExpires |
21 | Description | 74 | PasswordNotRequired |
22 | DisplayName | 75 | POBox |
23 | DistinguishedName | 76 | PostalCode |
24 | Division | 77 | PrimaryGroup |
25 | DoesNotRequirePreAuth | 78 | primaryGroupID |
26 | dSCorePropagationData | 79 | ProfilePath |
27 | EmailAddress | 80 | ProtectedFromAccidentalDeletion |
28 | EmployeeID | 81 | pwdLastSet |
29 | EmployeeNumber | 82 | SamAccountName |
30 | Enabled | 83 | sAMAccountType |
31 | Fax | 84 | ScriptPath |
32 | GivenName | 85 | sDRightsEffective |
33 | HomeDirectory | 86 | ServicePrincipalNames |
34 | HomedirRequired | 87 | showInAddressBook |
35 | HomeDrive | 88 | SID |
36 | HomePage | 89 | SIDHistory |
37 | HomePhone | 90 | SmartcardLogonRequired |
38 | Initials | 91 | sn |
39 | instanceType | 92 | State |
40 | isDeleted | 93 | StreetAddress |
41 | LastBadPasswordAttempt | 94 | Surname |
42 | LastKnownParent | 95 | Title |
43 | lastLogoff | 96 | TrustedForDelegation |
44 | lastLogon | 97 | TrustedToAuthForDelegation |
45 | LastLogonDate | 98 | UseDESKeyOnly |
46 | lastLogonTimestamp | 99 | userAccountControl |
47 | LockedOut | 100 | userCertificate |
48 | lockoutTime | 101 | UserPrincipalName |
49 | logonCount | 102 | uSNChanged |
50 | LogonWorkstations | 103 | uSNCreated |
51 | Manager | 104 | whenChanged |
52 | mDBUseDefaults | 105 | whenCreated |
53 | MemberOf |
En la tabla anterior se lista las propiedades(Atributos) de un usuario en Directorio Activo, cabe aclarar que al integrarse con Exchange el listado crecera.
Espero a alguno le sea util este post
¡Hasta la proxima!
Si te fue útil la información "HAZ CLICK EN LA PUBLICIDAD DE GOOGLE"
visitando nuestros anunciantes, agradeces nuestro trabajo...