如何使用PHP往windows中添加用户


Posted in PHP onDecember 06, 2006

方法有一:  

因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数中没有关闭system()、exec()、passthru()等函数。  

( 以下说明针对Windows2000/Windows XP/Windows 2003 )  
一、使用IIS做Web服务器  
如果是使用IIS做服务器的话,那么运行PHP的帐户就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服务器的计算机名),那么你必须把这两个用户加到管理员组:Administrators 。当然,你这样做的话,会给服务器安全带来威胁。  

二、使用Apache作为Web服务器  
据了解,Apache安装成服务以后,那么就是以system权限运行的,那么就是说PHP运行的话,直接就是系统权限,已经超过了管理员权限,那么执行命令更不再话下。如果你修改了Apache的运行用户,那么你必须指定Apache服务运行用户是管理员以上权限,比如Administor或者system权限。  
然后你就可以在你的PHP代码中执行添加用户操作了:  
描述如下代码:  

<?php  
define("USER_GROUP", "users"); //用户组,默认为users,为了安全,定义还是的用户组  
define("ACTIVE", "YES"); //是否创建后直接激活用户,YES为激活,NO为不激活  

//从数据库提取用户名和密码  
//假设表为user_info,并且只有字段id, user, passwod  
$sql = "SELECT user,password FROM user_info";  
$result = mysql_query($sql) or die("Query database failed");  
//循环插入用户  
while ($array = mysql_fetch_array($result)) {  
if (!function_exists("system"))  
die('Function system() not exists, add user failed.');  
//添加用户  
@system("net user $array[user] $array[passwd] /active:ACTIVE /add");  
//添加到指定组  
@system("net localgroup users $array[user] /del");  
@system("net localgroup USER_GROUP $array[user] /add");  
}  
?> 

以上代码实现了把你所有数据库的用户添加到本地系统,如果你想单个的添加,可以考虑更改成用户注册成功后就添加用户,这个可以自己扩展。  

不过,此方法不能实现同步  

方法二:  
可以在服务器端利用php.exe来执行,并且不会有安全问题。  

假设你的php安装在c:\php\中,那么我们就使用命令提示符的来执行php脚本来添加用户。  

PHP代码:  
//c:\test.php  
<?php  
@system("net user test test /add");  
?>  
保存在c:\test.php文件中  
在cmd下执行:  
c:\php\php.exe c:\test.php  
提示:  
C:\>c:\php\php.exe c:\test.php  
命令成功完成。  

再将方法一中的那段代码拿到这里来执行,然后php.exe充当shell脚本引擎。然后写成批处理,通过定时任务来执行。当然,也可以考虑使用其他语言来实现,比如vb/vc之类的,定期去数据库中检索是否有新添加的用户,然后再把用户添加到系统中。

PHP 相关文章推荐
php flush类输出缓冲剖析
Oct 19 PHP
PHPMYADMIN导入数据最大为2M的解决方法
Apr 23 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
php调用c接口无错版介绍
Mar 11 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
php提取字符串中网站url地址的方法
Dec 03 PHP
PHP实现的简易版图片相似度比较
Jan 07 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
php目录拷贝实现方法
Jul 10 PHP
PHP翻页跳转功能实现方法
Nov 30 PHP
Zend Framework教程之Zend_Db_Table表关联实例详解
Mar 23 PHP
PHP7.1新功能之Nullable Type用法分析
Sep 26 PHP
php巧获服务器端信息
Dec 06 #PHP
Apache2 httpd.conf 中文版
Dec 06 #PHP
PHP 字符串操作入门教程
Dec 06 #PHP
让你的网站首页自动选择语言转跳
Dec 06 #PHP
PHP经典的给图片加水印程序
Dec 06 #PHP
echo, print, printf 和 sprintf 区别
Dec 06 #PHP
PHP数字格式化
Dec 06 #PHP
You might like
php实例分享之mysql数据备份
2014/05/19 PHP
php常见的魔术方法详解
2014/12/25 PHP
Jquery post传递数组方法实现思路及代码
2013/04/28 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
JQuery DIV 动态隐藏和显示的方法
2016/06/23 Javascript
老生常谈 js中this的指向
2016/06/30 Javascript
vuejs2.0实现一个简单的分页示例
2017/02/22 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
2017/05/26 jQuery
protractor的安装与基本使用教程
2017/07/07 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
JS实现验证码倒计时的注册页面
2018/01/02 Javascript
AngularJS日期格式化常见操作实例分析
2018/05/17 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
[01:39:04]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第二场 2月1日
2021/03/11 DOTA
Python isinstance判断对象类型
2008/09/06 Python
浅谈Python 多进程默认不能共享全局变量的问题
2019/01/11 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
python实现智能语音天气预报
2019/12/02 Python
python爬虫筛选工作实例讲解
2020/11/23 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
canvas进阶之贝塞尔公式推导与物体跟随复杂曲线的轨迹运动
2018/01/10 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
年级组长自我鉴定
2014/02/22 职场文书
护士自我鉴定总结
2014/03/24 职场文书
2015关爱留守儿童工作总结
2014/12/12 职场文书
小学生作文批改评语
2014/12/25 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
高质量“欢迎词”
2019/04/03 职场文书