2017-03-03 6 views
2

Ich verwende dieses Plugin, um einen Windows-Dienst zu erstellen: https://github.com/coreybutler/node-windows. Ich möchte ein externes Programm mit meinem Dienst starten. EDIT 1:Knoten Windows ausführen Kind Prozess.exe

var cp = require("child_process"); 
cp.exec("C:\\Users\\test\\Desktop\\file.exe", function(error, stdout) { 
}); 

Anschließend versuche ich mit einem Verfahren zum Plugin. EDIT2

node_windows.elevate("C:\\Users\\test\\Desktop\\file.exe",function(error,stdout){ 
}); 

Diese Methode Start exe, aber ich sehe nicht, GUI in der Desktop. Wenn ich Option in services.msc =>Interact with desktop überprüfe, sehe ich ein anderes Fenster, das mich bittet, Interaktion des Programms zu bestätigen, wie folgt: http://help.tcadmin.com/images/d/dd/InteractWithDesktop.png Wenn ich "ANZEIGE DIE NACHRICHT" wähle, leite es mich zu einem anderen Abschnitt um, der nur mein Programm und Knoten bash hat ohne Desktop-App (wie folgt aus: https://s3.amazonaws.com/cdn.freshdesk.com/data/helpdesk/attachments/production/4029645611/original/7daystodie-session0.png?1471375419)

ich schon ein Problem öffnen haben: https://github.com/coreybutler/node-windows/issues/163

Wer kann mir helfen?

Antwort

0

Wie in der Github issue erwähnt, ist dies wahrscheinlich ein Problem mit Berechtigungen.

Die einfachste Möglichkeit, einen untergeordneten Prozess auszuführen, während der Benutzerkontext explizit definiert wird, besteht darin, die Datei cmd.exe auszuführen. So könnte es so etwas wie die folgenden (ungetestet) Pseudo-Code aussehen:

require('child_process').exec('cmd.exe', ['/c /env /user:username C:\nodejs\node.exe C:\path\to\myscript.js'], function(){...}) 

Sie können mehr über cmd und runas auf technet lesen.

Dieser Ansatz kommt mit einer ganzen Reihe von Vorbehalten (weshalb ich empfehle, es zu vermeiden). Es macht Ihren Code plattformspezifisch (d. H. node-mac und node-linux wird damit nicht funktionieren). Ich habe auch Nuancen mit Runas auf verschiedenen Windows-Versionen bemerkt, und es kann schwierig sein, Probleme zu nageln.

+0

Ich habe das gleiche Problem und es funktioniert auch nicht, wenn ich Prozess und Kind Prozess mit Administrator und volle Permissios laufen lassen !!! Als @ Mr.Orange sagte, ich denke, es ist ein Problem des Windows-Dienstes. Ich sehe diesen Prozess auch im Hintergrund processo für Windows 10 gehen !! – Davide

+0

@Davide - denken Sie daran, dass es administrative Berechtigungen sind nicht immer genug. Es gibt mehrere Situationen, in denen Windows ELEVATED-Administratorberechtigungen erfordert. – Corey

+0

Das Problem ist, dass die "exe" gut beginnen !!! Aber es geht in den Hintergrundmodus und es zeigt nicht GUI Aber für den Dienst das Programm ist es gestartet und es ist wahr !! Wir haben versucht mit vielen verschiedenen exe zu starten, aber nichts ändert sich. – Davide

Verwandte Themen