Zugriff auf netzlaufwerk

Hallo Leute, ist mein erster Einrtrag ins Forum.

Hab IPS seit ca 3 Mon in einer VM mit WINFLP auf meinem Linux- Server am laufen. Auf welchem sich Sambafreigaben befinden aus denen ich gerne MP3s über IPS abspielen würde.

Habe ein Netzlaufwerk in WINFLP eingerichtet mit dem Laufwerksbuchstaben Z: als WInUser kann ich auch ganz normal daruaf zugreifen nur IPS wehrt sich.

Warning: scandir(z:\download/) [function.scandir]: failed to open dir: Invalid argument in C:\IP-Symcon2\scripts\33712.ips.php on line 11

Warning: scandir() [function.scandir]: (errno 22): Invalid argument in C:\IP-Symcon2\scripts\33712.ips.php on line 11

Warning: Invalid argument supplied for foreach() in C:\IP-Symcon2\scripts\33712.ips.php on line 12

Warning: Playlist is empty! in C:\IP-Symcon2\scripts\33712.ips.php on line 43

…sagt die konsole wenn ich mit parsey´s
Ordner Rekursiv in MediaPlayer Playlist laden- script zugreifen möchte.

mit ordnern die auf c: liegen klappt alles wunderbar.

hab den IPS-dienst auch schon mit admin-rechten ausgestattet …keine änderung.

wäre echt toll wenn mir jemand helfen könnte.

Hi,

das dürfte das gleiche PHP Problem genau wie bei opdendir() sein … bei Netzlaufwerken geht das leider so ohne weiteres nicht. Such mal nach opendir() hier im Forum.

Gruß
Jens

Du musst den Dienst von einem Lokalen Benutzerkonto aus starten lassen. (Kannst du in der Verwaltung von Windows ändern)

Der System Account von Windows hat keine Rechte auf Netzlaufwerke zuzugreifen.

paresy

Danke für die Antworten,

habs mitlerweile gelöst…hatte ja IPS-Dienst über ein lokales konto laufen hat leider aber nicht gereicht.

Man sollte in windows den gleichen benutzer haben wie im Linux/samba mit gleichem passwort. Dieser Benutzer stellt das Netzlaufwerk und mit seinen Rechten wird auch der IPS-Dienst versehen dann noch auf den tatsächlichen Pfad der Freigabe und nicht direckt auf das Netzlaufwerk zugreifen (z.B. Z:)
mit doppelter Backslashung.
sieht dann so aus:

\\MEIN_SERVER\FREIGABE\

PS: und immer auf die Rechte unter Linux achten :wink:

Ich muss das Thema noch mal aufgreifen:

Ich komme mit den Begriffen „lokales Benutzerkonto“, „Dienste in der Windowsverwaltung“ etc nicht wirklich zurecht. Ich brauche noch mal ne Starthilfe für Netzwerkdummies:

Ich will von meinem IPS-Server (Win XP prof., ist mit „administorrechten“ gebootet) auf eine freigegenenes Netzwerklaufwerk auf meiner SynologyNAS zugreifen (da liegen die motiondetection-videoaufnahmen meiner Ipcam…).

    $ordner = "\\\\192.xxx.yyy.zzz\\surveillance\\";
       $handle = opendir($ordner);

die Meldung ist dann:

Warning: opendir(\192.xxx.yyy.zzz4\surveillance,\192.xxx.yyy.zzz\surveillance): Zugriff verweigert (code: 5) in D:\IP-Symcon\scripts\39233.ips.php on line 4

Warning: opendir(\192.xxx.yyy.zzz\surveillance): failed to open dir: No such file or directory in D:\IP-Symcon\scripts\39233.ips.php on line 4

Geht es nun irgendwie und wenn wie muss ich den Server nun in Windows anmelden, wie ist das mit den Diensten in der windowsverwaltung gemeint…

vielen Dank

hardlog

Systemsteuerung -> Computerverwaltung -> Dienste -> IP-Symcon Environment -> Anmelden -> Dort auf „Lokales Benutzerkonto (statt SYSTEM)“ wechseln.

Beachten, dass dadurch IPS_ExecuteEx wegfällt, falls du diesen nutzt!

paresy

vielen Dank.

ja, ich nutze IPS_ExecuteEx, ich denke, das ich das aber irgendwie anders gestallten kann…

hardlog

hmm,

ist bereits (warum auch immer) auf lokal eingestellt. Siehe Screenshot.

An welcher Stelle muß nun welches (ggf. gleiches) Userkennwort und Passwort eingesetzt werden (Windwosanmeldung? Benutzerkonto der Synology? …

hardlog

lokal.JPG

Oh. Ich hatte es falsch im Kopf. Du willst „Dieses Konto“ auswählen und dort dann z.B. dein Administrator auswählen und das Kenntwort angeben. Das lokale Systemkonto ist die normale Einstellung :slight_smile:

paresy

Also der Server (XP prof) bootet im Admin.-modus ohne Angabe eines users oder des passwortes), die Synologie ist über „user“ und „password“ unter der IP „192.xxx.yyy.zzz“ erreichbar. Auf der NAS ist ein Laufwerk als „surveillance/terasse“ freigegeben. Unter win (des Servers) kommte ich mit „Y: erasse“ an die gewünschten Dateien.
Wie geht das nun mit php:

$ordner = "\\\\192.xxx.yyy.zzz:user@password\\surveillance\	erasse\\"; 
       $handle = opendir($ordner);

geht scheinbar nicht.

hardlog

versuche es mal so :

$ordner = "\\\\user:password@192.xxx.yyy.zzz\\surveillance\	erasse\\"; 
       $handle = opendir($ordner);

ich verstehe es nicht …

also so

$ordner = "\\\\yyyy:xxxx@192.168.178.44\\surveillance\\";
       $handle = opendir($ordner);

kommt folgende Meldung:

Warning: opendir(\yyyy:xxxx@192.168.178.44\surveillance,\yyyy:xxxx@192.168.178.44\surveillance): in D:\IP-Symcon\scripts\39233.ips.php on line 4

Warning: opendir(\yyyy:xxxx@192.168.178.44\surveillance): failed to open dir: No such file or directory in D:\IP-Symcon\scripts\39233.ips.php on line 4

hardlog

Funktioniert dieser Aufruf den, wenn man unter Windows das Laufwerk mit Laufwerksbuchstaben „fest“ verbindet?

D.h. man greift in PHP auf den Laufwerksbuchstaben zu?

nein macht es leider nicht. (ist unter windows als Netzlaufwerk verbunden).

hardlog

Versuch es mal hiermit :

<?php

// Define the parameters for the shell command
$location = "\\servername\sharename";
$user = "USERNAME";
$pass = "PASSWORD";
$letter = "Z";

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

// Open the directory
$dir = opendir($letter.":/an/example/path")

...

?>

Quelle:
http://www.php.de/php-tipps-2004-2/12491-opendir-lokal-geht-netzlaufwerk-geht-nicht.html
http://de2.php.net/manual/de/function.opendir.php#90373

ich glaub ich mache da nen grundlegenden Fehler an anderer Stelle?!
Hat das doch was mit den Netzwerkrechten zu tun, damit kenne ich mich leider nicht aus.

Also die NAS hat die IP 192.168.178.44, passwort und user seien mal hier mal exemplarisch TESTUSER und TESTPASSWORT.
Die NAS läuft unter dem Name „flosdiskstation“.
Unter WinXP des IPS-Serves ist das Verzeichniss „192.168.178.44/survaillance/terasse“ der NAS als y:/terasse freigegeben.
Der WinXP-IPS-Server ist ohne Passwort als administrator angemeldet…

wenn ich das wie folgt ins script einbinde:

3: $location = "\\192.168.178.44\surveillance";
4: $user = "TESTUSER";
5: $pass = "TESTPASSOWORT";
6: $letter = "Y";
7: 
8: // Map the drive
9: system("net use ".$letter.": \"".$location."\" ".$pass." /user:".$user." /persistent:no>nul 2>&1");
10:
11: // Open the directory
12: $dir = opendir($letter.":/terasse");

dann kommt folgende Meldung.

Warning: opendir(Z:/terasse,Z:/terasse): Das System kann den angegebenen Pfad nicht finden. (code: 3) in D:\IP-Symcon\scripts\39233.ips.php on line 12

Warning: opendir(Z:/terasse): failed to open dir: No such file or directory in D:\IP-Symcon\scripts\39233.ips.php on line 12

Was mache ich hier falsch?

Danke
hardlog