Le Café Central de

                    ... Deva blogs!!

  • Le Café Central de DeVa

    Exchange Store - Experiences (FAQ) - Part 3


    One of my customer asked this question, "what is the Difference between Mailbox store & Public folder store objects in Active Directory & Exchange System Manager ?".

     Yep, not only him, many of us want to know the same?

    • @ Active Directory Sites and Services, mailbox store and public folder store objects are represented by leaf nodes that do not contain child objects.
    • @ Exchange System Manager,  mailbox store and public folder store objects are represented as nodes in the console tree.
    • ESM tree contain several child containers, such as Logons, Mailboxes or Public Folders, Public Folder Instances, Replication Status, and Full-Text Indexing.
  • Le Café Central de DeVa

    Top support issues for Exchange Server Information Stores


    I found this wonderful article, which discusses the top support issues for the Microsoft Exchange 2000 & 2003 Server information stores.

    This article lists references to Microsoft Knowledge Base articles that describe the issues that may occur when you use the Microsoft Exchange information stores. Additionally, this article lists references to Microsoft Knowledge Base articles that discuss how to troubleshoot issues that you may experience.

    This article does not provide a complete list of all the support issues for the Exchange information stores, but certainly it will be a eye opener or will fit into 'generic starter' soup!!

  • Le Café Central de DeVa

    Exchange Store Event interfaces


    1) In general, by where Exchange Store event interfaces are implemented?

    Exchange Store event interfaces are implemented in EXOLEDB.DLL and EXEVTSNK.TLB.

    2) What're the unsupported Exchange store event interfaces? 

    When we program with Exchange store, certain event interfaces are not supported. It is recommended that they not be used in applications:

    • IEventSinkIsCacheable Interface
    • IExStoreLockEvents Interface
    • IExStoreNotification Interface
    • IExStoreRegisterNotification Interface
    • IGetLockRow Interface
  • Le Café Central de DeVa

    Exchange Store - Experiences (FAQ) - Part 2


    Here are some questions that are frequently asked by my customers whenever they try to access/enumerate Exchange Store: 

    1) Can you name some of the known URL's of users mailbox folders?

    Calendar          file://./backofficestorage/example.com/MBX/UserAlias/Calendar
    Sent Items       

    2) What do you meant by "Public folder replication"?

    Public folder replication is the process by which public folder content and the public folder hierarchy is replicated across multiple servers for efficiency and fault tolerance purposes.

    • When multiple public folder databases that are located on separate servers support a single public folder tree, Microsoft Exchange uses public folder replication to keep the databases synchronized. 
    • Public folder content exists only in Exchange stores that are configured to have a replica of a specific folder.
    • Content and hierarchy information are replicated separately.
    • Each public folder database retains a copy of the hierarchy, which includes lists of the other public folder databases that retain content replicas of each folder.
    • Content replicas exist only on the public folder databases that you specify

    3) What do you mean by "Exchange Store Schema"?

    Exchange store schema consists of properties that define all resources in the store, including e-mail messages, appointments, folders, and contacts. It includes numerous predefined properties you can use in your applications.

    4) Can we extend the "Exchange Store Schema"?

    Yes, you can also extend the Exchange store schema by defining your own custom properties.

    5) What is so called "Namespace" in "Exchange Store Schema"?

    A namespace provides a unique name for every property in the Exchange store schema.

    • For example, the namespaces urn:schemas:httpmail: and urn:schemas:mailheader: both contain properties named From.
    • By prefacing the name of a property with the correct namespace, you can avoid collisions between properties with similar names.

    6) What is "DAV:Namespace"?

    This namespaces defines properties for the WebDAV. It includes properties for general data access (such as DAV:href). Also it can be used for determining hierarchical information such as DAV:isfolder.

  • Le Café Central de DeVa

    Exchange Server - Technologies - FAQ


    Exchange Server - Frequently Asked Questions 

    When we do Exchange programming with client and server versions of the Exchange Server Providers, MAPI32, EMSMDB, EMSABP and MSPST32 almost or always causes confusion. In this article, we'll discuss about the common terminologies: 

  • What is MAPI? 
  • MAPI will generally mean MAPI32.dll, or the APIs contained. It's an API, implemented largely in MAPI32.dll (Messaging Application Programming Interface, 32 bit build). By using this, developers implement a series of Providers. Providers come in three major types, Transport Providers, Message Store Providers, and Address Book Providers. Providers are DLLs that implement a specific pseudo COM API, such as IMessageStore, and the underlying required interfaces, such as IMAPIProp.

  • Then, what is a MAPI Application?
    It means any application that uses the MAPI calls. MAPI applications work against sets of data sources grouped into Profiles. Profiles are created, saved, and deleted by the Profile Provider. The Profile Provider is implemented in MAPI32.dll in two forms:
    • The temporary profile provider, which stores profile data in temp files.
    • The normal profile provider, which stores profile data in the registry.

    An empty profile gives a MAPI application no data access, so MAPI applications add Providers (also called Services) to the profile. A common thing for MAPI applications to do is add services for EMSMDB and EMSABP to a profile, granting the ability to access data from Exchange Server. Providers do all of the actual work in MAPI. When you submit a message, although the call might pass through MAPI32, it is EMSMDB (or your provider) that does the actual work for sending. When saving a message, it is not MAPI32 that saved the message; it's the message store provider (usually EMSMDB for Exchange Server). When you resolve a recipient, it is not MAPI32 that searches for the user in the address book. It is the Address Book Provider, implementing the IAddrBook interface (probably EMSABP). 

  • What do you meant by CDO or Colloboration Data Objects?  Does CDONTS, CDOSRV, CDOSYS, CDOEX, EXCDO, or CDOEXM all are same jargons?
  • Collaboration Data Objects (CDO) refers to CDO.DLL, not CDONTS, CDOSRV, CDOSYS, CDOEX, EXCDO, or CDOEXM. CDO and Outlook are both MAPI applications, meaning that they use MAPI APIs to access their data and, therefore, the underlying providers. CDO and Outlook share a common set of Properties that, when taken together, define different classes of messages and different functionality. This works similar to the schema in a database; however, MAPI32 does not implement the storage. The Message Store Provider does. In the case of Exchange Server, this provider is EMSMDB, and Exchange Server is mostly agnostic about the semantics of the data that applications choose to store. Exchange Server 5.5 has almost no knowledge of individual named property meanings. Exchange 2000 Server and Exchange Server 2003 are considerably more aware of the significance of particular named properties on different message classes, in particular, calendar items. This logic is implemented in EXOLEDB and EXCDO. In general, it is up to users of a particular set of properties to agree on what those properties mean and how they are manipulated.

    CDO implements an API to manipulate sets of properties together to accomplish tasks, such as scheduling a meeting. Outlook also implements APIs to manipulate sets of properties, and does presentation of that data to the end user. If CDO and Outlook don't agree on what particular properties mean, or on the mechanisms used to control processing logic (for instance, when an appointment has been updated), potential for problems interoperating between Outlook and CDO exist. Although Outlook continues to be updated and expanded with every version, CDO.dll is more or less static at the same level of functionality it has possessed for years. Newer libraries for manipulating calendar data, such as CDOEX, are considerably more up to date.

  • What do you meant by EMSMDB or EMSMDB32 or Exchange Transport Provider? 
  • EMSMDB refers to the Exchange transport provider, EMSMDB32. One example of a provider is EMSMDB2, the "Electronic Messaging System Microsoft Data Base, 32 bit build" provider. EMSMDB implements both a transport and a message store and, as such, is a dual provider.
    The transport is the ability to submit messages to Exchange Server; the message store is the ability to read (and possible write) messages to an Exchange store process.

  • What do you meant by EMSABP or EMSABP32 or Exchange Address Book provider? 
  • EMSABP refers to the Exchange address book provider, EMSABP32. The other common provider involved with Exchange Server is EMSABP, which is an Address Book Provider (Electronic Messaging System Address Book Provider, 32 bit build). EMSABP implements IAddrBook and allows access to the Exchange global address list through Name Service Provider Interface (NSPI).

  • Le Café Central de DeVa

    Migrating from Exchange 2000 and Exchange 2003 APIs

    Migrating from Exchange 2000 and Exchange 2003 APIs
    I found the following article, which will help to users who want to migrate from Exchange Server 2000 and 2003 APIs to Exchange Server 2007. This article talks about Exchange 2000 Server and 2003 based several APIs that are not included in Microsoft Exchange Server 2007.
    Also this article talks about the recommended technologies that are recommended to migrate to.
  • Le Café Central de DeVa

    Exchange Store - Experiences (FAQ) - Part 1


    Here are some questions that are frequently asked by my customers whenever they try to access/enumerate Exchange Store: 

    1) In Exchange Store, how to get all properties for a particular item? 

    To get all the properties for a particular item, bind to it directly by using various technologies like Activex Data Objects, Collaboration Data Objects, OLE DB, or through WebDAV.

    2) So, can i get all properties for all items using SELECT * ?

    This is one of the frequently asked questions from our customers whenever they try to access any of the Exchange Store. But we can't get all properties for all items. Because each item in the folder could have different properties in it.

    3) So, what will we get when we make use of SELECT * ?

    When running the SELECT * statement on a folder, we can get only the list of properties. These properties are defined by the schema for the folder.

    4) What're the properties that cannot be searched? 

    The following properties cannot be searched because their values are only calculated when used and are not stored in the Exchange store.

    DAV:getetag, DAV:href, DAV:lockdiscovery, DAV:parentname, DAV:resourcetype, DAV:searchrequest

    All properties that contain URL values, such as DAV:href, are calculated and UTF-8 encoded. Even this list is not comprehensive and is subject to change.

    5) What're the SQL grammar, functions and functionality are not supported?

    AVG, CONVERT (use CAST), COUNT, CREATE VIEW, DATASOURCE, DELETE, DROP INDEX, INSERT, JOINS, MAX, MIN, Revision ID header (ignored), Scope aliases, SELECT DISTINCT, SET, Scope revision numbers, SHAPE, SUM, UNKNOWN, UPDATE, Wildcard expressions (use CONTAINS, FREETEXT, and LIKE)

    This list is not comprehensive and is subject to change.

    6) When i try to search or index certain properties, it throws errors or getting no results?

    In Exchange store calculates some of the properties but does not store those values/entires. But some of these properties are cached, however, and can be searched or indexed.

    7) What is the property needs to set to access hidden items from MAPI Clients?

    To hide items that are accessible to MAPI clients (like Outlook), you must set the http://schemas.microsoft.com/mapi/proptag/x67aa000b property to true when the item is created.

    Note: If the flag is not set when the item is first created, you cannot hide it later from MAPI clients.

  • Le Café Central de DeVa

    MS Outlook 2007 PIA documentation available @ online


    Please find the Outlook 2007 PIA documentation available @ online

  • Le Café Central de DeVa

    Powershell & cmdlet - In a Nutshell - Part 8 - Configure deleted mailbox retention using Set-Mailboxdatabase cmdlet

    Now we'll discuss how to configure the deleted mailbox retention period in Exchange Server 2007

    Run the following command in Exchange Management shell,

    Set-MailboxDatabase dbName -MailboxRetention 32.00:00:00

    dbname - specifies database name,
    32.00:00:00 - specifies the retention period, i.e., the number of days, hours, minutes, and seconds required for it.

    By default, deleted mailboxes are retained for 30 days before they are purged from the mailbox database.
  • Le Café Central de DeVa

    Powershell & cmdlet - In a Nutshell - Part 7 - Configure the Pickup directory using Set-TransportServer cmdlet


    Find the small article which talks about how to configure the pickup directory in Exchange Server 2007. 

    Exchange Server 2007 & configuring Pickup directory:

    Its' quite interesting to configure the pickup directory in Exchange Server 2007 environment. As we know that the Pickup directory is used by administrators for mail flow testing, or by applications that must create and submit their own messages. If we copy the correctly formatted e-mail message files to the Pickup directory are submitted for delivery.

    • If you've worked configuring with Exchange Server 2003, the same way it won't work "AS IS" in this environment. 
    • You cannot configure the Pickup directory by using the Exchange Management Console.
    • To configure the Pickup directory, you must use the Exchange Management Shell

    Some points to remember:

    • By default, the Pickup directory is located at C:\Program Files\Microsoft\Exchange Server\TransportRoles\Pickup. The directory must be local to the Exchange 2007 computer.

    • By default, the Pickup directory exists on every Exchange 2007 computer that has the Hub Transport server role or the Edge Transport server role installed. 

    • We must log on by using an account that is a member of the local Administrators group on that computer, where Edge Transport server role is installed.
    • By default, the Microsoft Exchange Transport service uses the security credentials of the Network Service user account to create the new Pickup directory and apply the correct permissions
    • Permissions required:
      • Administrator: Full Control
      • System: Full Control
      • Network Service: Read, Write, and Delete Subfolders and Files

    Set-TransportServer cmdlet: 

    To configure the Pickup directory location, we can make use of "Set-TransportServer" cmdlet. This cmdlet lets you configure any transport configuration parameter on a Microsoft Exchange Server 2007 Hub Transport or Edge transport server.

    The Set-TransportServer cmdlet manipulates the following groups of parameters:

    • Domain identity
    • Connection limiting
    • Failed message retry intervals and time-outs
    • Delivery status notification (DSN) messages, intervals, and time-outs
    • Domain Name System (DNS) sources
    • Protocol, undeliverable mail (badmail), and pickup storage location and file size
    • Message tracking location, age, and log size

    Note: The Set-TransportServer cmdlet does not require the Identity parameter to be specified when you run the command. When you use the Set-TransportServer command, you can set any number of parameters at the same time.

    Configuring the Pickup Directory Location:

    To set the Pickup directory to C:\Pickup Directory on an Exchange 2007 computer named Exchangesvr, run the following command:

    Set-TransportServer Exchangesvr -PickupDirectoryPath "C:\Pickup Directory"

    Note: Setting the value of the PickupDirectoryPath parameter to $null disables the Pickup directory. The directory that is specified by the PickupDirectoryPath parameter and the ReplayDirectoryPath parameter can't be the same.

    Still issues or not successful to configure Pickup directory location, you can create the new Pickup directory and apply the correct permissions to it before you use the PickupDirectoryPath parameter with the Set-TransportServer cmdlet.

  • Le Café Central de DeVa

    TNEF & Winmail.dat


    Issue with TNEF:

    The use of TNEF is commonly affected by settings in Outlook that are referred to as "Microsoft Outlook Rich Text Format." Rich Text Format and TNEF are not exactly the same, but they are closely related.

    A TNEF-encoded message contains a plain text version of the message, and a binary attachment that "packages" various other parts of the original message. In most cases, the binary attachment will be named Winmail.dat, and may include:

    The formatted text version of the message (font information, colors, and such)

    OLE objects (embedded pictures, embedded Office documents, and such)

    Special Outlook features (custom forms, voting buttons, meeting requests, and such)

    Regular file attachments that were added to the original message

    In addition to the information listed above, the path to your personal folders file (PST) file and your logon name are embedded in the winmail.dat file. Although this data is not explicitly exposed to the recipient, if the recipient opens the winmail.dat file for editing in a binary or text editor, he can see the path and logon name. Note that no password information is revealed. To ensure that the path to your PST file or your logon name is not included in the winmail.dat attachment, use the steps in this article to send mail that does not include winmail.dat.

    Some Outlook features require TNEF encoding to be understood correctly by an Internet e-mail recipient who also uses Outlook. For example, when you send a message with voting buttons to a recipient over the Internet, if TNEF is not enabled for that recipient, the voting buttons will not be received. Alternatively, for sending messages with regular file attachments, TNEF is not needed. If you are sending e-mail with file attachments to a recipient who does not use Outlook or the Exchange Client, you should manually choose to use a mail format that does not require TNEF (such as plain text). By not sending TNEF messages, the recipient will be able to view and save the attachments as expected.

    Issues when Send & Receiving mails:

    When a message containing TNEF information is received by a mail client that does not understand TNEF, there are three common results:

    The plain text version of the message is received and it contains an attachment named Winmail.dat. The Winmail.dat attachment does not contain any useful information when opened since it is in the special TNEF format.

    The plain text version of the message is received and it contains an attachment with a generic name such as ATT00008.dat or ATT00005.eml. In this case the client is unable to recognize the TNEF part of the message, and is unable to recognize the Winmail.dat file name, so it creates a file name to hold the TNEF information.

    The plain text version of the message is received and the client ignores the Winmail.dat attachment. This is the behavior found in Microsoft Outlook Express. Outlook Express does not understand TNEF, but it does know to ignore TNEF information. The result is a plain text message.

    In addition to the receiving client, it is not uncommon for a mail server to strip out TNEF information from mail messages as it delivers them. If a server option to remove TNEF is turned on, clients will always receive a plain text version of the message. Microsoft Exchange Server is an example of a mail server application that has the option to remove TNEF from messages.

    Internet Standards - Message Encoding:

    The Internet standards for encoding messages such as Multipart Internet Mail Extensions (MIME) and UUENCODE are used independently of TNEF. TNEF can exist in a MIME-encoded message as a MIME body part of type "application/ms-tnef," or in a UUENCODED message as an attachment named Winmail.dat.

    When a TNEF message is sent using MIME, an entry similar to the following is added to the message:


    Alternatively, if a TNEF message is sent using UUENCODE, information similar to the following is added to the bottom of the message:

    begin 600 WINMAIL.DAT M>)\^(C<.`0:0" `$```````!``$``0>0!@`(````Y 0```````#H``$%@ ,` M#@```,L'" `$``<`)P`O``4`0 $!"8 !`"$````S,S5$,C,W,#%"0T-#13$ [. . .]

    In either case, the TNEF encoding is sent to the recipient and must be understood by the receiving client to correctly display the encapsulated information.


    For more information, please read this article

    TNEF & Winmail.dat 

    Exchange Server 2003 uses transport neutral encapsulation format (TNEF) to convert MAPI messages to RFC 822 format. TNEF appears on a message as a MIME attachment of type application/ms-tnef. The attachment is called Winmail.dat. It contains the full message content and any attached files. Only MAPI clients, such as Outlook, are able to decode the Winmail.dat attachment. Non-MAPI clients are unable to decode TNEF and might show Winmail.dat as a typical, but useless file.

    Note: Recipients with mailboxes on an Exchange server, who use Internet clients to access their messages, are not considered non-MAPI recipients. This is because the Exchange store that hosts the mailboxes can produce the necessary RFC 822 content in non-MAPI format when users download MAPI messages from their Inboxes using a POP3 or an IMAP4 client. There are several possible Exchange-to-Exchange transfer scenarios that require MAPI to RFC 822 conversion:

    • Recipient is on an Exchange server in the same routing group   Exchange Server 2003 renders MAPI messages into Summary-TNEF (S/TNEF) format, a special kind of transport-neutral encapsulation format (TNEF), which has no plain text part and is rendered in eight-bit binary format. S/TNEF messages consist only of Winmail.dat.

    Note: Within a routing group, Exchange Server 2003 always uses S/TNEF, because in all remote delivery cases, the message is guaranteed to take either an SMTP hop directly to a server running Exchange 2000 Server or Exchange Server 2003 or go to the Exchange MTA. Exchange 2000 Server and Exchange Server 2003 support binary MIME. On the other hand, if the message is passed to the Exchange MTA for delivery to a server running Exchange Server 5.5 through RPCs, message conversion is not required, because the RFC 822 format is not used.

    • Recipient is on an Exchange server in another routing group and the Exchange organization is operating in native mode   Exchange Server 2003 renders MAPI messages into Summary-TNEF (S/TNEF) format, because in native mode an Exchange organization can include only servers running Exchange 2000 Server and Exchange Server 2003 that support binary MIME.

    • Recipient is on an Exchange server in another routing group and the Exchange organization is operating in mixed mode   In mixed mode, it is possible to use the Internet Mail Service of Exchange Server 5.5 as an SMTP connector, but Internet Mail Service does not support binary MIME. Because the RFC 822 representation of S/TNEF that IMAIL generates is binary MIME, Internet Mail Service is unable to transfer S/TNEF messages. Because the Exchange categorizer cannot detect beforehand what route a message will take, the categorizer does not convert the message to S/TNEF for a recipient that is on a server outside the local routing group in mixed mode. To accommodate a potential Internet Mail Service instance in the transfer path, the Exchange categorizer converts the message to a plain text part and an attachment in legacy TNEF, which is seven-bit MIME that Internet Mail Service, can transfer.

    • Recipient is a MAPI recipient outside the local Exchange organization    Users and administrators can enable the transfer of TNEF across the boundaries of the local Exchange organization for recipients in external messaging environments who use Outlook. Because the recipient is not in the local Exchange organization, the Exchange categorizer cannot determine if all SMTP hosts involved in the message transfer support binary MIME. Correspondingly, the Exchange categorizer converts the message to a plain text part and an attachment in legacy TNEF.

    Note: Non-MAPI recipients typically prefer to receive a message in plain text or HTML without TNEF, because their clients cannot decode the Winmail.dat file that includes the message and all attachments. TNEF encapsulation prevents non-MAPI clients from accessing attachments. Non-Microsoft tools, such as EPOC WMDecode for Windows, might be able to extract attachments from Winmail.dat files.

    • MAPI messages sent to public folders   Messages sent to public folders are always relayed in legacy TNEF format.
    • MAPI messages sent to an expansion server over SMTP   If a message contains a distribution list with an explicit expansion server that is not the local server, the message is forwarded to the expansion server in legacy TNEF format (if SMTP is used for message transfer). In this case, a property is transmitted in the message transfer envelope through XEXCH50 that notifies the expansion server of the time the message was originally received through the Exchange store driver. After the categorizer on the expansion server expands the distribution list, it must apply the effective RFC 822 message formats to the individual recipients. The categorizer uses the Exchange store driver to copy the message to the Exchange store, where IMAIL reads the TNEF data to construct a MAPI message with the submit time of the original message. The SMTP transport subsystem can then read the MAPI message from the store in an RFC 822 format consistent with the recipients' formatting requirements.

    You can control the TNEF format behavior for sending messages by adding the following registry key. The number nn represents the virtual server instance for this machine.


    HKey_Local_Machine\Software\Microsoft\Exchange\StoreDriver\Exchange\ nn \EnableTnef





    Value Data



    A value of 0x0 disables TNEF, and messages are generated without using TNEF. A value of 0x1 will generate a message using legacy TNEF when S/TNEF would ordinarily be generated. A value of 0x2 has no effect, as that is the default behavior.


  • Le Café Central de DeVa

    Creating MailBox Store programatically


    I have found this wonderful piece of code(Visual Basic 6.0), used to create mailbox store.

    '// Name:       CreateNewMailboxStoreDB
    '// Purpose:    To create a new Mailbox Store (MDB) with a given name
    '// Input:      strMDBName            = contains the name of the new MDB to be created
    '//             blnMount                    = True if the new MDB will be mounted after creation or False if the new MDB will not be mounted
    '//             strComputerName       = contains the name of the Exchange 2000 server
    '//             strSGName (Optional) = contains the name of the storage group to create the new MDB in; if it is empty then the new MDB will be created in the
    '//                                                  default Storage Group
    '//             strMDBUrl (Optional ByRef) = contains the URL to the new MDB created;

    Public Sub CreateNewMailboxStoreDB(ByVal strMDBName As String, ByVal strComputerName As String, Optional ByVal blnMount As Boolean, _
                                                              Optional ByVal strSGName As String, Optional ByRef strMDBUrl As String)

        Dim iServer         As New CDOEXM.ExchangeServer
        Dim iMDB            As New CDOEXM.MailboxStoreDB
        Dim arrStGroup()    As Variant
        Dim i               As Integer
        Dim strTemp         As String

        ' Set the name of the MailboxStoreDB
        iMDB.Name = strMDBName

        ' Bind to the Exchange Server
        iServer.DataSource.Open strComputerName

        ' Start to build the URL to the MailboxStoreDB - first part
        strTemp = "LDAP://" & iServer.DirectoryServer & "/" & "cn=" & strMDBName & ","

        ' Set variant array to the ExchangeServer.StorageGroups
        arrStGroup = iServer.StorageGroups

        ' Look in the StorageGroups array if the StorageGroup with strSGName exists
        If strSGName = "" Then
            ' Finish to build the URL to the MailboxStoreDB - add last part
            strMDBUrl = strTemp & iServer.StorageGroups(0)
            For i = 0 To UBound(arrStGroup)
                If InStr(1, UCase(arrStGroup(i)), UCase(strSGName)) <> 0 Then
                    strMDBUrl = arrStGroup(i)
                End If
            If strMDBUrl <> "" Then
                ' Finish to build the URL to the MailboxStoreDB - add last part
                strMDBUrl = strTemp & strMDBUrl
            End If
        End If

        ' Save the New MailboxStoreDB
        iMDB.DataSource.SaveTo strMDBUrl

        ' Mount the MailboxStoreDB if blnMount is True
        If blnMount = True Then
        End If

        ' Cleanup
        Set iServer = Nothing
        Set iMDB = Nothing

    End Sub

  • Le Café Central de DeVa

    Exchange Server 2003 SP2 - API Changes


    Microsoft have done changes in Exchange Server 2003 SP2. It includes new DLLs for several key APIs, and includes some key changes in behavior. While Exchange Server 2003 SP2 does not include any changes to the objects, classes, and interfaces, it does introduce key differences in how some of the APIs work.

    The following API libraries that ship with Exchange Server 2003 or with Microsoft Outlook 2003 have been updated in Exchange Server 2003 SP2:

    • Collaboration Data Objects for Exchange 2000 Server (CDOEX)   CDOEX ships as part of Exchange Server 2003, and must be run on the computer running Exchange Server 2003. The version of CDOEX.DLL that contains this change is 6.5.7638.2.
    • Collaboration Data Objects (CDO) version 1.2.1   CDO 1.2.1 is installed by Outlook 2003 and by Exchange Server 2003. CDO 1.2.1 is not redistributable, and must be run only on computers on which Outlook 2003 or Exchange Server 2003 is installed. The version of CDO.DLL that contains this change is 6.5.7638.2.
    • Exchange OLE DB (ExOLEDB) Provider   The ExOLEDB provider ships as part of Exchange Server 2003, and must be run on the computer running Exchange Server 2003. The version of the ExOLEDB provider DLL that contains this change is 6.5.7638.2.

    Important: These changes only affect the libraries that ship with Exchange Server 2003. The libraries that ship with Microsoft Windows XP, Microsoft Windows 2000 Server, Microsoft Windows Server 2003, and Microsoft Exchange 2000 Server are not affected by these changes.

    For more information, please find the detailed article available

  • Le Café Central de DeVa

    Development related technology & feature changes: Exchange Server 2003 & Exchange server 2000


    Do you know?

    MS Exchange 2000 Server application development-related technologies and features were changed in MS Exchange Server 2003. Some technologies were enhanced, while others were removed, or are not supported in specific scenarios.

    • Exchange WMI Provider Changes
    • Active Directory Schema Changes
    • Managed Wrappers for SMTP Server Event Sinks
    • Anti-spam Infrastructure
    • CDO Component Names Did Not Change

    Exchange 2000 Technologies not Included with Exchange 2003:

    • M: Drive Mapping Removed
    • FrontPage Server Extensions Removed
    • Exchange Instant Messaging Removed
    • SQL Create Index Function Removed
    • Versioning Schema Properties Removed
    • MAPI Technology Changes
    • Visual Studio .NET Technology Support Policy
    • Anonymous Access to IIS Metabase Disabled
    • Public Folders Mail-Disabled by Default
    • savesentitems Field is ignored
    • Exchange 5.5 Event Agent Disabled by Default
    • MSDAIPP Cannot be Run on the Exchange Server

    More information is available at this following article, please click here

  • Le Café Central de DeVa

    Powershell &amp; cmdlet - In a Nutshell - Part 6 - Exchange Management Shell (EMS)


    Exchange Management Shell:

    • It's a new automation and scripting shell.
    • It has the command-line management interface and associated command-line plug-ins for Exchange Server that enable automation of administrative tasks in an Exchange 2007 environment. 
    • It is built on Microsoft Windows PowerShell (“Monad").
    • With Exchange Management Shell administrators can achieve every aspect of Exchange Server 2007.
      • For example, configure transport agents, SMTP connectors, enable new e-mail accounts
    • Mainly the tasks that you can't perform in the Exchange Management Console can be achieve through Exchange Management Shell.
  • Le Café Central de DeVa

    Powershell &amp; cmdlet - In a Nutshell - Part 5 - Listing Service Information using Windows Powershell &amp; cmdlet


    How to list Service Information using Windows Powershell & cmdlet: 

    In Exchange Server 2007, Get-Service cmdlet will be used to retrieve information about the services installed on the computer. By default, it will return the results in alphabetical order.

    (1) Get information about the services installed 


    It will list/get you the information about the service name, status and, display name.

    (2) Get information about the services in sorted

    Get-Service | Sort-Object status, displayname

    Sort-Object - the cmdlet can sort the data in any way we want, Status - service property which needs to be filtered, display - represents display name

    (3) Get information about the services installed, but only for running services

    Get-Service | Where-Object {$_.status –eq "running"}

    Here, Where-Object - the cmdlet filters out everything except those services that are stopped, $_. - the object passed across the pipeline, Status - service property which needs to be filtered, -eq "running" - represents the running services

    (4) Get information about the services installed, but only for stopped services

    Get-Service | Where-Object {$_.status –eq "stopped"}

    Here, Where-Object - the cmdlet filters out everything except those services that are stopped, $_. - the object passed across the pipeline, Status - service property which needs to be filtered, -eq " stopped" - represents the stopped services

  • Le Café Central de DeVa

    Powershell &amp; cmdlet - In a Nutshell - Part 4 - Verify Autodiscover Service info for Outlook 2007 using &quot;Test-OutlookWebServices&quot; cmdlet


    How to verify Autodiscover Service info for Outlook 2007 using "Test-OutlookWebServices" cmdlet:

    In Exchange Server 2007 environment, to verify the Autodiscover service settings for Outlook and that has Client Access server role installed or not, we can use of "Test-OutlookWebServices cmdlet". It verifies information for the services like, (1) Availability service (2) Outlook Anywhere (3) Offline Address Book (4) Unified Messaging.

    The cmdlet tests for a connection to each service. For example, it requests the availability service for the above user to check the user's free/busy information obtained from Client Access server to the Outlook 2007.

    For Example,  "test-OutlookWebServices -identity:sample@administrator.com"

    This cmdlet verifies the service information that is returned to the Outlook 2007 client from the Autodiscover service for sample@administrator.com

  • Le Café Central de DeVa

    Powershell &amp; cmdlet - In a Nutshell - Part 3 - Identifying Cmdlet


    Identifying Cmdlet:

    Simple way to recognize the cmdlets by their name format -- "a verb and noun separated by a dash (-), such as Get-Help, Get-Process, and Start-Service"

    For example, each cmdlet has a help file that you can access by typing:

    get-help <cmdlet-name> -detailed

    It will provide detailed view of the cmdlet help file includes a description of the cmdlet, the command syntax, descriptions of the parameters, and example that demonstrate use of the cmdlet.

    Still for more information, we can identify that,

    • the "get" cmdlets only retrieve data
    • the "set" cmdlets only establish or change data
    • the "format" cmdlets only format data
    • the "out" cmdlets only direct the output to a specified destination.
  • Le Café Central de DeVa

    Powershell & cmdlet - In a Nutshell - Part 2 - About Cmdlets


    About cmdlets: 

    After entry of Exchange Server 2007, there is a famous buzzword called "cmdlet" started revolving. In this series, we'll look some of its features, usage and importance in Exchange Server 2007 environment.

    What is a cmdlet?

    A cmdlet, pronounced "command-let", is the basic unit of Microsoft Shell (codenamed Monad). The Microsoft Shell (Monad) is a break through console shell for Windows. It's designed for the manipulation of objects. 

    They resemble built-in commands in other shells, for example, the Dir command in cmd.exe.

    Advantages of cmdlet with other Existing shells:

    • cmdlets can be called directly from the command line in Exchange Management Shell and run under the context of shell (not as separate process)
    • Unlike in other shells, in the Exchange Management Shell, cmdlets have descriptive verb-noun names.
    • In Unix and Linux environments, shells pipe text from one application to another
    • Monad allows the piping of .NET objects in Windows Environment using console shell.
    • In traditional shells, the commands are executable programs that may vary from very simple to very complex.
    • For Example, in Windows Powershell, we have a new feature "single-feature command - cmdlet" that manipulates objects in available in Windows PowerShell. 
    • Most of the cmdlets are simple and designed to be used in combination with other cmdlets.

    Adjoining issues:

    Monad is revolutionary because text strings were a limitation. Lets we understand how it works.

    • Normally in any console shell, data had to be represented in text & it needs to be broken up into units so that other programs could understand.
    • In Unix or Linux environments to achieve the functionality we need to on depend program like grep to do that.


  • Le Café Central de DeVa

    Powershell & cmdlet - In a Nutshell - Part 1 - Introduction


    What is a PowerShell?

    Windows PowerShell or Powershell or Windows Shell is a new Windows command-line shell (includes an prompt and scripting environment, which can accept and return text) designed for specially system adminis. 

    Windows Powershell Vs. Classic Shell(s):

    • Windows PowerShell does not process text. Instead, it processes objects based on the .NET platform.
    • Windows PowerShell comes with a large set of built-in commands with a consistent interface.
    • All shell commands use the same command parser, instead of different parsers for each tool. This makes it much easier to learn how to use each command.

    New feature?

    PowerShell uses its own scripting language, rather than reusing existing languages, for the following reasons.

    • Windows PowerShell needed a language for managing.NET objects.
    • The language needed to provide a consistent environment for using cmdlets.
    • The language needed to support complex tasks, without making simple tasks more complex.
    • The language needed to be consistent with higher-level languages used in .NET programming, such as C#.


    It is built on top of the .NET common language runtime (CLR) and the .NET Framework, and accepts and returns .NET objects.

    • This fundamental change in the environment brings entirely new tools and methods to the management and configuration of Windows.
    • It gives you access to the file system on the computer easily.
    • So Windows PowerShell providers enable you to access other data stores, like the registry & digital signature certificate stores.
    • Windows PowerShell introduces cmdlet, a single-function command-line tool built into the shell.
      • We can use each cmdlet separately
      • But cmdlet power can be realized when you use these simple tools in combination to perform complex tasks.
      • It have more than 100 basic core cmdlets, and you can write your own cmdlets and share them with other users.

    Pipeline operator:

    The Pipeline operator helps to pass the output of one command to another command as input. In Powershell-cmdlet it receives an object can act directly on its properties and methods without any conversion or manipulation. So that users can refer to properties and methods of the object by name, rather than calculating the position of the data in the output.

    • The pipeline operator (|) sends the result of the command on its left to the command on its right.

    What can we work with Powershell?

    • Can run Windows command-line programs
    • Can open GUI programs like Notepad, Calculator
    • Can capture the text that the Windows programs generate and also make use of that values in Powershell

    For example,

    "c:\> ipconfig | select-string  -pattern 255"

    - "ipconfig" command-line program, which will provide Windows IP configuration details
    - "select-string -pattern 255" cmdlet to manipulate to find the text pattern "255" in the Ipconfig output

  • Le Café Central de DeVa

    How to programmatically create a global address list (GAL) in Exchange Server


    I found an interesting article which talks about Microsoft Visual Basic sample code that demonstrates how to programmatically create a global address list (GAL) in Exchange Server.

    Please click here to read the article

  • Le Café Central de DeVa

    Send Email using CDO without installing the SMTP Service


    Here is a code snippet script that uses CDO to send email from a computer.

    Set objEml = CreateObject("CDO.Message")
    objEml.From = "testuser@admin.com"
    objEml.To = "sampleuser@admin.com"
    objEml.Subject = "Test Mail"
    objEml.Textbody = "Oops...You got the Mail!!"
    objEml.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objEml.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtpserver"
    objEml.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
    Msgbox "Mail Sent!"

    Please note that,
    1) Replace the name SSN with SMTP server name
    2) The script will work where the SMTP Service has not been installed

  • Le Café Central de DeVa

    Send Email from a Script using CDO


    Here is a code snippet of a script that uses CDO to send email from a computer. 

     Set objEml = CreateObject("CDO.Message")
     objEml.From = "testuser@admin.com"
     objEml.To = "sampleuser@admin.com"
     objEml.Subject = "Sample Message"
     objEml.Textbody = "Test Message from Test User"
     Msgbox "Mail Sent!!"

    Please note that the script will work only where SMTP Service has been installed.

  • Le Café Central de DeVa

    Microsoft Surface - Features


    Microsoft Surface - Key Features:

    Direct interaction: Users can actually “grab” digital information with their hands, interacting with content by touch and gesture, without the use of a mouse or keyboard.
    Multi-touch: Surface computing recognizes many points of contact simultaneously, not just from one finger like a typical touch-screen, but up to dozens of items at once.
    • Multi-user: The horizontal form factor makes it easy for several people to gather around surface computers together, providing a collaborative, face-to-face computing experience.
    • Object recognition: Users can place physical objects on the surface to trigger different types of digital responses, including the transfer of digital content. 

  • Le Café Central de DeVa

    Microsoft Surface - Provides life in Restaurants, Hotels, Retail Locations and Casino Resorts


    Microsoft Launches New Product Category: Surface Computing Comes to Life in Restaurants, Hotels, Retail Locations and Casino Resorts

    First commercially available surface computer from Microsoft breaks down barriers and provides effortless interaction with information using touch, natural gestures and physical objects

    Click here to read more about the article

  • Page 26 of 27 (674 items) «2324252627