Инструменты пользователя

Инструменты сайта


programming:php:ldap-useraccountcontrol

UserAccountControl PHP parser

function getUserAccountControlAttributes($inputCode){
         /**
         * http://support.microsoft.com/kb/305144
         *
         * You cannot set some of the values on a user or computer object because
         * these values can be set or reset only by the directory service.
         *
         */
         $userAccountControlFlags = array(16777216 => "TRUSTED_TO_AUTH_FOR_DELEGATION",
         8388608 => "PASSWORD_EXPIRED",
         4194304 => "DONT_REQ_PREAUTH",
         2097152 => "USE_DES_KEY_ONLY",
         1048576 => "NOT_DELEGATED",
         524288 => "TRUSTED_FOR_DELEGATION",
         262144 => "SMARTCARD_REQUIRED",
         131072 => "MNS_LOGON_ACCOUNT",
         65536 => "DONT_EXPIRE_PASSWORD",
         8192 => "SERVER_TRUST_ACCOUNT",
         4096 => "WORKSTATION_TRUST_ACCOUNT",
         2048 => "INTERDOMAIN_TRUST_ACCOUNT",
         512 => "NORMAL_ACCOUNT",
         256 => "TEMP_DUPLICATE_ACCOUNT",
         128 => "ENCRYPTED_TEXT_PWD_ALLOWED",
         64 => "PASSWD_CANT_CHANGE",
         32 => "PASSWD_NOTREQD",
         16 => "LOCKOUT",
         8 => "HOMEDIR_REQUIRED",
         2 => "ACCOUNTDISABLE",
         1 => "SCRIPT"
         );
         

        $attributes = NULL;
         while($inputCode > 0)
         {
         foreach($userAccountControlFlags as $flag => $flagName)
         {
         $temp = $inputCode-$flag;
         if($temp>0)
         {
         $attributes[$userAccountControlFlags[$flag]] = $flag;
         $inputCode = $temp;
         }
         if($temp==0)
         {
         if(isset($userAccountControlFlags[$inputCode]))
         {
         $attributes[$userAccountControlFlags[$inputCode]] = $inputCode;
         }
         $inputCode = $temp;
         }
         }
         }
         return $attributes;
}
programming/php/ldap-useraccountcontrol.txt · Последнее изменение: 2017/03/27 11:26 — artur

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki