使用PHP往Windows系統(tǒng)中添加用戶(hù)
可以實(shí)現(xiàn), 方法有二。
一、再Web中添加用戶(hù)
因?yàn)樘砑佑脩?hù),所以你運(yùn)行PHP程序的用戶(hù)必須是管理員權(quán)限(Administrator),并且同時(shí)需要你的php.ini中的安全模式?jīng)]有打開(kāi),并且關(guān)閉函數(shù)中沒(méi)有關(guān)閉system()、exec()、passthru()等函數(shù)。
( 以下說(shuō)明針對(duì)Windows2000/Windows XP/Windows 2003 )
1、使用IIS做Web服務(wù)器如果是使用IIS做服務(wù)器的話(huà),那么運(yùn)行PHP的帳戶(hù)就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服務(wù)器的計(jì)算機(jī)名),那么你必須把這兩個(gè)用戶(hù)加到管理員組:Administrators 。當(dāng)然,你這樣做的話(huà),會(huì)給服務(wù)器安全帶來(lái)威脅。
1、使用Apache作為Web服務(wù)器據(jù)我了解,Apache安裝成服務(wù)以后,那么就是以system權(quán)限運(yùn)行的,那么就是說(shuō)PHP運(yùn)行的話(huà),直接就是系統(tǒng)權(quán)限,已經(jīng)超過(guò)了管理員權(quán)限,那么執(zhí)行命令更不再話(huà)下。如果你修改了Apache的運(yùn)行用戶(hù),那么你必須指定Apache服務(wù)運(yùn)行用戶(hù)是管理員以上權(quán)限,比如Administor或者system權(quán)限。
然后你就可以在你的PHP代碼中執(zhí)行添加用戶(hù)操作了:
按照樓主的需求,描述如下代碼:
<?phpdefine('USER_GROUP', 'users'); //用戶(hù)組,默認(rèn)為users,為了安全,定義還是的用戶(hù)組define('ACTIVE', 'YES'); //是否創(chuàng)建后直接激活用戶(hù),YES為激活,NO為不激活
//從數(shù)據(jù)庫(kù)提取用戶(hù)名和密碼//假設(shè)表為user_info,并且只有字段id, user, passwod$sql = 'SELECT user,password FROM user_info';$result = mysql_query($sql) or die('Query database failed');//循環(huán)插入用戶(hù)while ($array = mysql_fetch_array($result)) {if (!function_exists('system')) die('Function system() not exists, add user failed.');//添加用戶(hù)@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');}?>
以上代碼實(shí)現(xiàn)了把你所有數(shù)據(jù)庫(kù)的用戶(hù)添加到本地系統(tǒng),如果你想單個(gè)的添加,可以考慮更改成用戶(hù)注冊(cè)成功后就添加用戶(hù),這個(gè)可以自己擴(kuò)展。
二、使用php做shell腳本來(lái)添加用戶(hù)
另外,其實(shí)我還有個(gè)思路。可以在服務(wù)器端利用php.exe來(lái)執(zhí)行,并且不會(huì)有安全問(wèn)題。我剛做了測(cè)試,已經(jīng)通過(guò)。
假設(shè)你的php安裝在c:php中,那么我們就使用命令提示符的來(lái)執(zhí)行php腳本來(lái)添加用戶(hù)。
PHP代碼://c:test.php<?php@system('net user heiyeluren test /add');?>保存在c:test.php文件中在cmd下執(zhí)行:c:phpphp.exe c:test.php提示:C:>c:phpphp.exe c:test.php命令成功完成。
那么從這個(gè)角度出發(fā),完全可以將上面我寫(xiě)的那段代碼拿到這里來(lái)執(zhí)行,然后php.exe充當(dāng)shell腳本引擎。然后寫(xiě)成批處理,通過(guò)定時(shí)任務(wù)來(lái)執(zhí)行。當(dāng)然,也可以考慮使用其他語(yǔ)言來(lái)實(shí)現(xiàn),比如vb/vc之類(lèi)的,定期去數(shù)據(jù)庫(kù)中檢索是否有新添加的用戶(hù),然后再把用戶(hù)添加到系統(tǒng)中。
