none
Accès en écriture au répertoire System32 RRS feed

  • Discussion générale

  • Bonjour,

    Mon application sous Framework 4 doit écrire un fichier (une dll) dans le répertoire System32 qui est protégé en écriture. L'accès est refusé.

    Il y a surement un moyen pour résoudre ce problème, puisque des applications le font, mais lequel ?

    Merci de votre aide.

    Cordialement.


    Alain

    mercredi 20 janvier 2016 10:32

Toutes les réponses

  • Bonjour, 

    Pour pouvoir faire des modifications dans le système. Votre application doit être lancée avec un utilisateur avec les bon privilèges. 

    La façon la plus simple pour vous est de lancer l'application en tant qu'administrateur. 

    Pour être sûr que l'application se lance tout le temps en administrateur, effectuez les actions suivantes : 

    1. Localisez le programme que vous voulez configurer
    2. Clic droit sur l'application puis clic sur Propriétés
    3. Sur la fenêtre des propriétés, aller dans l'onglet  Compatibilité
    4. Effectuer les actions suivantes : 

    Pour appliquer les droit uniquement à l'utilisateur en cours, cocher la case "Exécuter ce programme en tant qu'Administrateur"

    Pour appliquer les droits à tous les utilisateurs, cliquer sur "Modifier les paramètres pour tous les utilisateurs"

    Dans la nouvelle fenêtre, cocher la case "Exécuter ce programme en tant qu'Administrateur".

    Une fois tout validé, lorsque vous voudrez lancer l'application, il est possible qu'une fenêtre vous demande l'autorisation d'élever les droits de l'application. Il faudra alors cliquer sur Oui. Cela est le comportement normal de l'UAC qui permet de préserver la sécurité du système d'exploitation. 

    Cordialement, 



    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mercredi 20 janvier 2016 10:55
  • Bonjour Kevin,

    Oui, bien sûr. Mais Je ne peux pas obliger mes clients à lancer l'appli de cette façon.

    Lorsqu'on lance certains programmes, ils demandent directement si l'utilisateur veut bien modifier le système. Cela signifie qu'ils se lancent en mode administrateur, sans que l'utilisateur soit obligé de le spécifier. C'est plutôt cela que je cherche à faire. Comment ?

    Par ailleurs, durant son développement sous VS 2015, comment faire pour exécuter l'appli en mode administrateur ?

    Merci

    Cordialement


    Alain

    mercredi 20 janvier 2016 14:03
  • Bonjour, 

    Dans le cadre du développement, lancez Visual studio en administrateur. 

    Par contre dans le cadre d'un déploiement. Il faut que ce soit votre outil de déploiement qui spécifie que l'exécutable doit se lancer en tant qu'administrateur. 

    Cordialement, 


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mercredi 20 janvier 2016 14:11
  • Très bien, merci de votre réponse.

    Dans un déploiement VS-ClickOnce, je n'ai pas vu comment spécifier que l'exécution doit se faire en mode administrateur. Est-ce possible ?

    Cordialement


    Alain

    mercredi 20 janvier 2016 14:32
  • Bonjour, 

    A ma connaissance, ClickOnce ne le permet pas, pas plus que InstallShield en édition limitée (InstallShield le permet mais sur des version payantes).

    Cordialement,  


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mercredi 20 janvier 2016 14:36
  • Donc... Je suis bloqué ?

    Sur l'icone de mon application déployée par ClickOnce, sous W10, je ne vois même pas le menu "Activer en mode Administrateur" !

    Cordialement


    Alain

    mercredi 20 janvier 2016 15:06
  • Bonjour, 

    Ce genre d'opérations (accès aux fichiers système) est (pour des raisons de sécurités) forcement plus complexes que de déployer une application standard (ou par le store). Les outils basiques ne fournissent pas les options permettant de déployer une application avec des privilèges supérieurs pour ces raisons (entre autres).

    Je ne sais pas ce que votre application fais dans le dossier System32 mais, si vous ne pouvez absolument pas faire autrement que de lire et d'écrire des fichiers à l’intérieur et que cette application doit être déployée "simplement" avec des propriétés d'élévations de droits, alors là ça risque d'être compliquer sans payer de licence pour des outils de déploiement. 

    Vous pouvez peut être tenter en ajoutant une entrée dans la base de registre du type : 

    REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "C:\temp\compatmodel\iconsext.exe" /t REG_SZ /d "RUNASADMIN" /f

    Vous ne pourrez pas intégrer cette solution avec le déploiement ClickOnce, par contre vous pouvez avec la solution gratuite de InstallShield ajouter des clées de registre. 

    Cordialement, 


    Kevin BEAUGRAND, Modis FRANCE
    Merci de bien vouloir "Marquer comme réponse", les réponses qui ont résolu votre problème.

    mercredi 20 janvier 2016 15:21
  • Merci Kevin pour votre réponse.

    Malheureusement mon appli est déployée avec ClickOnce...

    C'est une application scientifique. Elle doit simplement copier une DLL (que j'ai mise en ressource) dans ce répertoire.

    Cette DLL est une version 64 bits d'un driver (ou d'accès à) d'une application tierce qui n'installe qu'une version 32 bits dans le répertoire SysWOW64.

    Or mon appli, qui utilise ce driver est déployée en Any CPU et donc s'exécute en 64 bits sur un système 64 bits.

    Elle dois alors installer cette DLL dans System32 d'une machine 64 bits.

    Cordialement


    Alain

    mercredi 20 janvier 2016 21:10