Frage zu Netzwerk-Drives XP & Vista, File-Funktionen PHP

Hallo,

ich brauche mal Hilfe, steh grad auf dem Schlauch und habe z uallem Übel auch noch einen spanischen Rechner mit Vista in Landessprache vor mir …

Nachfolgend nutze ich „xyz“ als gültigen und auf allen Systemen eingetragenen Benutzernamen (testweise sogar mit Admin-Rechten), „abc“ als dessen Passwort, xxx.xxx.xxx.xxx ist die IP des XP-Rechners, auf den entfernt von IPS aus zugegriffen werden soll.

Ferner: Z: soll das gemappte Drive auf diesem „XP File Server“ sein, D: das Lokale Drive auf dem Vista - IPS Rechner.

Ich habe also:

1.) IPS Rechner, IPS mit Dienst installiert, Vista.
2.) Beim IPS-Dienst im Reiter "Anmelden (Inicio)"den Benutzer „xyz“ mit dessen PW angegeben (und auch Admin etc. ausprobiert)
3.) Enfernter XP Rechner mit „xxx.xxx.xxx.xxx“ und Freigabe d$

Was funktioniert:

Vom IPS-Rechner (Vista) aus kann ich mit dem User „xyz“ und Passwort „abc“ IM EXPLORER ein Laufwerk per „Netzwerk verbinden“ auf dem entfernten XP Rechner erstellen. Dann wird auf dem als File-Server fungierenden XP Rechner auch ein User angezeigt (Computerverwaltung - Sitzungen). ICh kann DAteien Kopieren, löschen, modifizieren --> Rechte ok & ausreichend.

Was funktioniert nicht:

PHP-Zugriffe auf das gemappte Laufwerk (Z:) funktionieren nicht, auf das lokale (D:) einwandfrei (–> am Code kann’s nicht liegen).

Beispiel:


$dir['handle'] = opendir('D:/'); // FUNKTIONIERT
$dir['handle'] = opendir('Z:/'); // GEHT NICHT
closedir( $dir['handle'] );

Es wird folgende Meldung produziert:

Warning: opendir(Z:/) [function.opendir]: failed to open dir: No error in D:\IPS\scripts\19797.ips.php on line 29

Um alle Eventualitäten auszuschliessen habe ich auch mal versucht, ein Laufwerk in IPS mittels PHP zu mappen (vorher das Drive im Explorer wieder getrennt):


$letter = "Y";
$location = "\\xxx.xxx.xxx.xxx\d$";
$user = "xyz";
$pass = "abc";

system("net use " . $letter . ": \"".$location."\" ".$pass." /user:".$user." /persistent:no>nul 2>&1");

Dies müsste ja dazu führen, dass auf dem Zielrechner eine Session in der Computerverwaltung-Sitzungen angezeigt wird mit dem User „yxz“, analog dazu, wenn ich das Drive im Explorer mappe.

Tut es aber nicht.

Was mache ich falsch bzw. was muss ich noch tun?

1000 Dank im Voraus
jwka

Hallo jwka,

solange Dein IPS als Dienst läuft, denke ich, ist es normal wenn Du keine gemappten Laufwerke siehst bzw nutzen kannst.

Diese Laufwerke stehen nach meinem Wissen nur in Benutzersessions zur Verfügung. Dazu kommt das LocalSystem keinen Netzwerkzugriff hat.

Ich habe das selbst noch nicht mit IPS getestet, aber theoretisch sollte es klappen wenn Du IPS als normaler Benutzer ausführst und per UNC-Pfad zugreifst.

Siehe auch: http://www.ip-symcon.de/forum/f18/zugriff-netzlaufwerk-6538/#post53779 bzw. http://www.ip-symcon.de/forum/project.php?issueid=112

Viele Grüße, Benjamin

Hallo Benjamin,

eigentlich sollte es möglich sein, dass IPS mit einem User Account läuft und dann die Rechte des Users hat. Daher habe ich ja den Dienst mit einem anderen Konto versehen.

Hier

http://www.ip-symcon.de/forum/f18/zugriff-netzlaufwerk-6538/#post53779

ist das ja auch beschrieben.

Aber es funktioniert bei mir nicht.

Viel schlimmer: Seit ich das so (user mit pw) eingerichtet habe, kann IPS offenbar auch keine shell mehr lokal starten, denn wenn ich den Befehl:


IPS_ExecuteEx ( "D:/IPS/01 externals/ton.exe", "3500", false, false,1 );

ausführe, der bislang fehlerfrei lief, kommt nun der Fehler

[.02 Scripts 01 LIVE - Service.Beep.3500Hz] =
Warning: This functions needs the primary Token to be a SYSTEM token. in [.02 Scripts 01 LIVE - Service.Beep.3500Hz] on line 2

Leider schweig sich die Doku wie üblich dazu völlig aus.

jwka

Selbst wenn Du als „gleicher Benutzer“ wie eine Session läufst, solltest Du nicht die Netzlaufwerke sehen können. Der richtige Weg ist, nach meinem Verständniss, hier auf UNC Pfade zu gehen.

Die von Dir erwähnten Probleme sind ja auch keine IPS-Fehler, sondern vielmehr durch das Design des Betriebssystems bedingt (und lassen sich auch nur über diesen Weg ggf. umgehen).

Viele Grüße, Benjamin

Hallo Benjamin,

ich habe es auch mit UNC Pfaden probiert, ohne Erfolg. Vielleicht mach ich ja auch einfach was grundlegend falsch.

Wie wäre denn ein Ordner, der z.B. per

"
etgear\data"

oder

„\123.345.789.5\data“ (IP)

erreichbar und im Explorer mapbar ist (–> dann als „data auf netgear (L:)“ im Explorer angezeigt wird) anzusprechen? Sagen wir, dass dort das Verzeichnis „IPS“ liegt (IPS ist im root des share).

Wie würde dann die opendir() geschrieben werden?

Könntest Du vielleicht alle nötigen Punkte sagen?

  • IPS als User oder System?
  • wie sieht der Code konkret aus?

1000 Dank!
jwka

Hallo Jürgen,

ich hab Dir nur aus meinem Gedächnis geantwort wie eine Windows Infrastruktur funkktioniert. Wie es wirklich klappt (!), kann ich nicht sagen - da ich das mit IPS noch nicht getestet habe!

Deutlich: Du solltest vom Ansprechen von gemappten Laufwerken abschwören! Experimeniere z.B. besser mit UNC Pfaden und vorheriger Authentifizierung!

Ob, bei Deinen bisherigen Tests Laufwerke in der der Computerverwaltung des entfernten Geräts überhaupt etwas sichtbar ist, ist nebensächlich.

Benjamin