Bonjour à tous,
J'ai résolu ma problématique, voici le bout de code qui posait pb:
Set objShell = CreateObject("Shell.Application")
Dim objWMIService, objItem_OS, colItems_OS
strComputer = "."
On Error Resume Next
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2" )
Set colItems_OS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem_OS in colItems_OS
if (left(objItem_OS.Version,3)) = "10." then
OS="WIN10"
end if
next
if wscript.Arguments.length=0 and OS="WIN10" then
Set objShell = CreateObject("Shell.Application")
ObjShell.ShellExecute "wscript.exe", chr(34) & Wscript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
else
'code...
end if
Rappel de la problématique:
- Ce petit bout de prg est lancé lors de lors de l'extinction de la machine et fait une élévation de droits pour s'exécuter si la machine est un Win10
- Si j'exécute manuellement ce script (sans extinction/deconnexion) ==> aucun pb
- Si je le lance lors du Shutdown il ne s'exécute pas
Explication du script:
- si la machine est un win10 et que le script est exécuté sans argument alors je relance le script en mode élévation de droits
(ObjShell.ShellExecute "wscript.exe", chr(34) & Wscript.ScriptFullName & Chr(34) & " uac", "", "runas", 1)
La cause de l'erreur est la commande
Set objWMIService = GetObject("winmgmts:" & "!\\" & strComputer & "\root\cimv2" ) et plus particulièrement le paramètre StrComputer qui est accepté lors du premier lancement
du script mais génére une erreur lors du second lancement (en mode élévation de droits) et uniquement lors d'un shutdown/logoff/...
Pourquoi je n'en sais rien, il n'accepte pas dans ma commande(lors de la seconde execution du script) que strComputer prenne la valeur "."
Si j'utilise la commande:
Set objWMIService = GetObject("winmgmts:" & "!\\" & "\root\cimv2" ) plus de souci
Voilà je n'ai pas d'explication du pourquoi de la génération de cette erreur uniquement lors d'un shutdown/logoff, mais ma problématique est solutionnée.
Bonne journée à tous