IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Obtenir Droits administrateurs dans compte Vista standard


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Obtenir Droits administrateurs dans compte Vista standard
    Bonjour,

    je souhaiterai pouvoir inscrire une clé de registre dans un compte Standard Vista.

    Pourriez-vous m'indiquer le code svp.
    J'ai recherché sur internet, je n'ai pas trouvé de code fonctionnant.

    Merci

  2. #2
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Bonsoir Danyel
    je suis plutôt novice en la matière, mais je cherche beaucoup, la recherche étant la voie de la sagesse probablement

    je mets ci-dessous, le code que j'utilise pour écrire les clés de registre qui m'intéressent. Ce code fonctionne bien dans un compte admnistrateur, mais pas avec des droits restreints.

    j'ai bien trouvé du code mais trop complexe pour moi.

    Je ne vois pas dans le tuto, que je consulte comme tout le monde, la notion d'élévation des privilèges ?

    Alors je me tourne vers vous, les sages du vb.net.

    Merci pour votre réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Try
     
    '======================================================================================================
    'Vérification si les clés .zod et zod_auto_file existent
    '======================================================================================================
     
     
    Dim RegExtension As RegistryKey
    Dim RegAssocFichier As RegistryKey
     
     
     
    RegExtension = Registry.ClassesRoot.OpenSubKey(".zod", True)
    RegAssocFichier = Registry.ClassesRoot.OpenSubKey("zod_auto_file", False)
     
     
    Dim CheminIcone = My.Application.Info().DirectoryPath()
     
     
     
    CheminIcone = CheminIcone & "\Resources\WinZod.ico"
     
     
     
     
    Dim CléShell As String = Chr(34) & CheminApplication & Chr(34) & " " & Chr(34) & "%1" & Chr(34)
    Dim CléDefaultIcon As String = Chr(34) & CheminIcone & Chr(34) '& " " & Chr(34) & "%1" & Chr(34)
     
     
     
     
    If RegExtension Is Nothing Or RegAssocFichier Is Nothing Then
     
    If RegExtension Is Nothing Then
    RegExtension = Registry.ClassesRoot.CreateSubKey(".zod", RegistryKeyPermissionCheck.ReadWriteSubTree)
    RegExtension.SetValue("", "zod_auto_file")
    End If
     
    If RegAssocFichier Is Nothing Then
     
    RegAssocFichier = Registry.ClassesRoot.CreateSubKey("zod_auto_file\\shell\\open\\command\", RegistryKeyPermissionCheck.ReadWriteSubTree)
    RegAssocFichier.SetValue("", CléShell)
    RegAssocFichier = Registry.ClassesRoot.CreateSubKey("zod_auto_file\\DefaultIcon\", RegistryKeyPermissionCheck.ReadWriteSubTree)
    RegAssocFichier.SetValue("", CléDefaultIcon)
     
     
    End If
     
     
    End If
     
     
    Catch ex As Exception
    MessageBox.Show(ex.Message)
    Me.Dispose()
     
    End Try

  4. #4
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    Une petite recherche sur le forum sur le fichier app.manifest repondra a ta question
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Après lecture
    Bonsoir,

    j'ai beau chercher, mais je ne vois pas le solution.

    lorsque je change le manifest dans propriété du projet, afficher les paramètres de l'UAC, je mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
    mais j'ai une erreur :

    Erreur 1 MSB3190 : ClickOnce ne prend pas en charge le niveau d'exécution de la demande 'requireAdministrator'. WinZod
    alors j'ai dans l'onglet sécurité j'ai décoché :

    Activer les paramètres de sécurité clickonce

    mais l'executable n'écrit toujours pas la clé de registre que je veux dans le compte standard.

    j'ai lu le tuto : Développer des applications sous Windows Vista - partie 1

    la partie sur le manifest,

    je ne trouve pas l'outil MT.exe pour voir dans l'exe si manifest.

    Pouvez-vous me renseigner ?

    cdlt

  6. #6
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    La ligne requireAdministrator du manifest doit, sur les machines n'ayant pas les droits admin, d'afficher la fenetre UAC et de demander confirmation ? l'as tu cette demande ?

    Par contre, je ne connais pas clickonce ... desole
    Mais je pense que cela doit etre une fonction limitee de la version d'essai ..
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut manifest
    bonjour Danyel,

    non UAC n'affiche pas la demande de confirmation.

    j'ai juste un message : l'accès à la clé de registre 'HKEY_CLASSES_ROOT\.zod' n'est pas autorisé (même en ouvrant le programme en tant qu'administrateur).

    ma version de VB.NET et 2008 en version pro (valide et officielle), et clickonce doit permettre de créer le Setup.

    j'ai le sentiment que le manifest ne s'intègre pas au fichier exe. Peut-être que je ne sais pas lier le fichier manifest au fichier exe ?

    Merci de ta réponse.
    cdlt

  8. #8
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    Citation Envoyé par Tchoupi34 Voir le message
    non UAC n'affiche pas la demande de confirmation.
    j'ai juste un message : l'accès à la clé de registre 'HKEY_CLASSES_ROOT\.zod' n'est pas autorisé (même en ouvrant le programme en tant qu'administrateur).
    Ah, si l'acces à la bdr n'est pas autorise meme avec les droits d'admin, c'est que le probleme est autre ...
    Il n'y a aucune restriction à l'acces bdr avec les droits d'admin et l'UAC (que je sache)

    Citation Envoyé par Tchoupi34 Voir le message
    ma version de VB.NET et 2008 en version pro (valide et officielle), et clickonce doit permettre de créer le Setup.
    La majorite des outils externes à vs sont tous limites ou en version light (je crois que c'est le cas de clickonce)

    Citation Envoyé par Tchoupi34 Voir le message
    j'ai le sentiment que le manifest ne s'intègre pas au fichier exe. Peut-être que je ne sais pas lier le fichier manifest au fichier exe ?
    Comme precedemment, je pense que le probleme vient d'ailleurs.

    Donne moi exactement la ligne de code qui pose probleme.
    Ca ne fonctionne pas aussi en debug et/ou en release (sans clickone ?)
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Ligne de code
    ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RegExtension = Registry.ClassesRoot.CreateSubKey(".zod", RegistryKeyPermissionCheck.ReadWriteSubTree)
    j'ai essayé l'exe trouvé dans bin\debug et bin\release

    rien qui fonctionne ?

    cdlt

  10. #10
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    Ce que je ne comprends pas, c'est exactement ce que tu veux faire ?
    Tu veux juste creer dans la bdr ou donner des droits ?
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Inscrire une clé
    Je lors du premier lancement de mon application qu'une clé de registre soit inscrite dans la base de registre.

    La clé s'inscrit bien lorsque je suis en administrateur mais pas lorsque je suis en mode standard. hors je voudrai inscrire cette clé également lorsque le compte utilisateur est en mode standart.

  12. #12
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    Ok, donc si c'est juste pour inscrire dans la bdr, utilise plutot registry.setvalue et .getvalue
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
            ' The name of the key must include a valid root.
            Const userRoot As String = "HKEY_CURRENT_USER"
            Const subkey As String = "RegistrySetValueExample"
            Const keyName As String = userRoot & "\" & subkey
     
            ' Integer values can be stored without specifying the
            ' registry data type, but Long values will be stored
            ' as strings unless you specify the type. Note that
            ' the integer is stored in the default name/value
            ' pair.
            Registry.SetValue(keyName, "", 5280)
            Registry.SetValue(keyName, "TestLong", 12345678901234, _
                RegistryValueKind.QWord)
     
            ' Strings with expandable environment variables are
            ' stored as ordinary strings unless you specify the
            ' data type.
            Registry.SetValue(keyName, "TestExpand", "My path: %path%")
            Registry.SetValue(keyName, "TestExpand2", "My path: %path%", _
                RegistryValueKind.ExpandString)
     
            ' Arrays of strings are stored automatically as 
            ' MultiString. Similarly, arrays of Byte are stored
            ' automatically as Binary.
            Dim strings() As String = {"One", "Two", "Three"}
            Registry.SetValue(keyName, "TestArray", strings)
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  13. #13
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Pour écrire dans HKCR tu aura besoin des droits d'admin. Et si ce n'est qu'au premier lancement de l'appli tu pourrai faire un exe principal en asInvoker et un second exe en requireAdministrator, lancé au premier lancement, et qui ferai cette tâche.

    Ceci dit ce serai plus gracieux d'effectuer cette opération pendant l'installation de l'application, pas au premier lancement (surtout si c'est pour une association de fichier, comme ça a l'air d'être ...).

  14. #14
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut Clé de registre HKCR
    Bonsoir,

    le code fonctionne bien avec une clé : HKEY_CURRENT_USER mais pas avec une clé : HKEY_CLASSES_ROOT

    message erreur :
    accès à la clé de registre KHEY_CLASSES_ROOT\.zod refusé
    Il me faut bien les droits administrateurs, mais mon code ne fait pas d'élévation de privilège ?

    comment puis-je savoir s'il y a bien un manifest dans l'exe que je génére ?

    Cdlt

  15. #15
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Ouvre ton exe avec notepad (retour automatique à la ligne activé) et regarde si à la fin de ton exe tu vois ton manifest.

  16. #16
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut A priori
    Re

    en fait, en publiant l'application avec clickOnce, il n'est pas possible de générer un manifest avec élévation des privilège (ma conclusion).
    en prenant directement l'exe dans debug, la publication doit se fait par "asinvoker"

    En recherchant j'ai vu que l'on pouvait faire un déployement : "Windows Installer" qui permet de faire des déployement avec une confiance totale.

    Connaissez vous un logiciel pour créer ce genre de déployement ? un freeware me plairait.

    cdlt

  17. #17
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    Citation Envoyé par smyley Voir le message
    Ouvre ton exe avec notepad (retour automatique à la ligne activé) et regarde si à la fin de ton exe tu vois ton manifest.
    Merci pour cette info que je ne connaissait pas.

    Sinon, je vais faire des essais pour voir si c'est le HKCR qui pose probleme.
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  18. #18
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par Tchoupi34 Voir le message
    En recherchant j'ai vu que l'on pouvait faire un déployement : "Windows Installer" qui permet de faire des déployement avec une confiance totale.

    Connaissez vous un logiciel pour créer ce genre de déployement ? un freeware me plairait.
    Si tu as VS 2008 Pro, tu devrais avoir accès au projet de déploiement (oui oui, deployment c'est en anglais ) qui permet d'en créer.
    Ou alors tu peux essayer DreamShield (qui est un freeware )

  19. #19
    Membre chevronné Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 679
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 679
    Points : 1 951
    Points
    1 951
    Par défaut
    Bon, je viens de faire une tonne d'essai dont voici les resultats.
    Le programme que j'ai fait ne fais que creer dans la bdr comme ton code et avec les droits admin dans le manifest.

    - Avec compte utilisateur vierge (fraichement crée) et UAC active
    Au lancement de l'application, la fenetre UAC s'ouvre bien et demande le mot de passe administrateur pour executer le programme.
    Une fois ceci, l'ecriture dans le HKCR se fait sans aucun probleme ni avertissement.
    - Avec compte utilisateur vierge (fraichement crée) et UAC desactive
    Lancement impossible de l'application.

    - Avec compte administrateur et UAC active
    Au lancement, la fenetre UAC s'ouvre aussi mais ne demande pas le mot de passe, juste un avertissement quoi.
    Une fois ceci, l'ecriture dans le HKCR se fait sans aucun probleme ni avertissement.
    - Avec compte administrateur et UAC desactive
    Le lancement du programme se fait sans aucune demande.
    Une fois ceci, l'ecriture dans le HKCR se fait sans aucun probleme ni avertissement.

    Donc si tu ne peux pas ecrire dans la bdr et le HKCR, c'est qu'il y a un autre probleme ...
    Que les neurones soient avec toi, jeune padawan.
    Ne pas oublier, qu'un métier, développer être.
    Effectuer des recherches et lire les tutos, avant de poster, tu dois.
    Aucune question technique, faites par MP, tu ne dois.

  20. #20
    Nouveau membre du Club
    Inscrit en
    Septembre 2009
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 51
    Points : 34
    Points
    34
    Par défaut pas de manifest
    Bonsoir,

    en ouvrant l'exe je ne vois pas de balises xml. Il semble donc qu'il y ait pas de manifest.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/04/2010, 15h56
  2. [WS 2003] droit administrateur local pour un compte AD
    Par benkunz dans le forum Windows Serveur
    Réponses: 5
    Dernier message: 19/06/2009, 10h03
  3. Vista UAC - Droits Administrateur
    Par Olphébus dans le forum Visual C++
    Réponses: 2
    Dernier message: 02/03/2009, 20h37
  4. WSUS V2: Gestion des droits administrateurs dans la console
    Par jpc28 dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 03/01/2008, 18h38
  5. Vista - droits administrateurs
    Par LN(a) dans le forum EDI
    Réponses: 3
    Dernier message: 07/08/2007, 17h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo