Avec l'introduction du contrôle de compte d'utilisateur (UAC) dans Windows Vista, vous ouvrez généralement une invite de commande élevée afin d'exécuter des fichiers de commandes et des scripts qui nécessitent des privilèges administratifs. Les applications peuvent utiliser des fichiers manifestes (à l'aide de l'indicateur RequireAdministrator ) pour s'exécuter automatiquement avec élévation de privilèges .
Pour les scripts, cet article vous propose quelques astuces intéressantes à l'aide desquelles vous pouvez automatiquement élever en utilisant le paramètre «runas» ShellExecute.
( Voir également Comment élever automatiquement un fichier batch pour l'exécuter en tant qu'administrateur? Pour une autre méthode d'élévation automatique.)
Lancer un Vbscript élevé
Merci à Jim Barry de m'avoir informé de l'utilisation de l'argument runas dans la méthode ShellExecute de l'objet Shell.Application. En utilisant les suggestions de Jim, mon script original a été condensé en grande partie. Utilisez l'une de ces méthodes pour exécuter des scripts VBS élevés.
Méthode 1
Voici un exemple de script qui se relance en tant qu'administrateur (élevé) à l'aide du paramètre runas, si le script ne contient aucun argument de ligne de commande. Lorsque vous relancez le script en tant qu'administrateur, passez simplement un faux argument afin que le script ne s'exécute pas dans une boucle cyclique.
Si WScript.Arguments.length = 0 Then Set objShell = CreateObject ("Shell.Application") 'Passez un faux argument, dites [uac] objShell.ShellExecute "wscript.exe", Chr (34) & _ WScript.ScriptFullName & Chr (34) & "uac", "", "runas", 1 Else 'Ajoutez votre code ici Fin Si
Méthode 2
Cette méthode utilise un script de lancement qui exécute le VBScript principal élevé à l'aide du verbe runas .
Set objShell = CreateObject("Shell.Application") Set FSO = CreateObject("Scripting.FileSystemObject") strPath = FSO.GetParentFolderName (WScript.ScriptFullName) If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1 Else MsgBox "Script file MAIN.VBS not found" End If
Vous verrez la boîte de dialogue d'élévation UAC.
Une fois que l'utilisateur clique sur Continuer pour approuver, le script principal est lancé en tant qu'administrateur.
CONNEXES: Comment élever automatiquement un fichier batch pour l'exécuter en tant qu'administrateur?