Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Skript EXEC geht nicht

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    479

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    616

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Skript EXEC geht nicht

Geplant Angeheftet Gesperrt Verschoben JavaScript
19 Beiträge 4 Kommentatoren 914 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • BananaJoeB BananaJoe

    @namrenner unter welchem Benutzer läuft ioBroker unter Windows? Also der Dienst?
    Wenn es der Benutzer SYSTEM ist, dem ist es explizit verboten Prozesse unter anderem Namen auszuführen.
    Tipp 2 ist vor dem cmd.exe mal ein echo setzen und am Ende eine Umleitung in eine Textdatei C:\temp\test.txt\ um zuschauen was drüben tatsächlich ankommt. Du hast das hinter start in " " gesetzt, kann sein das er das dann als ein Paramater übergibt (was er ja auch soll), die frage ist ob das auch so wieder auseinander geteilt wird.

    NamrennerN Offline
    NamrennerN Offline
    Namrenner
    schrieb am zuletzt editiert von
    #3

    @bananajoe said in Skript EXEC geht nicht:

    C:\temp\test.txt\

    Hallo,
    Benutzer steht: NT SERVICE\iobroker(SmartHome)
    mit dem ~~echo und C:\temp\test.txt~~
    kannst mit genauer schreiben, sorry, danke

    BananaJoeB 1 Antwort Letzte Antwort
    0
    • NamrennerN Namrenner

      @bananajoe said in Skript EXEC geht nicht:

      C:\temp\test.txt\

      Hallo,
      Benutzer steht: NT SERVICE\iobroker(SmartHome)
      mit dem ~~echo und C:\temp\test.txt~~
      kannst mit genauer schreiben, sorry, danke

      BananaJoeB Offline
      BananaJoeB Offline
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #4

      @namrenner
      Erstelle einen Ordner C:\temp\ und ändere ggf. die Berechtigungen das der Benutzer iobroker schreiben darf.

      exec('echo cmd.exe /c start "psshutdown.exe -r \\192.168.1.2 -u xxxxxx -p xxxxxx" >c:\temp\test.txt', function(err, stdout, stderr) {
          if (err) {
              log(err,'err');
              log(stderr,'stderr');
              log(stdout,'stdout');
              return;
           }
       });
      

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      NamrennerN 1 Antwort Letzte Antwort
      0
      • BananaJoeB BananaJoe

        @namrenner
        Erstelle einen Ordner C:\temp\ und ändere ggf. die Berechtigungen das der Benutzer iobroker schreiben darf.

        exec('echo cmd.exe /c start "psshutdown.exe -r \\192.168.1.2 -u xxxxxx -p xxxxxx" >c:\temp\test.txt', function(err, stdout, stderr) {
            if (err) {
                log(err,'err');
                log(stderr,'stderr');
                log(stdout,'stdout');
                return;
             }
         });
        
        NamrennerN Offline
        NamrennerN Offline
        Namrenner
        schrieb am zuletzt editiert von
        #5

        @bananajoe
        bekomme Zugriff verweigert
        haben den Ordner für jeder Berechtigung geben

        1 Antwort Letzte Antwort
        0
        • NamrennerN Offline
          NamrennerN Offline
          Namrenner
          schrieb am zuletzt editiert von
          #6

          habe anderen Ordner genommen D:\Iobroker.
          Bekomme keine Meldung und den Ordner ist auch keine Datei test.txt drin

          BananaJoeB 1 Antwort Letzte Antwort
          0
          • NamrennerN Namrenner

            habe anderen Ordner genommen D:\Iobroker.
            Bekomme keine Meldung und den Ordner ist auch keine Datei test.txt drin

            BananaJoeB Offline
            BananaJoeB Offline
            BananaJoe
            Most Active
            schrieb am zuletzt editiert von BananaJoe
            #7

            @namrenner mir ist heute beim Kochen noch was dazu eingefallen:
            psshutdown.exe ist doch aus der Sysinternalsuite? da muss man doch einmal die Lizenzbedingungen annehmen - und das kannst du nicht. Du müsstest die psshutdown.exe einmal als Benutzer iobroker starten und die Bedingungen annehmen.

            Die Lizenzbedingungen muss man einmal pro *.exe annehmen

            ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

            1 Antwort Letzte Antwort
            0
            • NamrennerN Offline
              NamrennerN Offline
              Namrenner
              schrieb am zuletzt editiert von
              #8

              @bananajoe
              Danke, leider habe ich wenig Erfahrung, wie mache dies nun?

              Was komisch ist, wenn ich per Skript in js, kommt nichts, per blockly, ist die Datei test.txt da, aber der Befehl geht nicht.

              BananaJoeB SokomotoS 2 Antworten Letzte Antwort
              0
              • NamrennerN Namrenner

                @bananajoe
                Danke, leider habe ich wenig Erfahrung, wie mache dies nun?

                Was komisch ist, wenn ich per Skript in js, kommt nichts, per blockly, ist die Datei test.txt da, aber der Befehl geht nicht.

                BananaJoeB Offline
                BananaJoeB Offline
                BananaJoe
                Most Active
                schrieb am zuletzt editiert von
                #9

                @namrenner was steht drin der datei?

                Und mangels Testsystem (ich bin zwar eingefleischter Windows-Benutzer, aber ioBroker läuft unter Linux) kann ich dir auch keine Schritt-für-Schritt Anleitung ermitteln.
                Klick die psshutdown.exe mal an das die markiert ist, drück die linke Shift (Großschreib-)taste und dann ein Rechtsklick.
                Im Menü gleich ziemlich oben sollte ein Als anderer Benutzer ausführen erscheinen. Und da nimmst du den ioBroker-Benutzer

                ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                NamrennerN 1 Antwort Letzte Antwort
                0
                • NamrennerN Namrenner

                  @bananajoe
                  Danke, leider habe ich wenig Erfahrung, wie mache dies nun?

                  Was komisch ist, wenn ich per Skript in js, kommt nichts, per blockly, ist die Datei test.txt da, aber der Befehl geht nicht.

                  SokomotoS Offline
                  SokomotoS Offline
                  Sokomoto
                  schrieb am zuletzt editiert von
                  #10

                  @namrenner sagte in Skript EXEC geht nicht:

                  @bananajoe
                  Danke, leider habe ich wenig Erfahrung, wie mache dies nun?

                  Was komisch ist, wenn ich per Skript in js, kommt nichts, per blockly, ist die Datei test.txt da, aber der Befehl geht nicht.

                  Probiere mal das im JS aus:

                  exec('cmd.exe /c dir c:\\temp >c:/temp/test.txt', function(err, stdout, stderr) {
                      if (err) {
                          log(err,'err');
                          log(stderr,'stderr');
                          log(stdout,'stdout');
                          return;
                       }
                  });
                  
                  

                  Bei mir wird hier eine Datei mit dem Inhalt des Ordners angelegt. Das Problem scheint der Parameter start im Befehl "exec('cmd.exe /c start" zu sein. Sobald ich diesen Parameter mit benutze, hängt sich der cmd Process auf und kann nur noch über den Task gekillt werden.

                  NamrennerN 1 Antwort Letzte Antwort
                  0
                  • SokomotoS Sokomoto

                    @namrenner sagte in Skript EXEC geht nicht:

                    @bananajoe
                    Danke, leider habe ich wenig Erfahrung, wie mache dies nun?

                    Was komisch ist, wenn ich per Skript in js, kommt nichts, per blockly, ist die Datei test.txt da, aber der Befehl geht nicht.

                    Probiere mal das im JS aus:

                    exec('cmd.exe /c dir c:\\temp >c:/temp/test.txt', function(err, stdout, stderr) {
                        if (err) {
                            log(err,'err');
                            log(stderr,'stderr');
                            log(stdout,'stdout');
                            return;
                         }
                    });
                    
                    

                    Bei mir wird hier eine Datei mit dem Inhalt des Ordners angelegt. Das Problem scheint der Parameter start im Befehl "exec('cmd.exe /c start" zu sein. Sobald ich diesen Parameter mit benutze, hängt sich der cmd Process auf und kann nur noch über den Task gekillt werden.

                    NamrennerN Offline
                    NamrennerN Offline
                    Namrenner
                    schrieb am zuletzt editiert von
                    #11

                    @sokomoto said in Skript EXEC geht nicht:

                    cmd.exe /c dir c:\temp >c:/temp/test.txt

                    Hallo, danke, so ging es nicht.
                    Aber so geht es:

                    exec('cmd.exe /c dir "c:/temp" >c:/temp/test.txt', function(err, stdout, stderr) {
                    
                        if (err) {
                    
                            log(err,'err');
                    
                            log(stderr,'stderr');
                    
                            log(stdout,'stdout');
                    
                            return;
                    
                         }
                    
                     });
                    
                    NamrennerN 1 Antwort Letzte Antwort
                    0
                    • NamrennerN Namrenner

                      @sokomoto said in Skript EXEC geht nicht:

                      cmd.exe /c dir c:\temp >c:/temp/test.txt

                      Hallo, danke, so ging es nicht.
                      Aber so geht es:

                      exec('cmd.exe /c dir "c:/temp" >c:/temp/test.txt', function(err, stdout, stderr) {
                      
                          if (err) {
                      
                              log(err,'err');
                      
                              log(stderr,'stderr');
                      
                              log(stdout,'stdout');
                      
                              return;
                      
                           }
                      
                       });
                      
                      NamrennerN Offline
                      NamrennerN Offline
                      Namrenner
                      schrieb am zuletzt editiert von Namrenner
                      #12

                      psshutdown geht nicht, Datei leer und kann auch nicht mehr die Datei löschen.
                      Beim aktivieren steht:
                      javascript.0 (22836) script.js.Haus.Skript_1: Unknown severity level "err" by log of [Error: Command failed: cmd.exe /c psshutdown >c:/temp/test3.txt Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. ]

                      scheint das die ganze Zeit was versucht, wie bekomme dies beendet?

                      SokomotoS 1 Antwort Letzte Antwort
                      0
                      • BananaJoeB BananaJoe

                        @namrenner was steht drin der datei?

                        Und mangels Testsystem (ich bin zwar eingefleischter Windows-Benutzer, aber ioBroker läuft unter Linux) kann ich dir auch keine Schritt-für-Schritt Anleitung ermitteln.
                        Klick die psshutdown.exe mal an das die markiert ist, drück die linke Shift (Großschreib-)taste und dann ein Rechtsklick.
                        Im Menü gleich ziemlich oben sollte ein Als anderer Benutzer ausführen erscheinen. Und da nimmst du den ioBroker-Benutzer

                        NamrennerN Offline
                        NamrennerN Offline
                        Namrenner
                        schrieb am zuletzt editiert von
                        #13

                        @bananajoe
                        das Problem ist, der Benutzter ioBroker gibt es nicht in Windows.

                        1 Antwort Letzte Antwort
                        0
                        • NamrennerN Offline
                          NamrennerN Offline
                          Namrenner
                          schrieb am zuletzt editiert von
                          #14

                          Habe nun ioBroker auf mein Systen Benutzter Dienst gestartet, nun geht es, aber
                          wieder ein anderer Fehler mit:

                          exec("psshutdown -r \\192.168.1.2", function(err, stdout, stderr) {
                          
                              if (err) {
                          
                                  log(err,'err');
                          
                                  log(stderr,'stderr');
                          
                                  log(stdout,'stdout');
                          
                                  return;
                          
                               }
                          
                           });
                          

                          javascript.0 (4084) script.js.Haus.Skript_1: Unknown severity level "err" by log of [Error: Command failed: psshutdown -r \192.168.1.2 ]

                          Problem ist das er nicht "\\192.168.1.2" an nimmt, sondern \192.168.1.2, wie kann dieses Problem lösen?

                          AlCalzoneA 1 Antwort Letzte Antwort
                          0
                          • NamrennerN Namrenner

                            Habe nun ioBroker auf mein Systen Benutzter Dienst gestartet, nun geht es, aber
                            wieder ein anderer Fehler mit:

                            exec("psshutdown -r \\192.168.1.2", function(err, stdout, stderr) {
                            
                                if (err) {
                            
                                    log(err,'err');
                            
                                    log(stderr,'stderr');
                            
                                    log(stdout,'stdout');
                            
                                    return;
                            
                                 }
                            
                             });
                            

                            javascript.0 (4084) script.js.Haus.Skript_1: Unknown severity level "err" by log of [Error: Command failed: psshutdown -r \192.168.1.2 ]

                            Problem ist das er nicht "\\192.168.1.2" an nimmt, sondern \192.168.1.2, wie kann dieses Problem lösen?

                            AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von
                            #15

                            @namrenner \ ist ein Escape-Zeichen in Javascript. Du must \\\\ schreiben, um zwei \\ zu erhalten.

                            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                            NamrennerN 1 Antwort Letzte Antwort
                            0
                            • NamrennerN Namrenner

                              psshutdown geht nicht, Datei leer und kann auch nicht mehr die Datei löschen.
                              Beim aktivieren steht:
                              javascript.0 (22836) script.js.Haus.Skript_1: Unknown severity level "err" by log of [Error: Command failed: cmd.exe /c psshutdown >c:/temp/test3.txt Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. ]

                              scheint das die ganze Zeit was versucht, wie bekomme dies beendet?

                              SokomotoS Offline
                              SokomotoS Offline
                              Sokomoto
                              schrieb am zuletzt editiert von
                              #16

                              @namrenner sagte in Skript EXEC geht nicht:

                              psshutdown geht nicht, Datei leer und kann auch nicht mehr die Datei löschen.
                              Beim aktivieren steht:
                              javascript.0 (22836) script.js.Haus.Skript_1: Unknown severity level "err" by log of [Error: Command failed: cmd.exe /c psshutdown >c:/temp/test3.txt Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird. ]

                              scheint das die ganze Zeit was versucht, wie bekomme dies beendet?

                              Das geht nur über den Taskmanager...

                              8990ffae-2454-4775-a5e4-00d1dd5b5a4a-image.png

                              ...da hängt der cmd process.

                              1 Antwort Letzte Antwort
                              0
                              • AlCalzoneA AlCalzone

                                @namrenner \ ist ein Escape-Zeichen in Javascript. Du must \\\\ schreiben, um zwei \\ zu erhalten.

                                NamrennerN Offline
                                NamrennerN Offline
                                Namrenner
                                schrieb am zuletzt editiert von
                                #17

                                @alcalzone danke, nun geht es

                                1 Antwort Letzte Antwort
                                0
                                • BananaJoeB Offline
                                  BananaJoeB Offline
                                  BananaJoe
                                  Most Active
                                  schrieb am zuletzt editiert von
                                  #18

                                  Also es funktioniert jetzt?
                                  Wenn ich so drüber nachdenke hatten wir beim letzten mal unter Windows glaube ich den ioBroker-Dienst unter einen anderem Benutzer starten lassen, also dem Anmeldebenutzer

                                  ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

                                  NamrennerN 1 Antwort Letzte Antwort
                                  0
                                  • BananaJoeB BananaJoe

                                    Also es funktioniert jetzt?
                                    Wenn ich so drüber nachdenke hatten wir beim letzten mal unter Windows glaube ich den ioBroker-Dienst unter einen anderem Benutzer starten lassen, also dem Anmeldebenutzer

                                    NamrennerN Offline
                                    NamrennerN Offline
                                    Namrenner
                                    schrieb am zuletzt editiert von
                                    #19

                                    @bananajoe ja, Danke

                                    1 Antwort Letzte Antwort
                                    0
                                    Antworten
                                    • In einem neuen Thema antworten
                                    Anmelden zum Antworten
                                    • Älteste zuerst
                                    • Neuste zuerst
                                    • Meiste Stimmen


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    846

                                    Online

                                    32.6k

                                    Benutzer

                                    81.9k

                                    Themen

                                    1.3m

                                    Beiträge
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                    ioBroker Community 2014-2025
                                    logo
                                    • Anmelden

                                    • Du hast noch kein Konto? Registrieren

                                    • Anmelden oder registrieren, um zu suchen
                                    • Erster Beitrag
                                      Letzter Beitrag
                                    0
                                    • Home
                                    • Aktuell
                                    • Tags
                                    • Ungelesen 0
                                    • Kategorien
                                    • Unreplied
                                    • Beliebt
                                    • GitHub
                                    • Docu
                                    • Hilfe