Implementieren des Zugriffs auf Dateien auf einem freigegebenen Laufwerk einer Windows-Domäne in PHP
<p>Ich habe eine Reihe von Dokumenten auf einem eigenständigen Computer gespeichert, die ich von einem PHP/IIS-Server aus bereitstellen muss. Das Problem besteht darin, dass das Dokumentenlaufwerk mit einem Active Directory-Domänencomputer verbunden ist und der Webserver nicht verbunden ist. Daher bin ich mir nicht sicher, wo ich den authentifizierten AD-Benutzer bereitstellen soll, den PHP für den Zugriff auf das Laufwerk benötigt. </p>
<p>Ich habe einen IIS-Anwendungspool, der PHP aufruft und als neuer Windows-Benutzer ausgeführt wird, den ich erstellt habe (auf „Identität“ für den Anwendungspool und den anonymen Authentifizierungsbenutzer für die Website eingestellt). Ich habe mich als dieser neue Benutzer am Server angemeldet und ein zugeordnetes Netzlaufwerk eingerichtet, aber nach einiger Recherche dachte ich, dass dies eine Sackgasse sei, und las, dass sich der Dienst nicht so bei Windows anmelden würde, dass das zugeordnete Laufwerk bereitgestellt würde. </p>
<p>Nur die Referenzierung anhand der IP-Adresse funktioniert eher, aber ich erhalte Authentifizierungsfehler. Die wichtigste Lösung, die ich online gefunden habe, besteht darin, den Anwendungspool als Benutzer mit Zugriff auf das Laufwerk auszuführen. Ich weiß jedoch nicht, ob das möglich ist, da sich der Server nicht in dieser Windows-Domäne befindet. (Aber ich bin auch kein AD-Experte)</p>
<pre class="brush:php;toolbar:false;">echo shell_exec('whoami'); //Gib den Namen des von mir erstellten Windows-Benutzers aus
echo scandir('\\192.168.1.120\data$'); //Benutzername/Passwort kann nicht gefunden werden
echo trim(shell_exec('dir \\192.168.1.120\data$ 2>&1')); //Der Benutzername oder das Passwort ist falsch
echo scandir('Z:\'); // PHP-Warnung, dass der Pfad nicht gefunden werden kann
echo trim(shell_exec('dir Z: 2>&1')); //Pfad nicht gefunden</pre>
<p>Wenn es keine einfache, nicht hackbare Lösung gibt, könnte ich sehen, ob der Kunde den Webserver in die AD-Domäne stellen könnte, aber ich weiß nicht, ob das unbeabsichtigte Nebenwirkungen auf andere Dienste hätte Server läuft. </p>