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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Skript EXEC geht nicht

Geplant Angeheftet Gesperrt Verschoben JavaScript
19 Beiträge 4 Kommentatoren 907 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 Offline
    NamrennerN Offline
    Namrenner
    schrieb am zuletzt editiert von
    #1

    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 1 Antwort Letzte Antwort
    0
    • 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

                                        843

                                        Online

                                        32.5k

                                        Benutzer

                                        81.7k

                                        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