<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[使用PHP往Windows系统中添加用户]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Thu, 09 Nov 2006 01:03:15 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	一、再Web中添加用户<br/><br/>　　因为添加用户，所以你运行PHP程序的用户必须是管理员权限(Administrator)，并且同时需要你的php.ini中的安全模式没有打开，并且关闭函数中没有关闭system()、exec()、passthru()等函数。<br/><br/>　　( 以下说明针对Windows2000/Windows XP/Windows 2003 )<br/><br/>　　1、使用IIS做Web服务器<br/><br/>　　如果是使用IIS做服务器的话，那么运行PHP的帐户就是：IUSR_XXXXXXXX，IWAM_XXXXXXX，(XXXX代表服务器的计算机名)，那么你必须把这两个用户加到管理员组：Administrators 。当然，你这样做的话，会给服务器安全带来威胁。<br/><br/>　　2、使用Apache作为Web服务器<br/><br/>　　据我了解，Apache安装成服务以后，那么就是以system权限运行的，那么就是说PHP运行的话，直接就是系统权限，已经超过了管理员权限，那么执行命令更不再话下。如果你修改了Apache的运行用户，那么你必须指定Apache服务运行用户是管理员以上权限，比如Administor或者system权限。<br/><br/>　　然后你就可以在你的PHP代码中执行添加用户操作了：<br/><br/>　　按照楼主的需求，描述如下代码：<br/><br/><div class="code"><br/>&lt;?php<br/>define(&quot;USER_GROUP&quot;, &quot;users&quot;); //用户组，默认为users，为了安全，定义还是的用户组<br/>define(&quot;ACTIVE&quot;, &quot;YES&quot;); //是否创建后直接激活用户，YES为激活，NO为不激活<br/><br/>//从数据库提取用户名和密码<br/>//假设表为user_info，并且只有字段id, user, passwod<br/>$sql = &quot;SELECT user,password FROM user_info&quot;;<br/>$result = mysql_query($sql) or die(&quot;Query database failed&quot;);<br/>//循环插入用户<br/>while ($array = mysql_fetch_array($result)) &#123;<br/> if (!function_exists(&quot;system&quot;))<br/> &nbsp;die(&#039;Function system() not exists, add user failed.&#039;);<br/> //添加用户<br/> @system(&quot;net user $array&#91;user&#93; $array&#91;passwd&#93; /active:ACTIVE /add&quot;);<br/> //添加到指定组<br/> @system(&quot;net localgroup users $array&#91;user&#93; /del&quot;);<br/> @system(&quot;net localgroup USER_GROUP $array&#91;user&#93; /add&quot;);<br/>&#125;<br/>?&gt;<br/><br/></div><br/><br/>　　以上代码实现了把你所有数据库的用户添加到本地系统，如果你想单个的添加，可以考虑更改成用户注册成功后就添加用户，这个可以自己扩展。<br/><br/>　　二、使用php做shell脚本来添加用户<br/><br/>　　另外，其实我还有个思路。可以在服务器端利用php.exe来执行，并且不会有安全问题。我刚做了测试，已经通过。<br/><br/>　　假设你的php安装在c:&#92;php&#92;中，那么我们就使用命令提示符的来执行php脚本来添加用户。<br/><br/>PHP代码：<br/><br/><div class="code"><br/>//c:&#92;test.php<br/>&lt;?php<br/>@system(&quot;net user heiyeluren test /add&quot;);<br/>?&gt;<br/>保存在c:&#92;test.php文件中<br/>在cmd下执行：<br/>c:&#92;php&#92;php.exe c:&#92;test.php<br/>提示：<br/>C:&#92;&gt;c:&#92;php&#92;php.exe c:&#92;test.php<br/>命令成功完成。<br/><br/></div><br/>　　那么从这个角度出发，完全可以将上面我写的那段代码拿到这里来执行，然后php.exe充当shell脚本引擎。然后写成批处理，通过定时任务来执行。当然，也可以考虑使用其他语言来实现，比如vb/vc之类的，定期去数据库中检索是否有新添加的用户，然后再把用户添加到系统中。<br/><br/><br/>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] 使用PHP往Windows系统中添加用户]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>