none
[VbScript] Windows10 & Logoff Scripts RRS feed

  • Question

  • Bonjour,

    J'ai un script vbscript qui s'execute lors de la déconnexion de session. Celui-ci est mis en place via gpedit.msc

    Ce script s'execute sans aucun pb sur des machines Windows7 mais rien sous Windows 10

    J'ai testé le script manuellement sous Windows 10 il fonctionne parfaitement.

    Si après plusieurs connexion/deconnexion de session je lance un gpresult pour vérifier si ma gpo utilisateur est ok il me signale que le script est bien renseigné au niveau du logoff de la session mais que celui-ci n'a jamais été déclenché...
    J'ai vérifié le chemin d'accès il est ok.

    Si je remplace par un script de type batch (.cmd) celui-ci est executé

    Sauriez-vous s'il existe des restrictions de script executable lors de la déconnexion d'une session Windows 10?

    Si vous aviez une piste de recherche.
    Merci

    samedi 7 juillet 2018 12:24

Réponses

  • 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

    lundi 23 juillet 2018 07:10