Pour les besoins d'un logiciel fourni par un éditeur, j'ai dû mettre en place, sur un serveur 2012 R2, un script d'ouverture de session afin de fixer des clés registres dans la ruche utilisateur (HKCU). Ce n'est pas une technique que j'affectionne particulièrement, mais parfois, on n'a guère le choix. J'ai donc écrit un petit script en Powershell. Mais, je me suis heurté à un problème de taille : le script d'ouverture de session ne s'exécute pas... Aie ! Lancé à la main, le script fonctionne sans problème, mais impossible de le lancer à l'ouverture de session. Bien évidemment, j'ai vérifié que les scripts PowerShell pouvaient être exécutes. Bon, en désespoir de cause, je me suis lancé dans un script .bat qui fusionne un fichier .reg dans le registre Windows. Mais là, pareil, impossible d'avoir une exécution de script à l'ouverture de session. Je me suis donc mis à rechercher sur le net la cause de ce "problème" et le moyen d'y remédier.
Un délai pour l’exécution des scripts d'ouverture de session
Lors de mes recherches, je suis tombé sur un site en anglais, où un utilisateur racontait qu'il avait eu le même problème que moi. Dans son billet, il était expliqué qu'à partir de Server 2012, Microsoft avait instauré par défaut un délai pour l'exécution des scripts à l'ouverture de session de 5 minutes. Oui 5 minutes ! Rien que cela. Du coup, j'ai compris pourquoi mes scripts ne s'exécutaient pas. J'attendais toujours une ou deux minutes, mais après, je pensais que c'était mort...
Ok, c'est pas nouveau, c'est une technique que je n'utilise pas souvent, sauf si c'est vraiment nécessaire.
Bon, il y a un délai pour l'exécution des scripts à l'ouverture de session, OK. Mais voyons maintenant comment modifier cela.
Modification du délai d'exécution des scripts d'ouverture de session
Le délai d'exécution des scripts d'ouverture de session peut être modifié via les stratégies. Ici, je ne vais modifier que les stratégies locales, puisque je n'ai pas besoin (ni l'envie) de propager ce réglage sur d'autres machines. Si vous êtes dans le même cas, suivez donc cette procédure :
Rendez vous dans l'éditeur de stratégies locales. Pour cela, appuyez sur la touche Windows, saisissez gpedit.msc et faites Entrée.
Une fois la fenêtre gpedit ouverte, rendez-vous dans :
Computer Configuration/Administrative Templates/System/Group Policy
ou si votre serveur est en français :
Configuration Ordinateur / Modèles d'administration / Système / Stratégie de groupe
Localisez le stratégie intitulée Configurer le délai des scripts d'ouverture de session (Configure Logon Script Delay).
Double cliquez dessus et passez la sur Activé. Réglez ensuite le temps à 0. Validez et voilà. Le délai d'exécution sera supprimé. Vous pourrez à nouveau exécuter vos scripts à l'ouverture de session, sans attendre 5 minutes.
Cette manipulation est valable à partir de Windows Server 2012 R2 et Windows 8.1 pour les stations de travail.
Partager la publication "Windows 2012 : les scripts d'ouverture de session ne se lancent pas"