Exchange 2010 schema information

Hi Experts.

Using Powershell or c# I want to be able to get type information for Exchange attributes.
For example I would like to get a list of properties that are available on a mailbox and the type of that property before I actually get information for a particular mailbox.

Can anyone tell me how to do that?

Thanks.
HagleyAsked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
soostibiConnect With a Mentor Commented:
This is not an easy question. Unfortunately there is no such object in AD as Mailbox. Normal user accounts have Exchange attributes, that relate to mailbox information. Some of these attributes are already in the schema, some come when we extend the schema for Exchange.
Some mailbox related attributes have a name starting with 'msExch-', some don't. So, to filter only Exchange related attributes is not an easy thing.

Here is a code that selects all the attributes starting with "msExch" only. To run this, you have to have ActiveDirectory module imported.
$syntaxhash = @{
'2.5.5.8-1' =	'Boolean'
'2.5.5.9-2' =	'Integer'
'2.5.5.10-4' =	'String(Octet)'
'2.5.5.17-4' =	'String(Sid)'
'2.5.5.2-6' =	'String(Object-Identifier)'
'2.5.5.9-10' =	'Enumeration'
'2.5.5.6-18' =	'String(Numeric)'
'2.5.5.5-19' =	'String(Printable)'
'2.5.5.4-20' =	'CaseIgnoreString(Teletex)'
'2.5.5.5-22' =	'String(IA5)'
'2.5.5.11-23' =	'String(UTC-Time)'
'2.5.5.11-24' =	'String(Generalized-Time)'
'2.5.5.3-27' =	'Case-Sensitive String'
'2.5.5.12-64' =	'String(Unicode)'
'2.5.5.16-65' =	'LargeInteger'
'2.5.5.15-66' =	'String(NT-Sec-Desc)'
'2.5.5.1-127' =	'Object(DN-DN)'
'2.5.5.7-127' =	'Object(DN-Binary)'
'2.5.5.13-127' =	'Object(Presentation-Address)'
'2.5.5.14-127' =	'Object(DN-String)'
'2.5.5.0-' =	'Undefined'
}

filter get-systemAuxiliaryClass 
{
    $ado = Get-ADObject -Properties maycontain, systemmaycontain, systemAuxiliaryClass -Filter {objectClass -eq 'ClassSchema' -and lDAPDisplayName -eq $_} `
        -SearchBase ((Get-ADForest).partitionscontainer -replace "partitions","schema")
    if($ado.systemAuxiliaryClass){
        $ado.systemAuxiliaryClass | get-systemAuxiliaryClass
    }
    $ado 
}

"user" | get-systemAuxiliaryClass | %{
    $_.maycontain, $_.systemmaycontain 
} | %{$_} | ?{$_ -like "msExch*"} | %{
    Get-ADObject -Properties * -Filter {objectClass -eq 'attributeSchema' -and lDAPDisplayName -eq $_} -SearchBase ((Get-ADForest).partitionscontainer -replace "partitions","schema")
} | ft name, @{n="syntax";e={$syntaxhash.($_.attributesyntax +"-"+$_.oMSyntax)}}, ismemberofpartialattributeset, issinglevalued -AutoSize

Open in new window

0
 
soostibiCommented:
Of course, this is a PowerShell code.
0
 
Chris DentPowerShell DeveloperCommented:
This question has been classified as abandoned and is closed as part of the Cleanup Program. See the recommendation for more details.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.