方法は 1 つあります:
ユーザーを追加するため、PHP プログラムを実行するユーザーは管理者権限 (Administrator) を持っている必要があり、同時に php.ini のセーフ モードをオンにしてはなりません。 system()、exec()、passthru() およびその他の関数。
(次の手順は Windows2000/Windows 用です。その場合、これら 2 人のユーザーを管理者グループ: Administrators に追加する必要があります。もちろん、これを実行すると、サーバーのセキュリティに脅威が生じます。
2. Apache を Web サーバーとして使用する
Apache はサービスとしてインストールされた後、システム権限で実行されることがわかります。つまり、PHP を実行するときは、管理者権限を超えたシステム権限になります。コマンドの実行は、もう言葉が要りません。 Apache の実行ユーザーを変更する場合は、Apache サービスの実行ユーザーが管理者またはシステム権限などの管理者以上の権限を持っていることを指定する必要があります。
その後、PHP コードでユーザーの追加操作を実行できます:
次のコードを記述します:
define("USER_GROUP", "users"); //ユーザー グループ、デフォルトは users,セキュリティのため、ユーザーグループを定義します
define("ACTIVE", "YES") //作成後にユーザーを直接アクティブ化するかどうか、YES はアクティブ化を意味し、NO はアクティブ化しないことを意味します
//ユーザー名を抽出し、データベースからのパスワード
//テーブルが user_info であり、フィールドが id、user、password のみであると仮定します
$sql = "SELECT user,password FROM user_info"
$result = mysql_query($sql) or die(";データベースのクエリに失敗しました");
// ユーザーへのループ
while ($array = mysql_fetch_array($result)) {
if (!function_exists("system"))
die('Function system() が存在しないため、ユーザーの追加に失敗しました.');
//ユーザーを追加
@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");
}
?>
上記のコードは、すべてのデータベースのユーザーをローカル システムに追加します個別に追加したい場合は、ユーザー登録が成功した後にユーザーを追加するように変更することを検討してください。これは自分で拡張できます。
ただし、この方法では同期を実現できません
方法 2:
サーバー側の php.exe を使用して実行でき、セキュリティ上の問題はありません。
php が c:php にインストールされていると仮定すると、コマンド プロンプトを使用して php スクリプトを実行し、ユーザーを追加します。
PHP コード:
//c:test.php
@system("net user test test /add");
c:test.php ファイルに保存します
cmd 実行の下:
c:phpphp.exe c:test.php
プロンプト:
C:>c:phpphp.exe c:test.php
コマンドは正常に完了しました。
次に、ここで方法 1 のコードを取得して実行すると、php.exe がシェル スクリプト エンジンとして機能します。次に、それをバッチ プロセスとして作成し、スケジュールされたタスクを通じて実行します。もちろん、vb/vc などの他の言語を使用して実装することも検討できます。定期的にデータベースを検索して、新しく追加されたユーザーがあるかどうかを確認し、ユーザーをシステムに追加します。