Writing MMC scripts

Following are a few examples of scripts that you can write using the MMC API.

This script adds a few users to the LDAP directory:

#!/usr/bin/env python

from mmc.plugins.base import ldapUserGroupControl

users = [('login1', 'passwd1', 'firstname1', 'lastname1'),
         ('login2', 'passwd2', 'firstname2', 'lastname2'),
         ('login3', 'passwd3', 'firstname3', 'lastname3'),
         # ...
         ]

l = ldapUserGroupControl()

for login, password, firstname, lastname in users:
    # Store user into LDAP
    l.addUser(login, password, firstname, lastname)
    # Change user "mail" attribute value
    l.changeUserAttributes(login, 'mail', login + '@example.com')

This script creates SAMBA users into the LDAP directory, with all needed mail attributes for Postfix delivery:

#!/usr/bin/env python

from mmc.plugins.samba import sambaLdapControl
from mmc.plugins.mail import MailControl

users = [('username', 'pass', 'name', 'lastname'),
        ('username2', 'pass2', 'name2', 'lastname2'),
        ]

l = MailControl()
s = sambaLdapControl()

# Add group 'allusers' to the LDAP
l.addGroup('allusers')
for login, password, firstname, lastname in users:
    # Create user into the LDAP
    l.addUser(login, password, firstname, lastname)
    # Add user to a group 'allusers'
    l.addUserToGroup('allusers', login)
    # Set user mail
    l.changeUserAttributes(login,'mail',login+'@domain')
    # Add user needed mail objectClass
    l.addMailObjectClass(login,login)
    # Set user mail quota
    l.changeUserAttributes(login,'mailuserquota','512000')
    # Set user mail alias
    l.changeUserAttributes(login,'mailalias','allusers')
    # Add all SAMBA related attributes to the user
    # The SAMBA account will log in with the given SAMBA password
    s.addSmbAttr(login, password)
    # Set user POSIX account password (set the userPassword LDAP field)
    l.changeUserPasswd(login,password)
    # Enable mail delivery for this user
    l.changeMailEnable(login, True)