J'ai fait un script supposé automatiser un certain nombre de tâches répétitives.
Seulement, ce script doit être exécuté avec des droits administrateurs.
J'ai donc créé une section qui permet de lancer mon script via runas en passant directement un mot de passe prérentré.
Seulement je ne sais pas comment killer mon script initial.
Ca s'organise comme ça en gros :
_________________________________________
[If droits_d_administrateur = FALSE Then]
Lancement de runas.exe \mon_script.vbs
avec shell.Run
Activation de runas.exe
avec shell.AppActivate
WScript.Sleep 150 pour attendre un peu
On entre le mot de passe avec
shell.SendKeys Mot_de_passe & "~"
_________________________________________
=> Mon script se lance alors via runas.exe
=> Problème, mon script est lancé 2 fois.
Comment puis-je tuer le premier script ?
J'ai pensé que le plus pratique serait d'ajouter un truc genre
[If droits_d_administrateur = FALSE Then] pour ne lancer le script que s'il n'est pas lancé avec des droits d'administrateur.
Mais comment puis-je savoir avec quels privilèges mon script est lancé ?
Private Declare Function IsNTAdmin Lib "advpack.dll" (ByVal dwReserved As Long,
ByRef lpdwReserved As Long) As Long
boolAdmin = CBool(IsNTAdmin(ByVal
0&, ByVal 0&))