Applicatie C# openen bij shell:startup als administrator

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • ThinClientQ
  • Registratie: April 2010
  • Laatst online: 28-09 09:18
Dag Tweakers!,

Ik ben totaal niet bekend met C#, maar heb een hele kleine applicatie gemaakt.
Deze applicatie controleert dat er een bepaalde Windows Service actief is.
De applicatie kan ook de service stoppen en/of starten.

Volgens mij zijn hier altijd administrator rechten voor nodig.

De hele kleine applicatie zet ik bij 'Opstarten' neer (shell:startup), zodat de applicatie automatisch wordt opgestart bij het starten van de computer.
Ik kan forceren dat deze 'run as administrator' opstart, maar dan krijgt de gebruiker elke keer een melding.

Hoe kan ik dit correct verbeteren?

Dank Tweakers!

Acties:
  • 0 Henk 'm!

  • Harrie_
  • Registratie: Juli 2003
  • Niet online

Harrie_

⠀                  🔴 🔴 🔴 🔴 🔴

Volgens mij is deze post op StackOverflow exact de vraag die je hebt.

Dit heeft betrekking op Windows 7, maar ik verwacht dat de Windows versie niet zoveel uitmaakt; 7, 8 en 10 hebben allemaal UAC.

Hoeder van het Noord-Meierijse dialect


Acties:
  • 0 Henk 'm!

  • xFeverr
  • Registratie: Juni 2011
  • Laatst online: 08-10 18:23
Houd er rekening mee dat het dan sowieso een admin account is. Dan zul je het inderdaad op die enorm vieze manier die als antwoord op Stack overflow staat kunnen gaan werken. Al betwijfel ik of dat zomaar werkt vandaag de dag. Het ding is een beetje: dit is waar UAC voor gemaakt is.

Zorg er dan liever voor dat de applicatie zelf zonder admin rechten werkt, maar zodra er iets mee gedaan moet worden waarmee admin rechten nodig zijn, dat het ook dan pas wordt gevraagd.

Of je moet gaan kijken naar de geplande taken, of een service schrijven die op local system niveau draait waarmee je UI praat.

Acties:
  • 0 Henk 'm!

  • HansvDr
  • Registratie: Augustus 2009
  • Niet online
Je zou een geplande taak kunnen gebruiken en die instellen met de admin-rechten. Je laat de taak starten bij aanmelden of opstarten (of een tijdstip).

Acties:
  • +1 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Ik voel een kip-en-ei probleem aan komen. De standaard manier om code te runnen als administrator, buiten logins om, is als Windows Service. Maar wat probeer je precies te bereieken? Een service die een andere service in de gaten houdt?

Er is natuurlijk een ander probleem: de functionaliteit om een service te stoppen (impact op alle gebruikers) moet natuurlijk niet zomaar beschikbaar zijn. Dat hoort inderdaad via een Admin account, en met expliciete UAC elevatie te gebeuren. Met andere woorden, jouw "Stop" button moet zo'n UAC schildje hebben,Afbeeldingslocatie: http://www.mitchellenright.com/wp-content/uploads/2014/08/uac-icon-200x200.png

Als je op die Stop button drukt hoor je (op dat moment!) een UAC prompt te krijgen. Je bereikt dat door een helper procesje. De button start de helper; Windows geeft je een UAC prompt, de helper is wél elevated, en alles werkt zoals het hoort.

[ Voor 6% gewijzigd door MSalters op 04-09-2017 14:56 ]

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • ZaZ
  • Registratie: Oktober 2002
  • Laatst online: 27-09 00:06

ZaZ

Tweakers abonnee

Ik ga volledig met MSalters mee.
Ik reageer alleen eigenlijk omdat ik benieuwd ben waarom je dit wilt?
Je hebt het over de service te controleren of ie draait (waarschijnlijk omdat ie soms crasht ofzo?) en vanuit die gedachte meteen hebt bedacht "dan maak ik meteen een service manager app ervan?"

Tijdens het installeren van een service (en ook achteraf) kan je namelijk al prima instellen wat er moet gebeuren wat te doen als een service onverwacht stopt.
Bijvoorbeeld de service gewoon opnieuw opstarten en als ie dat 3 keer binnen een uur moet een custom actie uitvoeren of de computer opnieuw opstarten of iets dergelijks. Noem maar op, er zijn veel mogelijkheden.

Natuurlijk ook prima als je iets wil maken wat de service zelf kan stoppen en starten, maar dan is er gewoon elevation nodig met een handmatige actie en anders ga je tegen alle regels in.

Lekker op de bank

Pagina: 1