2012-09-20 44 views
8

Estoy usando el .NET System.DirectoryServices.ActiveDirectory incorporado para acceder a un controlador de dominio de Active Directory.Recuperar propiedades específicas de Active Directory

Estoy intentando enumerar la colección de propiedades de usuario del servidor, no los valores, sino una lista de configuraciones modificables para cualquier usuario.

En esencia, se trata de un espejo de atributos grabables desde el "Editor de atributo" en Active Directory:

ADUC User Properties

He tratado de captar estos datos utilizando el siguiente código:

ActiveDirectorySchema currSchema = ActiveDirectorySchema.GetSchema(directoryContext); 

    ActiveDirectorySchemaClass userSchema = currSchema.FindClass("user"); 

    ReadOnlyActiveDirectorySchemaPropertyCollection userProperties = userSchema.GetAllProperties(); 

Pero esto devuelve un lote de propiedades que simplemente no están en este diálogo, pero no sé qué hace que estas propiedades sean únicas/especiales.

También probé FindClass ("persona");

¿Hay alguna manera de lograrlo?

actualización

conforme a lo solicitado, aquí es lo que me pasa si solicito lo anterior:

Usando FindClass ("persona")

cn  
instanceType  
nTSecurityDescriptor  
objectCategory  
objectClass 
adminDescription  
adminDisplayName  
allowedAttributes  
allowedAttributesEffective  
allowedChildClasses 
allowedChildClassesEffective  
attributeCertificateAttribute  
bridgeheadServerListBL  
canonicalName  
createTimeStamp 
description 
directReports  
displayName 
displayNamePrintable  
distinguishedName  
dSASignature  
dSCorePropagationData  
extensionName  
flags  
fromEntry  
frsComputerReferenceBL  
fRSMemberReferenceBL  
fSMORoleOwner  
isCriticalSystemObject  
isDeleted  
isPrivilegeHolder  
isRecycled  
lastKnownParent 
managedObjects  
masteredBy  
memberOf  
modifyTimeStamp 
mS-DS-ConsistencyChildCount 
mS-DS-ConsistencyGuid  
msCOM-PartitionSetLink  
msCOM-UserLink  
msDFSR-ComputerReferenceBL  
msDFSR-MemberReferenceBL  
msDS-Approx-Immed-Subordinates  
msDS-AuthenticatedToAccountlist 
msDS-EnabledFeatureBL  
msDS-HostServiceAccountBL  
msDS-IsDomainFor  
msDS-IsFullReplicaFor  
msDS-IsPartialReplicaFor  
msDS-KrbTgtLinkBl  
msDS-LastKnownRDN  
msDS-LocalEffectiveDeletionTime 
msDS-LocalEffectiveRecycleTime  
msDs-masteredBy 
msDS-MembersForAzRoleBL 
msDS-NC-RO-Replica-Locations-BL 
msDS-NCReplCursors  
msDS-NCReplInboundNeighbors 
msDS-NCReplOutboundNeighbors  
msDS-NcType 
msDS-NonMembersBL  
msDS-ObjectReferenceBL  
msDS-OIDToGroupLinkBl  
msDS-OperationsForAzRoleBL  
msDS-OperationsForAzTaskBL  
msDS-PrincipalName  
msDS-PSOApplied 
msDS-ReplAttributeMetaData  
msDS-ReplValueMetaData  
msDS-RevealedDSAs  
msDS-RevealedListBL 
msDS-TasksForAzRoleBL  
msDS-TasksForAzTaskBL  
msSFU30PosixMemberOf  
name  
netbootSCPBL  
nonSecurityMemberBL 
objectGUID  
objectVersion  
otherWellKnownObjects  
ownerBL 
partialAttributeDeletionList  
partialAttributeSet 
possibleInferiors  
proxiedObjectName  
proxyAddresses  
queryPolicyBL  
replPropertyMetaData  
replUpToDateVector  
repsFrom  
repsTo  
revision  
sDRightsEffective  
seeAlso 
serialNumber  
serverReferenceBL  
showInAdvancedViewOnly  
siteObjectBL  
sn  
structuralObjectClass  
subRefs 
subSchemaSubEntry  
systemFlags 
telephoneNumber 
url 
userPassword  
uSNChanged  
uSNCreated  
uSNDSALastObjRemoved  
USNIntersite  
uSNLastObjRem  
uSNSource  
wbemPath  
wellKnownObjects  
whenChanged 
whenCreated 
wWWHomePage 

Usando FindClass ("usuario")

cn  
instanceType  
nTSecurityDescriptor  
objectCategory  
objectClass 
objectSid  
sAMAccountName  
accountExpires  
accountNameHistory  
aCSPolicyName  
adminCount  
adminDescription  
adminDisplayName  
allowedAttributes  
allowedAttributesEffective  
allowedChildClasses 
allowedChildClassesEffective  
altSecurityIdentities  
assistant  
attributeCertificateAttribute  
audio  
badPasswordTime 
badPwdCount 
bridgeheadServerListBL  
businessCategory  
c  
canonicalName  
carLicense  
co  
codePage  
comment 
company 
controlAccessRights 
countryCode 
createTimeStamp 
dBCSPwd 
defaultClassStore  
department  
departmentNumber  
description 
desktopProfile  
destinationIndicator  
directReports  
displayName 
displayNamePrintable  
distinguishedName  
division  
dSASignature  
dSCorePropagationData  
dynamicLDAPServer  
employeeID  
employeeNumber  
employeeType  
extensionName  
facsimileTelephoneNumber  
flags  
fromEntry  
frsComputerReferenceBL  
fRSMemberReferenceBL  
fSMORoleOwner  
garbageCollPeriod  
gecos  
generationQualifier 
gidNumber  
givenName  
groupMembershipSAM  
groupPriority  
groupsToIgnore  
homeDirectory  
homeDrive  
homePhone  
homePostalAddress  
houseIdentifier 
info  
initials  
internationalISDNNumber 
ipPhone 
isCriticalSystemObject  
isDeleted  
isPrivilegeHolder  
isRecycled  
jpegPhoto  
l  
labeledURI  
lastKnownParent 
lastLogoff  
lastLogon  
lastLogonTimestamp  
legacyExchangeDN  
lmPwdHistory  
localeID  
lockoutTime 
loginShell  
logonCount  
logonHours  
logonWorkstation  
mail  
managedObjects  
manager 
masteredBy  
maxStorage  
memberOf  
mhsORAddress  
middleName  
mobile  
modifyTimeStamp 
mS-DS-ConsistencyChildCount 
mS-DS-ConsistencyGuid  
mS-DS-CreatorSID  
msCOM-PartitionSetLink  
msCOM-UserLink  
msCOM-UserPartitionSetLink  
msDFSR-ComputerReferenceBL  
msDFSR-MemberReferenceBL  
msDRM-IdentityCertificate  
msDS-AllowedToDelegateTo  
msDS-Approx-Immed-Subordinates  
msDS-AuthenticatedAtDC  
msDS-AuthenticatedToAccountlist 
msDS-Cached-Membership  
msDS-Cached-Membership-Time-Stamp  
msDS-EnabledFeatureBL  
msDS-FailedInteractiveLogonCount  
msDS-FailedInteractiveLogonCountAtLastSuccessfulLogon  
msDS-HABSeniorityIndex  
msDS-HostServiceAccountBL  
msDS-IsDomainFor  
msDS-IsFullReplicaFor  
msDS-IsPartialReplicaFor  
msDS-KeyVersionNumber  
msDS-KrbTgtLinkBl  
msDS-LastFailedInteractiveLogonTime 
msDS-LastKnownRDN  
msDS-LastSuccessfulInteractiveLogonTime 
msDS-LocalEffectiveDeletionTime 
msDS-LocalEffectiveRecycleTime  
msDs-masteredBy 
msDS-MembersForAzRoleBL 
msDS-NC-RO-Replica-Locations-BL 
msDS-NCReplCursors  
msDS-NCReplInboundNeighbors 
msDS-NCReplOutboundNeighbors  
msDS-NcType 
msDS-NonMembersBL  
msDS-ObjectReferenceBL  
msDS-OIDToGroupLinkBl  
msDS-OperationsForAzRoleBL  
msDS-OperationsForAzTaskBL  
msDS-PhoneticCompanyName  
msDS-PhoneticDepartment 
msDS-PhoneticDisplayName  
msDS-PhoneticFirstName  
msDS-PhoneticLastName  
msDS-PrincipalName  
msDS-PSOApplied 
msDS-ReplAttributeMetaData  
msDS-ReplValueMetaData  
msDS-ResultantPSO  
msDS-RevealedDSAs  
msDS-RevealedListBL 
msDS-SecondaryKrbTgtNumber  
msDS-Site-Affinity  
msDS-SourceObjectDN 
msDS-SupportedEncryptionTypes  
msDS-TasksForAzRoleBL  
msDS-TasksForAzTaskBL  
msDS-User-Account-Control-Computed  
msDS-UserPasswordExpiryTimeComputed 
msExchAssistantName 
msExchHouseIdentifier  
msExchLabeledURI  
msIIS-FTPDir  
msIIS-FTPRoot  
mSMQDigests 
mSMQDigestsMig  
mSMQSignCertificates  
mSMQSignCertificatesMig 
msNPAllowDialin 
msNPCallingStationID  
msNPSavedCallingStationID  
msPKI-CredentialRoamingTokens  
msPKIAccountCredentials 
msPKIDPAPIMasterKeys  
msPKIRoamingTimeStamp  
msRADIUS-FramedInterfaceId  
msRADIUS-FramedIpv6Prefix  
msRADIUS-FramedIpv6Route  
msRADIUS-SavedFramedInterfaceId 
msRADIUS-SavedFramedIpv6Prefix  
msRADIUS-SavedFramedIpv6Route  
msRADIUSCallbackNumber  
msRADIUSFramedIPAddress 
msRADIUSFramedRoute 
msRADIUSServiceType 
msRASSavedCallbackNumber  
msRASSavedFramedIPAddress  
msRASSavedFramedRoute  
msSFU30Name 
msSFU30NisDomain  
msSFU30PosixMemberOf  
msTSAllowLogon  
msTSBrokenConnectionAction  
msTSConnectClientDrives 
msTSConnectPrinterDrives  
msTSDefaultToMainPrinter  
msTSExpireDate  
msTSExpireDate2 
msTSExpireDate3 
msTSExpireDate4 
msTSHomeDirectory  
msTSHomeDrive  
msTSInitialProgram  
msTSLicenseVersion  
msTSLicenseVersion2 
msTSLicenseVersion3 
msTSLicenseVersion4 
msTSLSProperty01  
msTSLSProperty02  
msTSManagingLS  
msTSManagingLS2 
msTSManagingLS3 
msTSManagingLS4 
msTSMaxConnectionTime  
msTSMaxDisconnectionTime  
msTSMaxIdleTime 
msTSPrimaryDesktop  
msTSProfilePath 
msTSProperty01  
msTSProperty02  
msTSReconnectionAction  
msTSRemoteControl  
msTSSecondaryDesktops  
msTSWorkDirectory  
name  
netbootSCPBL  
networkAddress  
nonSecurityMemberBL 
ntPwdHistory  
o  
objectGUID  
objectVersion  
operatorCount  
otherFacsimileTelephoneNumber  
otherHomePhone  
otherIpPhone  
otherLoginWorkstations  
otherMailbox  
otherMobile 
otherPager  
otherTelephone  
otherWellKnownObjects  
ou  
ownerBL 
pager  
partialAttributeDeletionList  
partialAttributeSet 
personalTitle  
photo  
physicalDeliveryOfficeName  
possibleInferiors  
postalAddress  
postalCode  
postOfficeBox  
preferredDeliveryMethod 
preferredLanguage  
preferredOU 
primaryGroupID  
primaryInternationalISDNNumber  
primaryTelexNumber  
profilePath 
proxiedObjectName  
proxyAddresses  
pwdLastSet  
queryPolicyBL  
registeredAddress  
replPropertyMetaData  
replUpToDateVector  
repsFrom  
repsTo  
revision  
rid 
roomNumber  
sAMAccountType  
scriptPath  
sDRightsEffective  
secretary  
securityIdentifier  
seeAlso 
serialNumber  
serverReferenceBL  
servicePrincipalName  
shadowExpire  
shadowFlag  
shadowInactive  
shadowLastChange  
shadowMax  
shadowMin  
shadowWarning  
showInAddressBook  
showInAdvancedViewOnly  
sIDHistory  
siteObjectBL  
sn  
st  
street  
streetAddress  
structuralObjectClass  
subRefs 
subSchemaSubEntry  
supplementalCredentials 
systemFlags 
telephoneNumber 
teletexTerminalIdentifier  
telexNumber 
terminalServer  
textEncodedORAddress  
thumbnailLogo  
thumbnailPhoto  
title  
tokenGroups 
tokenGroupsGlobalAndUniversal  
tokenGroupsNoGCAcceptable  
uid 
uidNumber  
unicodePwd  
unixHomeDirectory  
unixUserPassword  
url 
userAccountControl  
userCert  
userCertificate 
userParameters  
userPassword  
userPKCS12  
userPrincipalName  
userSharedFolder  
userSharedFolderOther  
userSMIMECertificate  
userWorkstations  
uSNChanged  
uSNCreated  
uSNDSALastObjRemoved  
USNIntersite  
uSNLastObjRem  
uSNSource  
wbemPath  
wellKnownObjects  
whenChanged 
whenCreated 
wWWHomePage 
x121Address 
x500uniqueIdentifier  

aclaraciones sobre los datos devueltos

userSchema

userSchema

UserProperties

userProperties

+0

¿Qué atributos está recuperando que no están en el editor de atributos? –

+0

@StevenMurawski Hola, he actualizado la pregunta con la salida – Dan

+0

¿Qué devuelve ** GetAllProperties **? – RL89

Respuesta

0

"Pero esto devuelve una gran cantidad de propiedades que simplemente no están en este diálogo, pero no sé qué hace que estas propiedades sean únicas especial ".

Windows server viene con un Esquema AD predefinido. Esa es la lista básica de valores únicos/especiales. Si tiene, por ejemplo, un servidor de intercambio instalado, Exchange agregará un montón de propiedades adicionales únicas/especiales a la lista porque agrega un esquema de AD de Exchange para que base el esquema de Windows AD. Esencialmente, una instalación base de AD de Windows le mostrará sus objetos de esquema garantizados, y todos los demás objetos son opcionales dependiendo de las configuraciones y el software instalado en su red.

Recomiendo encarecidamente usar el complemento de editor adsi para hacer este tipo de programación: http://technet.microsoft.com/en-us/library/cc773354%28v=ws.10%29.aspx. Esto te ayudará a saber qué cuerdas mágicas puedes poner en FindClass y te gusta las llamadas como parámetros y te permitirá saber qué obtendrás de AD a través de tu C# call antes de entrar al código.

1

La lista de atributos que pueden modificarse para un objeto se almacena en el atributo allowedAttributesEffective.

Mostrará los atributos para el contexto de seguridad bajo el cual se realizó la consulta.

Echa un vistazo a esta publicación de blog para algunos more information.

Cuestiones relacionadas