s4:upgradehelpers.py - use "clearTextPassword" rather than "userPassword"
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Wed, 10 Nov 2010 13:01:58 +0000 (14:01 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Thu, 11 Nov 2010 08:12:25 +0000 (09:12 +0100)
It's the default internal s4 password change attribute

source4/scripting/python/samba/upgradehelpers.py

index d8474dea14be74f6148aaf24171b13edc216d3a6..b1258d2a53304ba89f8e363898dfcb56d517a2c6 100755 (executable)
@@ -27,6 +27,7 @@ import string
 import re
 import shutil
 import samba
+import base64
 
 from samba import Ldb, version, ntacls
 from samba.dsdb import DS_DOMAIN_FUNCTION_2000
@@ -827,12 +828,14 @@ def update_machine_account_password(samdb, secrets_ldb, names):
         res = samdb.search(expression=expression, attrs=[])
         assert(len(res) == 1)
 
-        msg = ldb.Message(res[0].dn)
         machinepass = samba.generate_random_password(128, 255)
-        msg["userPassword"] = ldb.MessageElement(machinepass,
-                                                ldb.FLAG_MOD_REPLACE,
-                                                "userPassword")
-        samdb.modify(msg)
+
+        samdb.modify_ldif("""
+dn: """ + str(res[0].dn) + """
+changetype: modify
+replace: clearTextPassword
+clearTextPassword:: """ + base64.b64encode(machinepass.encode('utf-16-le')) + """
+""")
 
         res = samdb.search(expression=("samAccountName=%s$" % names.netbiosname),
                      attrs=["msDs-keyVersionNumber"])