Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Skript EXEC geht nicht

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skript EXEC geht nicht

    This topic has been deleted. Only users with topic management privileges can see it.
    • Namrenner
      Namrenner last edited by

      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;
      
          }
      
       
      
      });
      
      
      BananaJoe 1 Reply Last reply Reply Quote 0
      • BananaJoe
        BananaJoe Most Active @Namrenner last edited by

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

        Namrenner 1 Reply Last reply Reply Quote 0
        • Namrenner
          Namrenner @BananaJoe last edited by

          @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

          BananaJoe 1 Reply Last reply Reply Quote 0
          • BananaJoe
            BananaJoe Most Active @Namrenner last edited by

            @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;
                 }
             });
            
            Namrenner 1 Reply Last reply Reply Quote 0
            • Namrenner
              Namrenner @BananaJoe last edited by

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

              1 Reply Last reply Reply Quote 0
              • Namrenner
                Namrenner last edited by

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

                BananaJoe 1 Reply Last reply Reply Quote 0
                • BananaJoe
                  BananaJoe Most Active @Namrenner last edited by BananaJoe

                  @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

                  1 Reply Last reply Reply Quote 0
                  • Namrenner
                    Namrenner last edited by

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

                    BananaJoe Sokomoto 2 Replies Last reply Reply Quote 0
                    • BananaJoe
                      BananaJoe Most Active @Namrenner last edited by

                      @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

                      Namrenner 1 Reply Last reply Reply Quote 0
                      • Sokomoto
                        Sokomoto @Namrenner last edited by

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

                        Namrenner 1 Reply Last reply Reply Quote 0
                        • Namrenner
                          Namrenner @Sokomoto last edited by

                          @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;
                          
                               }
                          
                           });
                          
                          Namrenner 1 Reply Last reply Reply Quote 0
                          • Namrenner
                            Namrenner @Namrenner last edited by 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?

                            Sokomoto 1 Reply Last reply Reply Quote 0
                            • Namrenner
                              Namrenner @BananaJoe last edited by

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

                              1 Reply Last reply Reply Quote 0
                              • Namrenner
                                Namrenner last edited by

                                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?

                                AlCalzone 1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer @Namrenner last edited by

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

                                  Namrenner 1 Reply Last reply Reply Quote 0
                                  • Sokomoto
                                    Sokomoto @Namrenner last edited by

                                    @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 Reply Last reply Reply Quote 0
                                    • Namrenner
                                      Namrenner @AlCalzone last edited by

                                      @alcalzone danke, nun geht es

                                      1 Reply Last reply Reply Quote 0
                                      • BananaJoe
                                        BananaJoe Most Active last edited by

                                        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

                                        Namrenner 1 Reply Last reply Reply Quote 0
                                        • Namrenner
                                          Namrenner @BananaJoe last edited by

                                          @bananajoe ja, Danke

                                          1 Reply Last reply Reply Quote 0
                                          • First post
                                            Last post

                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          811
                                          Online

                                          31.8k
                                          Users

                                          80.0k
                                          Topics

                                          1.3m
                                          Posts

                                          4
                                          19
                                          588
                                          Loading More Posts
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                          The ioBroker Community 2014-2023
                                          logo