2016-05-31 16 views
0

このPHPスクリプトは、パスワードなしでActive Directoryに有効なユーザーアカウントを作成します。パスワードを設定するには?PHPで新しいActive Directoryユーザーアカウントを作成するときにパスワードを設定する

<?php 
$examplePassword = "34mlrfm$sxkf"; 
$WinTimestamp = "131196672000000000" //30-09-16 00:00:00 

//Create unicode password 
function encodePassword($password) { 
    $password="\"".$password."\""; 
    $encoded=""; 
    for ($i=0; $i <strlen($password); $i++){ $encoded.="{$password{$i}}\000";} 
    return $encoded; 
} 

//Build Active Directory record  
$ldaprecord["accountExpires"] = $winTimestamp; 
$ldaprecord["UserAccountControl"] = "544"; //544 - Account enabled, require password change 
$ldaprecord['userPassword'] = encodePassword($examplePassword); 
$ldaprecoed['otherAttributes'] = "Truncated from question"; 

$ds = ldap_connect($AD_server); // Connect to Active Directory 
if ($ds) { 
    ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3); 
    $r = ldap_bind($ds, $AD_Auth_User, $AD_Auth_PWD); //Bind 
    $r = ldap_add($ds,$dn,$ldaprecord); //Create account 
    ldap_close($ds); //Close connection 
} 
?> 

私はさまざまなパスワードエンコードメードを試しました。

また、パスワードを$ ldaprecord ["unicodepwd"]に挿入しようとしました。その結果、「サーバーは実行したくない」というエラーが発生します。

答えて

0

私はそれが働いている。あなただけの$ ldaprecord [「のunicodePwd」]属性に挿入する必要があるおかげでldap_start_tlsを使用して389で暗号化トラフィック

どちらか

を@stuartbrand、SSL接続を介してパスワード()を設定したり、 $ds = ldap_connect('ldaps://'.$AD_server);

パスワードを使用して636に接続することができます。

関連する問題