thankyou thankyou thankyou schemers!!!
in the meantime, here's a little cli php hack i wrote for a recent migration. it takes a csv file with each line "email,password", and outputs an ldif file. it assumes your existing password hash doesn't have the crypto prefix so if yours does you might want to strip out the {crypt} bit, and i only had two .tlds - .co.uk and .com - if you have more you'll have to add them or rewrite it properly, sorry for the ugly hack but might help someone here.
PHP Code:
<?php
$lines = file("passwords.csv");
$i=0;
foreach ($lines as $rawline) {
$line = trim($rawline);
$fields = split(",",$line);
$accounts[$i]["email"] = $fields[0];
$accounts[$i]["password"] = $fields[1];
$i++;
}
foreach ($accounts as $account) {
$email1 = split("\.",$account["email"]);
$email2 = split("@",$email1[0]);
echo "dn: uid=" .$email2[0] .",ou=people,dc=" .$email2[1];
if ($email1[1] == "com") echo ",dc=com";
if ($email1[1] == "co" && $email1[2] == "uk") echo ",dc=co,dc=uk";
echo "\n";
echo "changetype:modify\n";
echo "replace:userpassword\n";
echo "userpassword:{crypt}" .$account["password"];
echo "\n\n";
}
?>