方法は 1 つあります:
ユーザーを追加するため、PHP プログラムを実行するユーザーは管理者権限 (Administrator) を持っている必要があり、同時に php.ini のセーフ モードを無効にする必要があります。シャットダウン関数、exec()、passthru() およびその他の関数を閉じてはなりません。
(次の手順は Windows2000/Windows 用です (XXXX はサーバーのコンピュータ名を表します)。その場合、これら 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) または die("クエリ データベースに失敗しました");
//ユーザーを挿入するループ
while ($ array = mysql_fetch_array($result)) {
if (!function_exists("system"))
die('関数 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 などの他の言語を使用して実装することも検討できます。定期的にデータベースを検索して、新しく追加されたユーザーがあるかどうかを確認し、ユーザーをシステムに追加します。