Best practice voor Windows-installatieprogramma's: admin, non-admin of beide?

Een van mijn applicaties heeft een Windows-versie, ik heb een installatieprogramma gemaakt met NSIS en de huidige versie wordt geïnstalleerd in "Program Files".

Ik begrijp dat het alleen werkt als het installatieprogramma wordt uitgevoerd als een beheerder en het mogelijk problemen oplevert voor sommige gebruikers (zakelijke pc's ...).

Wat is de beste werkwijze van Windows voor dit soort installatieprogramma's? De gebruiker dwingen om admin te zijn? Biedt u de mogelijkheid om ergens anders te installeren?

(Ik ben een UNIX/Mac-man dus ken het Evangelie niet echt als het gaat om Windows-apps)

Here is the NSIS script in case someone want to have a look: https://github.com/nickbnf/glogg/blob/master/glogg.nsi

2

3 antwoord

In Windows wordt het over het algemeen als een goede gewoonte beschouwd om beheerderstoegang te vereisen om software te installeren. Ondernemingen vinden deze functie eigenlijk leuk omdat het betekent dat bepaalde mensen geen software kunnen installeren zonder toestemming van het bedrijf. Software moet meestal in de map Program Files of Program Files (x86) worden geplaatst en moet opzettelijk beheerdersrechten hebben.

Er zijn een paar uitzonderingen op deze regel, maar ze zijn zeldzaam. Om software per gebruiker veilig te kunnen installeren, moet u garanderen dat:

1) het installatieprogramma kan functioneren vanaf een andere locatie dan programmabestanden (of andere machinebrede locaties).

2) De software zelf schrijft niet naar machinebrede locaties.

3) U schrijft niets naar de machinebrede registerlocaties (bijvoorbeeld HKEY_LOCALMACHINE).

Eerlijk gezegd is dit een complexere kwestie. Het hangt echt af van wat je doet. Als je met click-once installaties wegkomt, dan is dat misschien de beste gok en kun je dat met gedeeltelijk vertrouwen doen, wat betekent dat je geen administrator-toegang nodig hebt en dat je meestal gegarandeerd bent dat het gebruik gebruiker.

1
toegevoegd
Ben ik het niet mee eens. Het niet toestaan ​​van installaties per gebruiker maakt extra werk voor de IT-afdeling (dat wil zeggen, ik!) En verbetert de beveiliging niet: per-user software wordt uitgevoerd in de context van de gebruiker, dus het kan niets doen dat de gebruiker niet kon op een andere manier doen. Auteurs van kwaadwillende software zullen uw advies hoe dan ook niet volgen, en het heeft geen zin om niet-kwaadwillende software uit te sluiten.
toegevoegd de auteur Harry Johnston, de bron
Als u als bedrijfsbeheerder echt wilt voorkomen dat gebruikers niet-goedgekeurde software gebruiken, moet u het softwarebeperkingsbeleid of AppLocker (voor Windows 7) onderzoeken.
toegevoegd de auteur Harry Johnston, de bron
toegevoegd de auteur Harry Johnston, de bron
bedrijfsbeleid dat anticipeert op gepubliceerde software om zich aan conventies te houden lijkt ondoordacht
toegevoegd de auteur stackuser83, de bron

De standaardoptie zou altijd een installatie per machine moeten zijn, d.w.z. dat deze admin-toegang vereist, maar als u een installatie per gebruiker kunt aanbieden, is dit een extra bonus die het leven van sommige mensen gemakkelijker kan maken.

Best practice, waar mogelijk, is om twee versies te bieden: een met een installatieprogramma en een programma dat gewoon wordt uitgevoerd zonder dat het hoeft te worden geïnstalleerd. De laatste staat bekend als een draagbare toepassing .

(En hoewel ik uw aandacht heb gekregen, moet u ervoor zorgen dat namens uw bedrijfs-IT overal in uw installatieprogramma een gedocumenteerde en geteste stille modus aanwezig is, zodat we de software automatisch kunnen installeren.)

1
toegevoegd
Typisch draagbare apps slaan hun configuratie op in dezelfde map als de applicatiebestanden, of in een subdirectory. In een traditionele applicatie is dit natuurlijk een heel slecht idee, maar het punt van draagbare apps is dat elke gebruiker zijn eigen kopie op zichzelf heeft. (Uiteraard moet de versie met het installatieprogramma nog steeds de applicatiegegevensmap van de gebruiker gebruiken.)
toegevoegd de auteur Harry Johnston, de bron
Interessant, dus ik zou niet-admin definitief uit het installatieprogramma moeten sluiten. Daarnaast hou ik van het idee om een ​​draagbare versie te leveren (ik geloof dat een eenvoudige zip met de .exe en het paar .dll genoeg zou zijn, toch?). Ik veronderstel dat de draagbare app zijn configuratie ook niet in% APPDATA% zou moeten opslaan?
toegevoegd de auteur Nicolas Bonnefon, de bron

Ik raad u aan om altijd in te stellen ALLUSERS = 1 voor die installaties.

Bewerken

Litte toevoeging dus bespaar je eindeloos lezen van msdn-artikelen. ALLUSERS = 1 dwingt de installatie om per computer te zijn. Dit houdt het gebruikersprofiel schoon en maakt de software beheersbaar in een bedrijfsomgeving. U kunt altijd software installeren en verwijderen, zelfs als de gebruiker niet is aangemeld. Ook ALLUSERS = 2 (toestaan ​​per installatie door de gebruiker) is in dergelijke omgevingen bijna onmogelijk te verwijderen.

U kunt de eigenschap instellen in de eigenschappentabel of via de commandoregel:

msiexec.exe myPackage.msi ALLUSERS=1
1
toegevoegd
Merk op dat de OP geen MSI gebruikt.
toegevoegd de auteur Harry Johnston, de bron
Ik ben het daar niet mee eens, zie mijn opmerkingen bij het antwoord van Orion.
toegevoegd de auteur Harry Johnston, de bron