diff -uNr smbldap-tools-0.9.2.org/smbldap-passwd smbldap-tools-0.9.2/smbldap-passwd
--- smbldap-tools-0.9.2.org/smbldap-passwd	2006-01-03 19:57:41.000000000 +0900
+++ smbldap-tools-0.9.2/smbldap-passwd	2006-10-15 20:56:09.000000000 +0900
@@ -1,4 +1,4 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
 
 # LDAP to unix password sync script for samba
 # $Id: smbldap-passwd,v 1.19 2005/10/31 15:05:22 jtournier Exp $
@@ -48,6 +48,7 @@
 sub make_salt;
 
 my $user= undef;
+my $Password;
 my $oldpass= undef;
 
 my $arg;
@@ -72,7 +73,11 @@
     if ( $< != 0 ) {
       die "Only root can specify username\n";
     }
-    $user= $arg; last;
+    if ($user ne "") {
+	$Password = $arg;
+    } else {
+	$user= $arg; 
+    }
   }
 }
 
@@ -141,6 +146,7 @@
 my $pass;
 my $pass2;
 
+if (!defined($Password)) {
 print "New password: ";
 system "/bin/stty -echo" if (-t STDIN);
 chomp($pass=<STDIN>);
@@ -152,6 +158,9 @@
 chomp($pass2=<STDIN>);
 system "/bin/stty echo" if (-t STDIN);
 print "\n";
+} else {
+    $pass = $pass2 = $Password;
+}
 
 if ($pass ne $pass2) {
   print "New passwords don't match!\n";
diff -uNr smbldap-tools-0.9.2.org/smbldap-useradd smbldap-tools-0.9.2/smbldap-useradd
--- smbldap-tools-0.9.2.org/smbldap-useradd	2006-01-03 19:57:41.000000000 +0900
+++ smbldap-tools-0.9.2/smbldap-useradd	2006-10-15 20:55:40.000000000 +0900
@@ -37,11 +37,11 @@
 use Getopt::Std;
 my %Options;
 
-my $ok = getopts('o:abnmwiPG:u:g:d:s:c:k:t:A:B:C:D:E:F:H:M:N:S:T:?', \%Options);
+my $ok = getopts('o:abnmwiPG:u:g:d:s:c:k:t:A:B:C:D:E:F:H:M:N:S:T:p:?', \%Options);
 
 if ( (!$ok) || (@ARGV < 1) || ($Options{'?'}) ) {
   print_banner;
-  print "Usage: $0 [-awmugdsckABCDEFGHMNPST?] username\n";
+  print "Usage: $0 [-awmugdsckABCDEFGHMNPSTp?] username\n";
   print "  -o	add the user in the organizational unit (relative to the user suffix)\n";
   print "  -a	is a Windows User (otherwise, Posix stuff only)\n";
   print "  -b	is a AIX User\n";
@@ -69,6 +69,7 @@
   print "  -S	family name\n";
   print "  -M	local mailAddress (comma seperated)\n";
   print "  -T	mailToAddress (forward address) (comma seperated)\n";
+  print "  -p  without password prompt sets up with smbldap-passwd.pl\n";
   print "  -?	show this help message\n";
   exit (1);
 }
@@ -529,6 +530,11 @@
   exec "$RealBin/smbldap-passwd \"$userName\""
 }
 
+my $Password;
+if (defined($Password = $Options{'p'})) {
+  exec "/usr/sbin/smbldap-passwd.pl $userName $Password"
+}
+
 exit 0;
 
 ########################################
@@ -539,7 +545,7 @@
 
 =head1 SYNOPSIS
 
-smbldap-useradd [-o user_ou] [-c comment] [-d home_dir] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir]] [-s shell] [-u uid [ -o]] [-P] [-A canchange] [-B mustchange] [-C smbhome] [-D homedrive] [-E scriptpath] [-F profilepath] [-H acctflags] login
+smbldap-useradd [-o user_ou] [-c comment] [-d home_dir] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir]] [-s shell] [-u uid [ -o]] [-P] [-A canchange] [-B mustchange] [-C smbhome] [-D homedrive] [-E scriptpath] [-F profilepath] [-H acctflags] [-p password] login
 
 =head1 DESCRIPTION
 
@@ -627,6 +633,8 @@
 
 -n  do not print banner message
 
+-p  without password prompt sets up with smbldap-passwd.pl
+
 =head1 SEE ALSO
 
        useradd(1)
