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