[R] Lancer un script en tant qu'admin sans RequireAdmin

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#21

Message par Utilisateur 4989 supprimé »

Je viens de tester tes codes. J'ai d'abord fais ça :

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\" ,"ConsentPromptBehaviorAdmin","REG_DWORD","0")
puis ça :

Code : Tout sélectionner

RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrives", "REG_DWORD", 0x00100010)
Ça a bien ajouter la première clef, mais pas la seconde.
Avatar du membre
Uranium
Niveau 5
Niveau 5
Messages : 143
Enregistré le : mer. 28 mars 2012 13:13
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#22

Message par Uranium »

Normal tu n'as pas lu ce que j'ai copier-coller :twisted:

Cette ligne de code "désactive" le prompt de l'UAC qui demande les droits administrateurs.
Essaye de lancer le regedit normalement , un prompt apparait ( normalement ) puis lance ce code et le prompt 'apparaitra plus ( une fois seulement , la première pour avoir les privilèges de le désactiver )
#RequireAdmin

MsgBox(0,"",IsAdmin())
RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\" ,"ConsentPromptBehaviorAdmin","REG_DWORD","0")
RunWait(@WindowsDir & "\regedit.exe", @WindowsDir, @SW_MAXIMIZE)
« En mathématiques, “évident” est le mot le plus dangereux. »
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#23

Message par Utilisateur 4989 supprimé »

Bien sûr que j'ai lu ce que t'as écrit, mais j'avais pas compris.
Là maintenant j'ai compris.

Et si j'utilise :

Code : Tout sélectionner

RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\" ,"EnableLUA","REG_DWORD","0")
le "Contrôle de compte d'utilisateur" n'apparaîtra plus jamais ? Si j'ai bien compris.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#24

Message par ani »

Salut vla,
Pour l'uac teste et relis bien ce qu'il est noté plus haut ;)
pour la deuxième clé NoDrives (cacher le lecteur), tu veux cacher quel lecteur ?

voir ici pour plus d'info : http://technet.microsoft.com/en-us/libr ... 38267.aspx

on peut donner la valeur hexadecimal ou décimal
lecteur Hexadécimal Decimal
...A.........0x1.................1
...B.........0x2.................2
...C.........0x4.................4
...D.........0x8.................8
...E.........0x10...............16
...F.........0x20...............32
Tous.......0x03FFFFFF......67108863
Aucun.....0x0..................0

la valeur hex = 0x00100010 correspond al valeur décimal = 1048592
~> 1048576 (lettre U) il reste 16 (lettre E)

Teste avec cette valeur 0x100010 ou avec cette valeur 1048592 (à mettre entre guillemet)

Il faut un redemarre me semble.
bonne continuation ;)
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#25

Message par Utilisateur 4989 supprimé »

Je veux cacher les lettres U et E. Pourquoi changer la valeur, ça marche très bien : U et E sont bien cachés et quand je tape U:\ et E:\ je peux y accéder. C'est exactement ce que je veux.
Le problème c'est juste pour ajouter cette clef dans regedit.
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#26

Message par ani »

Ok, peut-être parce que tu regarde dans HKL(ocal)M(achine) au lieu de HKC(urrent)U(ser), Non ?
Nodrives en LocalMachine (meme l'admin ne voit pas les disques)
et pour CurrentUser(seul l'utilisateur ne verra pas les disque, sauf si il se trouve dans le groupe admin)

Sinon la on ne voit pas ;)
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#27

Message par jguinch »

Petit rappel pour vla qui utilise un Windows 64 bits :
Quand on fait un regwrite dans HKEY_LOCAL_MACHINE\SOFTWARE en 32 bits, on écrit dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#28

Message par Utilisateur 4989 supprimé »

ani : je regardais bien dans HKCU, et il n'y a pas le clef.
Actuellement, je n'ai qu'une seule session dans mon ordi. U et E sont donc cachés qu'on soit admin ou pas, ce qui me convient. Mon ordi peut à tout moment être utiliser par d'autres personnes, et j'ai des données personnelles dans ces lecteurs. Les autres personnes ne connaissant pas l'existence de ces lecteurs et leurs lettres affectées, cette solution me convient parfaitement.

jguinchard : donc c'est ça qu'il faut faire :

Code : Tout sélectionner

cmd("REG ADD HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Policies\Explorer /V NoDrives /T REG_DWORD /D 0x00100010", "NOM_UTILISATEUR", "MOT_DE_PASSE")
Func cmd($cmd,$compte,$mdp)
     RunAsWait($compte,"",$mdp,0,@ComSpec & " /c " & $cmd,"",@SW_HIDE)
EndFunc
?
Parce que ça n'a pas mieux marché.
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#29

Message par Utilisateur 4989 supprimé »

Pas d'idée ?
Lhil
Niveau 1
Niveau 1
Messages : 1
Enregistré le : lun. 17 juin 2013 19:41
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#30

Message par Lhil »

Bonjour ,
vla a écrit :Bonjour,
je souhaiterai que mon script se lance en tant qu'administrateur car il ajoute une clef dans regedit. Il faut donc être administrateur pour le faire.
Je sais qu'une solution existe : #RequireAdmin. Le problème c'est que dès que je lance mon script, la fenêtre "Contrôle de compte d'utilisateur" apparaît à chaque fois même quand le If n'est pas vrai, et ça devient très vite pénible. Voilà mon code
[...]
Comment faire pour lancer un script en tant qu'administrateur sans #RequireAdmin ?
Je précise que je suis administrateur de mon ordi et que je ne souhaite pas réduire les paramètres du "Contrôle de compte d'utilisateur", par mesure de sécurité.
j'ai un petit doute dans la compréhension de votre problème notamment en ce qui concerne l'apparition de la fenêtre "Contrôle de compte d'Utilisateur". Souhaitez-vous qu'elle n'apparaisse que si nécessaire (pour l'opération à effectuer en Admin) mais pas pour le reste du script ou qu'elle n'apparaisse pas du tout ?

Pour le premier cas, ayant été confronté à un problème qui me semble très proche (Script par défaut qui n'a pas besoin des droits admin mais dont certaines fonctions nécessitaient de passer en admin) je l'ai contourné avec le code suivant (ici grossièrement résumé et plus ou moins adapté à votre cas):

Code : Tout sélectionner

if $CmdLineRaw = "/AsAdmin" Then
    f1()
Else
    check()
EndIf

Func check()
    If Not RegRead("HKEY_CURRENT_USER\XXXXXXXXXXXX", "XXXX") <> "" Then
        MsgBox(0,"check","Je me relance en admin")
        ShellExecute(@ScriptName,"/AsAdmin",@ScriptDir,"runas")
    EndIf
EndFunc

Func f1()
     MsgBox(0, "f1", "Admin ?: " & IsAdmin())
;~  RegWrite("HKEY_CURRENT_USER\XXXXXXXXXXXX", "XXXX", "REG_DWORD", "XXXXX")
;~  Sleep(1000)
;~  ProcessClose("explorer.exe")
;~  ProcessWaitClose("explorer.exe")
;~  Run("explorer.exe")
     Exit
EndFunc
 
(Code principal de votre fonction volontairement dé-commenté pour les tests)

la fenêtre "Contrôle de compte d'Utilisateur" apparaitra quand même mais uniquement pour exécuter f1() .

J'ai peut-être mal compris ce que vous cherchiez à faire mais dans le doute...

À noter que la présence du @ScriptName peut être est pénible pour l'utilisation de l'exécution à la volée du script (F5). Donc passer par la compilation puis exécution manuelle du script.
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#31

Message par Utilisateur 4989 supprimé »

Lhil a écrit :Souhaitez-vous qu'elle n'apparaisse que si nécessaire (pour l'opération à effectuer en Admin) mais pas pour le reste du script ou qu'elle n'apparaisse pas du tout ?
Merci pour ton code, mais je souhaiterai que ça n'apparaisse pas du tout.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#32

Message par TopXm »

Hello :)
vla a écrit :Merci pour ton code, mais je souhaiterai que ça n'apparaisse pas du tout.
Il y a aussi une solution un peu tordue pour éviter le prompt de l'UAC, ça consiste à lancer l'EXE via une tâche planifiée en indiquant
qu'on lance l'EXE avec les autorisations maximales
► Afficher le texteCapture du Scheduler
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#33

Message par Utilisateur 4989 supprimé »

Merci beaucoup TopXm, ça marche super bien.
J'ai donc réduit le code de Lhil a ça :

Code : Tout sélectionner

RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrives", "REG_DWORD", 0x00100010)
Sleep(1000)
ProcessClose("explorer.exe")
ProcessWaitClose("explorer.exe")
Run("OpenOffice.exe")
Il n'y a plus besoin de mettre les droits d'administrateurs puisqu'en cochant la croix dans la planification des tâches, ça donne les droits. La clef se rajoute bien dans regedit.
Le seul bémol, quand le code arrête le processus explorer et le redémarre, le code qui suit ne marche plus : tout ce qui est avant le code mis dans ce message marche, mais tout ce qui est après ne marche pas, il arrête de s'exécuter.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#34

Message par TopXm »

Hello :)

Essaies un truc, car je sais que j'avais eu le souci avec un EXE en Tray à lancer au boot, en fait je n'avais pas l'icône dans le Systray alors pourtant qu'il s'exécutait.

en fait c'était tout bête, la tâche planifiée se lançait avant l'explorer ...

Du coup ça se trouve explorer.exe ne tourne pas et tu n'auras peut-être pas à le stopper / démarrer.

Bon je ne te le promet pas hein, mais ça se tente ;)

EDIT : A tenter aussi de lancer OpenOffice avec le chemin complet
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#35

Message par Utilisateur 4989 supprimé »

J'ai mis de lancer le script à l'ouverture de session sans :

Code : Tout sélectionner

RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrives", "REG_DWORD", 0x00100010)
Sleep(1000)
ProcessClose("explorer.exe")
ProcessWaitClose("explorer.exe")
Run("OpenOffice.exe")
mais avec :

Code : Tout sélectionner

RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrives", "REG_DWORD", 0x00100010)
La clef s'est bien ajouté mais le menu démarrer ne marchait plus : impossible de cliquer sur quoi que ce soit. J'ai redémarré l'ordi par le gestionnaire des tâches puis quand je suis rentré dans ma session, j'ai fermé le script dès son lancement et le problème a disparu.
Modifié en dernier par Utilisateur 4989 supprimé le sam. 22 juin 2013 11:49, modifié 1 fois.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#36

Message par TopXm »

Re :)
vla a écrit : J'ai redémarré l'ordi puis fermer le script dès son lancement et le problème a disparu
Donc problème résolu ? Si Oui pense à éditer le titre du 1er message en y ajoutant le [R] de résolu ;)
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#37

Message par Utilisateur 4989 supprimé »

Le problème du menu démarrer a disparu, mais d'avoir fermé le script la clef ne s'est pas ajouté.
Avatar du membre
TopXm
Niveau 6
Niveau 6
Messages : 260
Enregistré le : mer. 25 mai 2011 16:37
Localisation : Usa
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#38

Message par TopXm »

Désolé je ne pige pas trop, quand je code le RegWrite ça fonctionne sans problème.

Après que tu ne puisses plus cliquer nul part c'est normal tu ne relances pas explorer.exe

Si tu essais ceci ça ne modifie pas la clé ?
► Afficher le texteTest
Pis je capte pas non plus ton ProcessClose + ProcessWaitClose. Le second devrait suffire ;)
Utilisateur 4989 supprimé
Status : Hors ligne

Re: [..] Lancer un script en tant qu'admin sans RequireAdmin

#39

Message par Utilisateur 4989 supprimé »

Ton fichier m'a donné ceci :

Code : Tout sélectionner

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer = 
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer =
Pas besoin de relancer explorer, je ne l'arrête plus. Je créé un script avec uniquement cette ligne :

Code : Tout sélectionner

RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer", "NoDrives", "REG_DWORD", 0x00100010)
qui se lance à l'ouverture de session grâce au planificateur des tâches, avant qu'explorer se lance.
Et ça marche, la clef est présente dans regedit.
Puis je lance mon script, et tout fonctionne correctement.

Merci pour ton aide.
Sujet résolu.
Répondre