Start e stop servizi da app non admin

di il
10 risposte

Start e stop servizi da app non admin

Ennesimo problema

da una app che parte da un account guest, avrei bisogno di stoppare e riavviare un servizio di windows.

il problema è che serve essere amministratore per poterlo fare.

ho provato con la TShellExecuteInfo usano la runas ma mi appare la finestra di windows per chiedermi utente e password.

Ho provato col comando runas /user:<NOMEDOMINIO>\<USERNAME> /savecred " net stop servizio" che , in teoria, chiede le credenziali una volta sola e poi le memorizza, ma non funziona, ho provato anche lanciando un file bat, ma non funziona, se pero' al posto di net stop servizio metto di aprire notepad, funziona.

Insomma c'e' un modo da una app delphi su windows 10 che gira su account guest di stoppare un servizo, "bypassando" o passandogli nome utente e password dell'account admin?

Magari a qualcuno è già capitato di farlo.

grazie.

10 Risposte

  • Re: Start e stop servizi da app non admin

    Di sicuro NON bypassando, altrimenti il sistema di autenticazione sarebbe un colabrodo con tutti i disastri conseguenti.

    DEVI eseguire il codice sotto un opportuno utente che abbia i diritti amministrativi sul servizio in questione.

    Diciamo, in linea di principio, che un'applicazione puo' registrare far partire, terminare un PROPRIO servizio.
    E' altresi' sconsigliato, una pessima idea, andare a pasticciare con ALTRI servizi.
  • Re: Start e stop servizi da app non admin

    ziobacco ha scritto:


    Insomma c'e' un modo da una app delphi su windows 10 che gira su account guest di stoppare un servizo, "bypassando" o passandogli nome utente e password dell'account admin?
    Che io sappia, senza privilegi elevati non puoi fare nulla sui servizi, se parliamo di Windows Service tradizionali, e non mi pare vi sia modo di lanciare il comando indicando anche la password assieme all'utente.

    Se il servizio Windows lo hai scritto tu, allora potresti prevedere qualche forma di comunicazione tra quel servizio e l'eventuale "companion app", in modo da poter inviare comandi e far sì che sia il servizio a concludere sé stesso dietro suggerimento ricevuto da un'altra applicazione.

    Ciao!
  • Re: Start e stop servizi da app non admin

    Il servizio è quello di mariadb, quindi non mio.

    Ho bisogno di fermarlo per copiare la cartella "data" e rifarlo ripartire.
    Il tutto è nato dal fatto che piu' volte mi si è (non so ancora come) corrotto qualche file della directory dove mariadb memorizza i datafiles, bloccando il servizio oppure non permettendomi piu ne il login ne un restore dei backup fatti, percui l unica soluzione che son riuscito a trovare era di disinstallare mariadb, reinstallarlo e rimettere i database, cosa che onestamente trovo allucinante per un database come mysql o mariadb che sia... un file corrotto e buuum.. esplode tutto?, ma nessuno mi ha risposto nell'altro ticket percui o non è mai successo a nessuno o boh.... ma di fatto al momento è cosi.

    Percui ho messo in piedi una cosa che,a onor del vero non mi piace e mi pare assurdo, faccio una copia (zippata) della cartella data.

    e l' idea era che se la app in questione perde la connessione e non riesce a connettersi, ripristino l ultimo backup della cartella.
    Pero' per fare questo devo appunto stoppare il servizio (nel caso sia attivo), copiare la cartella, far ripartire il servizio, pregare il signore che si riconnetta ^_^.

    Non posso ogni volta dover reinstallare mariadb.
  • Re: Start e stop servizi da app non admin

    ziobacco ha scritto:


    Percui ho messo in piedi una cosa che,a onor del vero non mi piace e mi pare assurdo, faccio una copia (zippata) della cartella data. [...]
    Direi che è una cosa assolutamente da evitare!

    Qualsiasi database mette a disposizione strumenti specifici per effettuare il backup dei dati.

    Non c'è nulla di più insicuro di andare a copiare manualmente una cartella di file fisici, bypassando i suddetti servizi, a maggior ragione se l'istanza non è nemmeno più la stessa ma viene disinstallata e reinstallata, cosa che trovo doppiamente assurda per le tempistiche che occorrono ad eseguire tale operazione, ma anche per la necessità di ripristinare poi una specifica configurazione.

    E' un po' come voler demolire e ricostruire una casa ogni volta che si vogliono cambiare le tende in cucina.

    Io rivedrei assolutamente questo processo. Tra l'altro, in questo forum c'è pure una sezione dedicata a questo DB...

    Ciao!
  • Re: Start e stop servizi da app non admin

    Sono in accordo con te, difatti avevo provato con mariabackup, ho messo un ticket sul forum di mariadb ma io non sono riuscito a risolvere con mariabackup.
    In primis serve che si colleghi, e ok, ammettiamo che in condizioni normali questo avvenga, di fatto se capita qualcosa di brutto non fa il backup di qualcosa che è corrotto, e mi va bene.

    ma seguendo questa guida : https://mariadb.com/kb/en/full-backup-and-restore-with-mariabackup/

    che riassumendo fa fare:
    mariabackup --backup    --target-dir=/var/mariadb/backup/    --user=mariabackup --password=miapassword
    per fare il backup,
    poi
     mariabackup --prepara    --target-dir=/var/mariadb/backup/
    per preparare il backup;

    poi dice arrestare il servizio ( e comunque gia tornaimo al discorso di prima), svuotare la cartella data e ripristinare il backup col comando
    mariabackup --copy-back    --target-dir=/var/mariadb/backup/

    cosa che ho fatto, ma poi tentando di avviare l servizio mriadb mi da :
    Errore di sistema.
    
    Errore di sistema 1067.
    
    Termine imprevisto del processo.

    se invece banalmente copio un backup fatto con una semplice copia della cartella data, il servizio riparte.

    Sbagliero' sicuramente qualcosa io ma comunque mi resta il problema che il servizio va comunque arrestato. (anche funzionasse il ripristino, cosa che, almeno a me, non ha funzionato)
  • Re: Start e stop servizi da app non admin

    Il tutto è nato dal fatto che piu' volte mi si è (non so ancora come) corrotto qualche file della directory dove mariadb memorizza i datafile...
    Questo NON E' POSSIBILE.
    Nel senso che un DBMS che si RISPETTI ha tutta una serie di meccanismi complicati che assicurano che non sia possibile una corruzione dei file.

    Se cio' avviene, e' una rogna rognosa che non ha nulla a che fare con il DBMS.
    Devi "scovare" chi e' il responsabile di tale comportamento, non potendo essere il DBMS.

    Anche se usi MALE o in modo ORRENDO il dbms, e' IIMPossibile che lo stesso corrompa I file.

    Certo ci potrebbero essere errori implementativa, ma a meno di non usare una versione BETA, o ALFA del software, questi errori sono gia' stati risolti n-mila anni fa.

    Ovviamente questo numero non vuol dire che i file non si possano corrompere perche' ci sono problemi hardware (il disco sta per tirare le cuoia) che comunque Windows o Linux dovrebbero intercettare e generare degli Alert.
  • Re: Start e stop servizi da app non admin

    migliorabile ha scritto:



    Questo NON E' POSSIBILE.
    Nel senso che un DBMS che si RISPETTI ha tutta una serie di meccanismi complicati che assicurano che non sia possibile una corruzione dei file.
    vorrei tanto poter essere in accordo con te, ma di fatto mi è successo e piu di una volta.
    E a onor del vero sono rimasto piuttosto allibito perche cmq non mi era mai successo che mi si corrompesse un file di mysql o mariadb che sia.

    C'e' da dire che gira tutto in locale su un pc desktop, sia il server di mariadb che l'applicazione client che si connette ad esso, ma non vedo il "problema" in questo.

    Il pc tra l' altro non è certo un server ma di fatto è acceso 24 ore su 24, o perlomeno dovrebbe esserlo al netto di cadute di tensione.

    C e da dire che i alcuni momenti fa diverse scritture a database, per esempio ho una tabella che potrebbe arrivare al milione di record nel giro di qualche giorno ( cmq viene fatta "pulizia" dei vecchi record), l unicA cosa che posso arrivare a pensare è che sia il pc si sia spento durante appunto degli inserimenti, ma simulando la cosa sul mio pc (loop di insert e tolgo brutalmente la spina), non mi è mai successo di corrompere il db e che il servizio di maradb non partisse piu, cosa che appunto mi è successa su 2 pc in produzione.

    Morale della favola..... BOOOHH
  • Re: Start e stop servizi da app non admin

    Problemi hardware? Disco che sta per defungere o RAM non affidabile?
  • Re: Start e stop servizi da app non admin

    Lo so che ti sembra strano, e che visto che e' il servizio di mariadb a piantarsi e a corrompersi sono i file di mariadb, ALLORA, e' colpa di mariadb.

    Supposizione plausibile, ma l'esperienza insegna: NON HA SENSO.

    Vedila in questo modo: sei automobile ed ad un certo momento la macchina inizia a sbandare verso destra. Rimetterla al centro della strada e' semplice, basta che ruoti il volante un po' a sinistra.
    Potrebbe anche essere che la strada abbia una strana pendenza a destra, l'effetto sarebbe lo stesso.
    Poiche' la tua automobile non fa rumori strani, e fino a quel momento tutto andava bene, ALLORA DEVE ESSERE la strada.

    Invece, poiche' NON E' POSSIBILE che la strada sia STORTA, DEVE essere la tua macchina!.
    Hai forato, oppure hai una ruota NON IN ASSE e devi andare a rifare la convergenza!

    Questo per dire:
    - e' un problema hardware
    - ci sono piu' processi che vanno a pasticciare sui file di proprieta' di mariadb SENZA il suo consenso (antivirus?)
    - e' stata fatta qualche configurazione custom che fa riferimento agli stessi file per cose/attivita' diverse.

    L'assioma e': NON PUO' ESSERE il dbms che sbarella di suo!
  • Re: Start e stop servizi da app non admin

    Può anche essere un virus/malware giocherellone...
Devi accedere o registrarti per scrivere nel forum
10 risposte