windows - Service eller startet program af en tjeneste med administrative rettigheder

Indlæg af Hanne Mølgaard Plasc

Problem



Til opdatering af vores software brugte vi et VB6 opdateringsprogram med opdateringsniveauer og forskellige opdateringskilder. Den kopierede de nødvendige filer fra opdateringskilderne til den lokale destination (C: \ programfiler \ firma \ produkt).


VB6-programmer kan kun køre med en servicehjælper (srvany eller lignende) som en tjeneste og har ikke tilstrækkelige rettigheder til at ændre eller tilføje nye filer i den givne mappe. Men selv et .NET-program har ikke de nødvendige rettigheder til at gøre det, kun hvis du angiver administratoroplysningerne på tjenesten.


Hvis kunden ikke ville indstille tjenesten med administratoroplysningerne, hvordan kan vi bruge en tjeneste eller et program kaldet af en tjeneste til at ændre filerne i den givne mappe, betyder at den har administrative rettigheder.


MSI/MSP er ikke muligt på grund af de givne opdateringsniveauer (forskellige brugere med forskellige program- og rapportversioner).


Vi forsøgte at kalde et eksternt program fra en C # .NET Service med højde, men ingen måde ...
Vi tjekket nogle tipps og tricks med manifesterede filer eller tænkte på at lave et COM-objekt, der kunne have administrative rettigheder, men jeg tror, ​​det er den forkerte måde.


En anden mulighed er at oprette en planlagt opgave ved at give 'højeste pivilege'. Men virker det? Hvis opgaven skal køre efter login og forskellige brugere kunne bruge denne computer, skal du definere en opgave for hver bruger ... Vi kender ikke hvert login på klientens computer, fordi de ændrer sig meget ofte.


Kan nogen hjælpe venligst?

Bedste reference


For at starte noget forhøjet, har du brug for en tjeneste, der kører som lokalt system, så det har de nødvendige privilegier for at få adgang til programfiler. Men tjenesten kører altid, og tager hukommelse.


Du kan oprette en planlagt opgave, som starter efter en bestemt periode. Jeg er ikke sikker på, men det er muligt at køre en opgave forhøjet uden UAC-bekræftelse.


Manifester skal også give dig mulighed for at starte en anden applikation forhøjet.





Grundlæggende behøver din opdaterer ikke at blive forhøjet: den kan downloade opdateringsfilerne til ProgramData, som kan skrives af hver bruger. Når downloadet er færdig, starter det installationsprogrammet, der kræver administrative rettigheder.


Firefox bruger automatisk opdateringsmekanisme: Når den downloades en nyere version, beder den om højde at anvende opdateringen.


Apple Quicktime bruger en planlagt opgave til at starte opdateringen. Den præsenterer interface, hvor brugerne kan vælge, hvilke opdateringer de vil installere. Den overfører opdateringsfilerne, beder om højde og bruger derefter opdateringerne.


Hvis du ikke vil have nogen brugerinteraktion, er service den bedste indsats.