PHP で Windows ドメイン共有ドライブ上のファイルへのアクセスを実装する
<p>スタンドアロン マシンに大量のドキュメントが保存されており、PHP/IIS サーバーから提供する必要があります。問題は、ドキュメント ドライブが Active Directory ドメイン マシンに接続されており、Web サーバーが接続されていないことです。そのため、PHP がドライブにアクセスするために必要な認証された AD ユーザーをどこに提供すればよいかわかりません。 </p>
<p>PHP を呼び出す IIS アプリケーション プールがあり、作成した新しい Windows ユーザーとして実行されています (アプリケーション プールの場合は「Identity」、Web サイトの場合は匿名認証ユーザーに設定)。この新しいユーザーとしてサーバーにログインし、マップされたネットワーク ドライブを設定しましたが、調べた結果、これは行き止まりだと思いました。サービスは、マップされたドライブをマウントするような方法では Windows にログインしないと読みました。 </p>
<p>IP アドレスのみによる参照は機能に近づいていますが、認証エラーが発生します。オンラインで見つけた主な解決策は、ドライブにアクセスできるユーザーとしてアプリケーション プールを実行することですが、サーバーがその Windows ドメインにないため、それが可能かどうかはわかりません。 (ただし、私は AD の専門家でもありません)</p>
<pre class="brush:php;toolbar:false;">echo shell_exec('whoami'); //作成した Windows ユーザーの名前を出力します
echo scandir('\\\\192.168.1.120\\data$'); //ユーザー名/パスワードが見つかりません
echorim(shell_exec('dir \\\\192.168.1.120\\data$ 2>&1')); //ユーザー名またはパスワードが間違っています
echo scandir('Z:\\'); // パスが見つからないという PHP 警告
echo trim(shell_exec('dir Z: 2>&1')); //パスが見つかりません</pre>
<p>シンプルでハッキングのない解決策がない場合は、顧客が Web サーバーを AD ドメインに配置できるかどうかを確認できますが、それが他のサービスに意図しない副作用をもたらすかどうかはわかりません。サーバーが実行中です。 </p>