How do I change my windows domain password from Mac OS X?

From the terminal:

$ smbpasswd -U username -r DOMAIN_CONTROLLER_IP

$ smbpasswd -h
When run by root:
    smbpasswd [options] [username]
otherwise:
    smbpasswd [options]

options:
  -L                   local mode (must be first option)
  -h                   print this usage message
  -s                   use stdin for password prompt
  -c smb.conf file     Use the given path to the smb.conf file
  -D LEVEL             debug level
  -r MACHINE           remote machine
  -U USER              remote username
extra options when run by root or in local mode:
  -a                   add user
  -d                   disable user
  -e                   enable user
  -i                   interdomain trust account
  -m                   machine trust account
  -n                   set no password
  -W                   use stdin ldap admin password
  -w PASSWORD          ldap admin password
  -x                   delete user
  -R ORDER             name resolve order

Another suggestion is to log in to your company's Email Web Portal. Many companies are using MS Exchange which supports changing your password through your web email session. I had this exact issue with users who were not on macs, but instead would never touch a machine that was part of the Active Directory. The webmail/password change interface made this possible and it worked for several hundred users. I must admit the failure messages were quite cryptic and utterly useless. If the password change fails because your new password lacks the complexity, it will likely fail at telling you that. So just be aware of that one limitation.


Piggybacking off of @Havey's answer (requires non-Apple Samba, macports etc.):


I never know/remember what the IP is of the domain controller, so I've created the below script to just bring up smbpasswd to the old/new password prompt.

#!/bin/bash

USER="joe.bob"                                             
DOMAIN="acme.com"

smbpasswd -U $USER -r `nslookup _ldap._tcp.dc._msdcs.$DOMAIN | awk '{print $2;exit;}'`