Melaksanakan akses kepada fail pada pemacu kongsi domain Windows dalam PHP
<p>Saya mempunyai sekumpulan dokumen yang disimpan pada mesin kendiri yang saya perlukan untuk berkhidmat daripada pelayan PHP/IIS. Masalahnya ialah pemacu dokumen disambungkan ke mesin domain Active Directory dan pelayan web tidak disambungkan, jadi saya tidak pasti di mana untuk menyediakan pengguna AD yang disahkan yang PHP perlukan untuk mengakses pemacu. </p>
<p>Saya mempunyai kumpulan aplikasi IIS yang memanggil PHP, berjalan sebagai pengguna Windows baharu yang saya cipta (ditetapkan kepada "Identiti" untuk kumpulan aplikasi dan pengguna Pengesahan Tanpa Nama untuk tapak web). Saya log masuk ke pelayan sebagai pengguna baru ini dan menyediakan pemacu rangkaian yang dipetakan, tetapi selepas beberapa penyelidikan saya fikir ini adalah jalan buntu saya membaca bahawa perkhidmatan itu tidak akan log masuk ke Windows dalam apa-apa cara untuk memasang pemacu yang dipetakan. </p>
<p>Merujuk hanya melalui alamat IP lebih hampir berfungsi, tetapi saya mendapat ralat pengesahan. Penyelesaian utama yang saya temui dalam talian ialah menjalankan kumpulan aplikasi sebagai pengguna dengan akses kepada pemacu, tetapi saya tidak tahu sama ada itu mungkin kerana pelayan tidak berada dalam domain Windows itu. (Tetapi saya juga bukan pakar AD)</p>
<pre class="brush:php;toolbar:false;">echo shell_exec('whoami'); //Keluarkan nama pengguna Windows yang saya buat
echo scandir('\\192.168.1.120\data$'); //Tidak dapat mencari nama pengguna/kata laluan
echo trim(shell_exec('dir \\192.168.1.120\data$ 2>&1')); //Nama pengguna atau kata laluan tidak betul
echo scandir('Z:\'); // PHP memberi amaran bahawa laluan tidak dapat ditemui
echo trim(shell_exec('dir Z: 2>&1')); //path not found</pre>
<p>Jika tiada penyelesaian yang mudah dan bukan penggodaman, saya dapat melihat sama ada pelanggan boleh meletakkan pelayan web dalam domain AD, tetapi saya tidak tahu sama ada ia akan mempunyai kesan sampingan yang tidak diingini pada perkhidmatan lain pelayan sedang berjalan. </p>