Administer openchange mapi profiles databases
mapiprofile [-?GSnEcrlV] [-?|--help] [--usage] [-L|--ldif=PATH] [-G|--getdefault] [-S|--default] [-n|--newdb] [-f|--database=PATH] [-P|--profile=PROFILE] [-I|--address=xxx.xxx.xxx.xxx] [-M|--workstation=WORKSTATION_NAME] [-D|--domain=DOMAIN] [-R|--realm=REALM] [-E|--encrypt] [-v|--exchange-version=2000] [-u|--username=USERNAME] [-C|--language=LANGUAGE] [-s|--pattern=USERNAME] [-p|--password=PASSWORD] [--nopass] [-c|--create] [-r|--delete] [-R|--rename=STRING] [-l|--list] [--listlangs] [--dump] [-a|--attr=VALUE] [--dump-data] [-d|--debuglevel=LEVEL] [--getfqdn] [-k|--kerberos={yes|no}] [-V|--version]
mapiprofile is a command line tool designed to provide administrative support for OpenChange MAPI profiles. A profile in this context represents a single user's connection to a server. It can be thought of as a user's account information stored on the client side. Most OpenChange utilities make use of the profile information stored in the local profile database, often by referring to the name of the profile. In addition, because most users only have a single account, it is possible to designate one profile as the default profile. If a profile is not specified, other utilities will use the default profile (if any) to establish a connection.
mapiprofile is designed so it also provides sample code for developers interested in adding OpenChange MAPI profile support to their applications.
--newdb
-n
Create a new database.
--create
-c
Create a new profile in the database.
--delete
-r
Delete a profile from the database.
--rename PROFILE
-R
Rename a profile in the database
--default
-S
Set the default profile in the database.
--getdefault
-G
Get the default profile name from the database.
--dump
Display information about a specific profile from information stored in the database.
--list
-l
List existing profiles in the database.
--listlangs
List the available languages. These can be used to specify the language name (--language) when creating a profile.
--database DATABASE
-f
Path to the profile database. If no path database is specified then the default one will be used $HOME/.openchange/profiles.ldb
--ldif LDIF
-L
Path to the LDIF files. If no LDIF directory is specified then the default one set at compilation time will be used. This option is only used when creating a new profile database.
--profile PROFILE
-p
Set the profile name to use (e.g. the profile to create or delete, or to dump information about).
--address IP_ADDR|FQDN
-I
Set the Exchange server IP address or fully qualified domain name.
--workstation WORKSTATION
-M
Sets the local computer name.
--domain DOMAIN
-D
Set the Windows domain name.
--encrypt
-E
Require the connection to be encrypted. This is normally required only on Exchange 2010 (and will presumably also be required on future versions), but may be used on Exchange 2003 and Exchange 2007.
--exchange-version
-v
Specify which version of the protocol to use. The reasonable options are 2000, 2003/2007 and 2010. 2000 means use EcDoConnect (0x0) / EcDoRpc (0x2) RPC calls, 2003 or 2007 means use EcDoConnectEx (0xA) / EcDoRpcExt2 (0xB) RPC calls, and 2010 means use EcDoConnectEx (0xA) / EcDoRpcExt2 (0xB) RPC calls over a sealed pipe.
--kerberos
-k
Specify whether to force Kerberos (set to yes), not use Kerberos (set to no). If you omit this option, Kerberos will be used where practical.
--realm REALM
-R
Set the Windows realm
--username
-u
Set the username to use to log on the Exchange server.
--password
-p
Set the password corresponding to the username described above.
--language
-C
Specify the language to use with the account. When specifying the name, you use the name of the language returned within the list --listlangs option displays. See the --listlangs option for how to obtain the full list of languages. The default language code is the system one stored within the LC_CTYPE environment variable.
--pattern
-s
Set a username string pattern mapiprofile should use rather than the default username. This option is used during mapi profile creation.
--nopass
Do not save password in the profile.
--attr VALUE
-a
Print an attribute value.
--dump-data
Dump the hex data.
--debuglevel LEVEL
-d
Set the debug level.
--getfqdn
Returns the DNS fully qualified domain name of the NSPI server matching the legacyDN.
Create a blank MAPI profile database:
mapiprofile --database=/tmp/profiles2.ldb --ldif=/usr/local/samba/share/setup --newdb
Create a new profile using NTLMSSP authentication:
mapiprofile --database=/tmp/profiles.ldb --profile=jkerihuel --username=jkerihuel --password=secret --language=Frenchnbsp;\(France\) --address=192.168.194.22 --workstation=LOCALHOST --domain=OPENCHANGE --create Profile jkerihuel completed and added to database /tmp/profiles.ldb. Note that this account will use French.
Create a new profile using Kerberos authentication:
mapiprofile --database=/tmp/profiles.ldb --profile=jkerihuel --username=jkerihuel --password=secret --language=Frenchnbsp;\(France\) --address=exchange.openchange.local --domain=OPENCHANGE --realm=OPENCHANGE.LOCAL --create
Delete a profile:
mapiprofile --database=/tmp/profiles.ldb --profile=jkerihuel --delete Profile jkerihuel deleted from database /tmp/profiles.ldb
List profiles:
mapiprofile --database=/tmp/profiles.ldb --list We have 2 profiles in the database: Profile = exchange-2000 Profile = jkerihuel
Dump a profile:
mapiprofile --database=/tmp/profiles.ldb --profile=jkerihuel --dump Profile: jkerihuel username == jkerihuel password == secret mailbox == /o=First Organization/ou=First Administrative Group/cn=Recipients/cn=jkerihuel workstation == LOCALHOST domain == OPENCHANGE server == exchange.openchange.local
Dump profile attribute:
mapiprofile --database=/tmp/profiles.ldb --profile=jkerihuel --attr=HomeMDB Profile jkerihuel: HomeMDB = /o=First Organization/ou=First Administrative Group/cn=Configuration/cn=Servers/cn=EXCHANGE2000
Julien Kerihuel <j.kerihuel at openchange dot org>
Brad Hards <bradh at openchange dot org>
The codes for various languages can be found in many places, including the Windows Language Code Identifier (LCID) Reference.