NEWS
Datei auf win7-Laptop löschen
-
Bitte mal prüfen ob
js.unlink
Probleme hat mit node 10.
Ich meine das gelesen zu haben.
mfg
-
Kannst Du mir Dein Script zum Testen zur Verfügung stellen?
Jeder Netzwerkshare (=Freigabe) hat zwei Berechtigungen: einmal auf das Filesystem (Zugriffsberechtigungen auf Ordner und Dateien) das über die Freigabe freigegeben wird und einmal auf die Freigabe selbst (=wer darf die Freigabe auf welche Art (darüber lesend/schreibend) benutzen). Das muss beides zusammenpassen.
Das fs.unlink() Probleme mit Node.js 10 haben soll, ist mir neu. Hast Du einen Link?
-
@Stabilostick sagte in Datei auf win7-Laptop löschen:
Hast Du einen Link?
https://github.com/gruntjs/grunt-contrib-jasmine/issues/266
Habe aus meinem Script die beiden Baustellen raus kopiert:
fs.copy:// Dateien kopieren function Dateien() { setTimeout(function() { fs.copyFile("//ASUS-BUERO/ioBroker/iobroker-data/files/vis.0/mp3/" + getState('javascript.0.Status.Yamaha.Sound').val,"//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/1_sound.mp3", (err) => { if (err) throw err; }); }, 1000); setTimeout(function() { fs.copyFile("//ASUS-BUERO/ioBroker/node_modules/iobroker.sayit/sayit.2.say.mp3","//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/2_sayit.mp3", (err) => { if (err) throw err; }); }, 1500); if (logging) log('Dateien kopiert.'); }
fs.unlink:
// Dateien wieder löschen function Dateien_loeschen() { if (fs.existsSync('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/1_sound.mp3')) { // Datei ist vorhanden fs.unlink('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/1_sound.mp3'); if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/1_sound.mp3- wurde gelöscht"); } else { // Datei ist nicht vorhanden if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/1_sound.mp3- wurde nicht gelöscht"); } if (fs.existsSync('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/2_sayit.mp3')) { // Datei ist vorhanden fs.unlink('//ASUS-BUERO/ioBroker/' + OrdnerVerz + '/2_sayit.mp3'); if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/2_sayit.mp3- wurde gelöscht"); } else { // Datei ist nicht vorhanden if (logging) log ("Datei: -//ASUS-BUERO/ioBroker/" + OrdnerVerz + "/2_sayit.mp3- wurde nicht gelöscht"); } }
-
Nachtrag:
Win10 mit iob stabilio..:
installiert wurde node.js 10...
-> fs klappt nichtWin7 mit alter iob routine:
hier hab ich node.js 8.15.1
-> fs klappt -
Wie schaut die Freigabe \\ASUS-BUERO\iobroker aus?
- Kannst Du bitte einen Screenshot von der Rechteeinstellung machen, damit man die hinterlegten User/Gruppen und ihre Rechte auf der Freigabe sieht?
- Das gleiche auch für den Ordner, der freigegeben wird.
Sind die Rechner und User Mitglieder einer Arbeitsgruppe oder einer Domäne?
Danke für den Hinweis auf unlink.
-
Hallo stabilo
Jeder hat Vollzugriff.
Habs eben nochmal probiert.
fs funktioniert nicht unter node.js 10...
Oder anders: Ich bekomme es nicht hin.
Auf Win7 mit node.js 8.15 klappt es weiterhin.Konntest du dies schon mal nachvollziehen ?
-
Hallo,
ich habe mal eine Bitte.Könnte jemand mit node.js 10 mal probieren ob diese fs Befehle laufen.
Danke.
Bei mir gehen die o.g. Befehle jedoch nicht.
-
@Stabilostick sagte in Datei auf win7-Laptop löschen:
Ich gehe davon aus. Der Windows-Benutzer, mit dem der ioBroker-Dienst läuft, hat IMHO (E-rror PERM-issions) nicht die erforderlichen Rechte, auf den Netzwerkshare zuzugreifen. Wenn der Share-Zugriff sein muss, dann entweder das Recht des Shares anpassen (Jeder/Gäste?) oder den ioBroker-Dienst mit einem Windows-Benutzer laufen lassen, der auf den Share zugreifen darf und der die für ioBroker nötigen lokalen Systemrechte hat.
Ich stehe weiter dazu. Bei mir läuft z.B. fs.copyfile auch im Netzwerk ohne Probleme. Mit Node 10 (also genauer ab Node 8.5, weiterst ab da gibt es den copyfile-Befehl).
-
Hallo
was ihr mal checken solltet falls der Zugriff von Windows10 auf ältere Geräte nicht funktioniert:
Dort muss ein Haken rein, sonst versteht Win10 diese älteren Protokolle nicht mehr. Wurde seitens MS stillschweigends deaktiviert weil das Protokoll "unsicher" ist...
-
@Thisoft sagte in Datei auf win7-Laptop löschen:
was ihr mal checken solltet falls der Zugriff von Windows10 auf ältere Geräte nicht funktioniert:
Danke für die Info.
Das schau ich mir an. -
@Thisoft sagte in Datei auf win7-Laptop löschen:
Hallo
was ihr mal checken solltet falls der Zugriff von Windows10 auf ältere Geräte nicht funktioniert:
Dort muss ein Haken rein, sonst versteht Win10 diese älteren Protokolle nicht mehr. Wurde seitens MS stillschweigends deaktiviert weil das Protokoll "unsicher" ist...
Ja, da hab ich einen haken drin.
Daran kann es also offensichtlich nicht liegen.mfg
-
Welches OS läuft auf dem Asus?
-
Win 10 Pro
Virtual Box mit Ubuntu
Und darin iob installiert. -
@bahnuhr sagte in Datei auf win7-Laptop löschen:
Hallo stabilo
Jeder hat Vollzugriff.
Habs eben nochmal probiert.
fs funktioniert nicht unter node.js 10...
Oder anders: Ich bekomme es nicht hin.
Auf Win7 mit node.js 8.15 klappt es weiterhin.Konntest du dies schon mal nachvollziehen ?
Das ist das Recht, wer die Freigabe wie benutzen darf. Das sind nicht im Rechte im Dateisystem.
Jetzt noch mal das gleiche für die komplette Ordnersturktur beginnend mit dem Root-Ordner der Freigabe. Auch auf „jeder“ stellen.
-
@Stabilostick sagte in Datei auf win7-Laptop löschen:
Das sind nicht im Rechte im Dateisystem.
Und wo finde ich diese ?
Auf dem Asus Rechtsklick auf den Ordner, auf den die Freigabe zeigt -> Eigenschaften -> Sicherheit
-
Folgender Ordner hab ich freigegeben.
Und bei Eigenschaften Sicherheit hab ich Jeder eingerichtet mit Vollzugriff.
Dann in iob folgendes Script:
var request = require('request'), fs = require('fs'); fs.copyFile("//Fujitsu-Buero/Daten/Test.txt","//FUJITSU-BUERO/Daten/test2.txt", (err) => { if (err) throw err; });
Und im log kommt:
host.iobrokerVM 2019-08-27 17:47:00.338 error instance system.adapter.javascript.1 terminated with code 0 (OK) host.iobrokerVM 2019-08-27 17:47:00.338 error Caught by controller[0]: dest: '//FUJITSU-BUERO/Daten/test2.txt' } host.iobrokerVM 2019-08-27 17:47:00.338 error Caught by controller[0]: path: '//Fujitsu-Buero/Daten/Test.txt', host.iobrokerVM 2019-08-27 17:47:00.338 error Caught by controller[0]: syscall: 'copyfile', host.iobrokerVM 2019-08-27 17:47:00.338 error Caught by controller[0]: code: 'ENOENT', host.iobrokerVM 2019-08-27 17:47:00.338 error Caught by controller[0]: errno: -2, host.iobrokerVM 2019-08-27 17:47:00.338 error Caught by controller[0]: ] host.iobrokerVM 2019-08-27 17:47:00.336 error Caught by controller[0]: { [Error: ENOENT: no such file or directory, copyfile '//Fujitsu-Buero/Daten/Test.txt' -> '//FUJITSU-BUERO/Daten/test2.txt'
Fazit:
klappt nicht. -
Nur ne Spekulation: Bist du sicher dass er sich nicht an dem "-" im Pfadnamen stört? Mittlerweile sind die Systeme da etwas toleranter aber in früheren Zeiten wäre das ein NoGo gewesen...
-
@Thisoft sagte in Datei auf win7-Laptop löschen:
Nur ne Spekulation: Bist du sicher dass er sich nicht an dem "-" im Pfadnamen stört? Mittlerweile sind die Systeme da etwas toleranter aber in früheren Zeiten wäre das ein NoGo gewesen...
Läuft aber auf win7 mit node.js 8.15
Nur auf win10 mit node.js 10 nicht. -
So, ich glaube ich bin einen Schritt weiter.
Wenn ich einen Ordner auf dem win7 system freigebe, dann funktioniert der copy einwandfrei.
Wenn ich aber dies auf dem win10 rechner probiere dann klappt dies nicht.
Hat noch einer eine Idee ?
Irgendwas verhindert den Zugriff!
-
ioBroker testhalber direkt auf Windows installieren? Der neue Installer 1.5.14 kann Migration auch von Linux-Systemen...