Privilegi Elevati file EXE da Servizio

di il
3 risposte

Privilegi Elevati file EXE da Servizio

Ciao a tutti, sto provando a lanciare un file exe (application console) da un servizio, quando lo faccio partire, mi scrive un file di log con l'errore seguente:

"Per eseguire l'operazione richiesta è necessaria l'esecuzione con privilegi elevati."

Il codice per chiamare l'exe dal servizio è il seguente l'utente si trova nel gruppo administrator:
ProcessStartInfo info = new ProcessStartInfo(_Path);

info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
info.CreateNoWindow = true;
info.ErrorDialog = false;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.Verb = "runas";
info.UserName = "mioutente";
var pass = new System.Security.SecureString();
pass.AppendChar('m');
pass.AppendChar('i');
pass.AppendChar('a');
pass.AppendChar('P');
pass.AppendChar('a');
pass.AppendChar('s');
pass.AppendChar('s');
pass.AppendChar('w');
pass.AppendChar('o');
pass.AppendChar('r');
pass.AppendChar('d');

info.Password = pass;
Process process = Process.Start(info);

Come posso far partire l'exe da processo con i permessi di amministratore?

Ciao e Grazie

3 Risposte

  • Re: Privilegi Elevati file EXE da Servizio

    diablo.net ha scritto:


    Come posso far partire l'exe da processo con i permessi di amministratore?
    Potresti provare a specificare un utente che abbia tali diritti nella finestra di dialogo di configurazione del servizio, accedendo al Service Control Manager di Windows.

    Io suggerisco tuttavia di evitare completamente questa pratica: un Windows Service è progettato appositamente per girare in background senza alcuna interazione con il desktop e con l'utente, tant'è vero che potrebbe essere eseguito tranquillamente anche senza fare il login.

    Una interfaccia la si potrebbe realizzare facendo il login e lanciando un processo in grado di colloquiare con il servizio (comunicazione interprocesso, server REST incorporato, ecc.) e pilotarlo in qualche modo, oppure esponendo un server Web con una interfaccia appositamente progettata.

    E' comunque generalmente escluso che il servizio possa visualizzare una interfaccia utente tradizionale, né invocarla per lo stesso motivo (senza eseguire il login, non vedresti niente).

    Ciao!
  • Re: Privilegi Elevati file EXE da Servizio

    Ok, ma il mio programma non ha una interfaccia grafica per l'utente, questo viene eseguito ed in backgroud gira. Quando parte si collega ad un PLC e inizia a leggere i dati di impianto in un ciclo praticamente infinito. A questo punto la mia necessità è quello di farlo partire all'avvio del PC in modo tale che se la macchina si riavvia l'operatore non deve far partire nulla (dovrfebbe partire in automatico). Ho provato anche a metterlo in run come esecuzione automatica ma non parte lo stesso è per questo che avevo pensato ad un servizio per farlo partire.

    Idee per farlo partire automaticamente all'avvio del PC?
  • Re: Privilegi Elevati file EXE da Servizio

    diablo.net ha scritto:


    Ok, ma il mio programma non ha una interfaccia grafica per l'utente, questo viene eseguito ed in backgroud gira.
    Sei tu che hai parlato di dover lanciare un programma esterno di tipo Console da un servizio.

    diablo.net ha scritto:


    Quando parte si collega ad un PLC e inizia a leggere i dati di impianto in un ciclo praticamente infinito. A questo punto la mia necessità è quello di farlo partire all'avvio del PC in modo tale che se la macchina si riavvia l'operatore non deve far partire nulla (dovrfebbe partire in automatico). Ho provato anche a metterlo in run come esecuzione automatica ma non parte lo stesso è per questo che avevo pensato ad un servizio per farlo partire.
    Idee per farlo partire automaticamente all'avvio del PC?
    Le applicazioni che non sono servizi vanno in Esecuzione automatica solo dopo che l'utente ha fatto il login.

    Se tu implementi il tuo programma come servizio, questo può essere tranquillamente configurato per partire all'avvio del PC, e se non hai bisogno di una interfaccia grafica ma solo di eseguire in background una acquisizione di dati, questo è il compito perfetto per un servizio Windows, ergo crea un servizio e lascia perdere l'applicazione Console.

    Ciao!
Devi accedere o registrarti per scrivere nel forum
3 risposte