程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用PHP往Windows系統中添加用戶

使用PHP往Windows系統中添加用戶

編輯:關於PHP編程

可以實現, 方法有二。

一、再Web中添加用戶

因為添加用戶,所以你運行php(做為現在的主流開發語言)程序的用戶必須是管理員權限(Administrator),並且同時需要你的php(做為現在的主流開發語言).ini中的安全模式沒有打開,並且關閉函數中沒有關閉system()、exec()、passthru()等函數。

( 以下說明針對Windows2000/Windows XP/Windows 2003 )

1、使用iis(微軟的WEB服務器平台)做Web服務器
如果是使用iis(微軟的WEB服務器平台)做服務器的話,那麼運行php(做為現在的主流開發語言)的帳戶就是:IUSR_XXXXXXXX,IWAM_XXXXXXX,(XXXX代表服務器的計算機名),那麼你必須把這兩個用戶加到管理員組:Administrators 。當然,你這樣做的話,會給服務器安全帶來威脅。

1、使用apache(Unix平台最流行的WEB服務器平台)作為Web服務器
據我了解,apache(Unix平台最流行的WEB服務器平台)安裝成服務以後,那麼就是以system權限運行的,那麼就是說php(做為現在的主流開發語言)運行的話,直接就是系統權限,已經超過了管理員權限,那麼執行命令更不再話下。如果你修改了apache(Unix平台最流行的WEB服務器平台)的運行用戶,那麼你必須指定apache(Unix平台最流行的WEB服務器平台)服務運行用戶是管理員以上權限,比如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(和PHP搭配之最佳組合)_query($sql) or die("Query database failed");
//循環插入用戶
while ($array = MySQL(和PHP搭配之最佳組合)_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: est.php(做為現在的主流開發語言)
<?php(做為現在的主流開發語言)
@system("net user heiyeluren test /add");
?>
保存在c: est.php(做為現在的主流開發語言)文件中
在cmd下執行:
c:php(做為現在的主流開發語言)php(做為現在的主流開發語言).exe c: est.php(做為現在的主流開發語言)
提示:
C:>c:php(做為現在的主流開發語言)php(做為現在的主流開發語言).exe c: est.php(做為現在的主流開發語言)
命令成功完成。

那麼從這個角度出發,完全可以將上面我寫的那段代碼拿到這裡來執行,然後php(做為現在的主流開發語言).exe充當shell腳本引擎。然後寫成批處理,通過定時任務來執行。當然,也可以考慮使用其他語言來實現,比如vb/vc之類的,定期去數據庫中檢索是否有新添加的用戶,然後再把用戶添加到系統中。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved