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
    627

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

  • 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.
  • NamrennerN Namrenner

    Bitte um Hilfe, versuche schon mehre Stunden, es geht nicht.
    Kommando "exec" erlauben ist drin
    Windows System, Kommandozeile geht der Befehl.
    Weis nicht wo der Fehler ist.
    Der Befehl shutdown /s /t 10 /m 192.168.1.2 geht es auch nicht, zeigt Zugriff verweigert an.
    Bei

    exec('cmd.exe /c start "psshutdown.exe -r \\192.168.1.2 -u xxxxxx -p xxxxxx"', function(err, stdout, stderr) {
    
        if (err) {
    
           log(stderr,'error');
    
           return;
    
        }
    
     
    
    });
    
    
    BananaJoeB Offline
    BananaJoeB Offline
    BananaJoe
    Most Active
    schrieb am zuletzt editiert von
    #2

    @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.

    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 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

                                      514

                                      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