import win32com,win32com.client
def add_acct(location,account):
ad_obj=win32com.client.GetObject(location)
ad_user=ad_obj.Create('user','cn='+user['login'])
ad_user.Put('sAMAccountName',user['login'])
ad_user.Put('userPrincipalName',user['login']+'@email.address.com')
ad_user.Put('DisplayName',user['last']+' '+user['first']) #fullname
ad_user.Put('givenName',user['first'])
ad_user.Put('sn',user['last'])
ad_user.Put('description','regular account')
ad_user.Put('physicalDeliveryOfficeName','office 1')
ad_user.Extensionattribute10='your own attribute'
ad_user.Put('HomeDirectory',r'\\server1\ '[:-1]+user['login'])
ad_user.Put('HomeDrive','H:')
ad_user.SetInfo();ad_user.GetInfo()
ad_user.LoginScript='login.bat'
ad_user.AccountDisabled=0
ad_user.setpassword('the password')
ad_user.Put('pwdLastSet',0) #-- force reset of password
ad_user.SetInfo()
location='LDAP://OU=org1,DC=company,DC=com'
user={'first':'fred','last':'smith','login':'fred123'}
add_acct(location,user)