使用PHP往Windows系统中添加用户

2016-01-29 15:05 40 1 收藏

使用PHP往Windows系统中添加用户,使用PHP往Windows系统中添加用户

【 tulaoshi.com - PHP 】

 

可以实现, 方法有二。

一、再Web中添加用户

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/php/)

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

( 以下说明针对Windows2000/Windows XP/Windows 2003 )

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

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

然后你就可以在你的PHP代码中执行添加用户操作了:

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/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:phpphp.exe c:test.php
提示:
C:c:phpphp.exe c:test.php
命令成功完成。

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

 

来源:http://www.tulaoshi.com/n/20160129/1495209.html

延伸阅读
标签: 电脑入门
   Tab键是TALBE(表格)的缩写,也叫制表定位键,可能你觉得它只有在编辑文档时才会派上用场。其实不然,在 Windows 系统下Tab键在很多时候都可以作为提升效率的帮手,下面我们就来来看看Tab键在Windows系统下的几种用法。 1、改变焦点 聚焦到下一个按钮,输入框或者链接等。例如:关闭一个未保存的记事本,会弹出一个...
标签: 电脑入门
距离微软正式发布Windows 8操作系统只有一天的时间了,你搞清楚Windows 8全新用户界面的定名了么?是New Windows UI?Windows 8-style UI?Modern UI?还是所有的传言都是不靠谱的,其依旧被叫做Metro?好吧,现在几乎所有人都搞不清Windows8新用户界面的名称。 据TechCrunch报道,从微软发言人提供的官方指南来看:当你提及用户界面,应该称new Windo...
标签: PHP
在开发 PHP 应用中如果不想自己开发新的加密算法,还可以利用PHP提供的crypt()函数来完成单向加密功能。 了解crypt() 只要有一点使用非Windows平台经验的读者都可能对crypt()相当熟悉,这一函数完成被称作单向加密的功能,它可以加密一些明码,但不能反过来将密码重新转换为原来的明码。crypt()函数定义如下。 ...
标签: PHP
  使用ISAPI方式安装PHP。 下载连接:http://cn2.php.net/get/php-4.4.0-Win32.zip/from/cn.php.net/mirror ISAPI方式是WIN系统IIS下最有效率的PHP执行方式。强烈建议。 解压好PHP后,首先找到php.ini-dist   把-dist   去掉,就成了文本方式显示。 打开PHP.INI  做略微修改。使用查找方式找TMP  找到./TMP...
标签: PHP
  这个例子建了一个连接,用ODBC打开Access的数据库NorthWind(安装Access时带的示范)。在执行了SQL语句后,返回了RecordSet对象。例子显示了前三个字段:   <?   $dbc = new COM("ADODB.Connection");   $dbc-Provider = "MSDASQL";   $dbc-Open("nwind");&...

经验教程

796

收藏

36
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部