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