使用PHP往Windows系统中添加用户
一、再Web中添加用户
因为添加用户,所以你运行PHP程序的用户必须是管理员权限(Administrator),并且同时需要你的php.ini中的安全模式没有打开,并且关闭函数中没有关闭system()、exec()、passthru()等函数。
( 以下说明针对Windows2000/Windows XP/Windows 2003 )
1、使用IIS做Web服务器
如果是使用IIS做服务器的话,那么运行PHP的帐户就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服务器的计算机名),那么你必须把这两个用户加到管理员组:Administrators 。当然,你这样做的话,会给服务器安全带来威胁。
2、使用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做shell脚本来添加用户
另外,其实我还有个思路。可以在服务器端利用php.exe来执行,并且不会有安全问题。我刚做了测试,已经通过。
假设你的php安装在c:\php\中,那么我们就使用命令提示符的来执行php脚本来添加用户。
PHP代码:
//c:\test.php
<?php
@system("net user heiyeluren 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中轻型的数据库抽象类:ADODB Lite
- · PHP的计数器程序:解决全部可能遇到的问题
- · PHP下如何对文件进行加锁
- · PHP和.NET版客户端信息自动生成
- · php作wap开发时遇到的问题
- · PHP实现QQ挂机编程(2):取QQ在线状态
- · Windows环境下用Apache+PHP+MySql配置web服务器(菜鸟版)
- · PHP生成静态页面的两种方法
- · 一个利用PHP语言读取数据库数据的例子
- · php开发中实用的两条sql
- · 使用php 5时MySQL返回乱码的解决办法
- · PHP中静态页处理动态内容的思路
- · FreeBSD下的vi支持中文显示和编辑
- · PHP5在Apache下的两种模式的安装
- · 用php实现qq挂机的程序
- · PHP禁止图片盗链
- · PHP禁止图片盗链
- · PHP 实现的字典序排列算法
- · 用php实现真正的连动下拉列表
- · php如何更好更有效的实现-----用户注册页面
- · PHP和ASP中关于转向函数的区别
- · php删除文件夹及其文件夹下所有文件
- · php用流方式制作缩略图
- · 限制IP访问的思路和PHP代码
- · php生成SessionID和图片校验码的思路和实现
- · 带你走进PHP的世界 PHP新手上路之一
- · php优化及高效提速问题小结
- · 根据来路是否为搜索引擎来决定是否跳出弹窗代码
- · Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
- · php版的验证码程序
- · 如何实现日期比较,暨实现显示5天内,显示10天内的记录
- · 使用 php4 加速 web 传输
- · PHP当中取得URL及物理路径的总结
- · 如何在自己的主页上使用PHP
- · PHP中操作MySQL的一些要注意的问题
- · PHP中操作MySQL的一些要注意的问题
- · PHP使用无限生命期Session的方法
- · Win9x/ME下Apache+PHP安装配置
