J’ai été confronté à un soucis dans ma nouvelle entreprise, les machines n’appliquent pas les mises à jour Windows, car les utilisateurs soient ne les éteignent jamais, soient ne redémarre pas quand Windows les informes de nouvelles mises à jour.
Soucis, je ne peux pas forcer l’arrêt des machines le soir, car le service tourne 24/24 7/7 ….
Il faut donc que je sois sur que l’action vient de l’utilisateur, soit qu’il n’y a personne derrière la machine. Malheureusement je ne peux pas non plus passé par un logiciel, car cela est contraire aux règles de sécurité de ma boîte.
Voilà mon script en powershell, il fonctionne uniquement sous des PC sous W10 car il utilise des commandes dispo uniquement sous powershell 5.0.
Il se décompose en deux scripts, le premier script s’inscrit par défaut avec le script d’ouverture de session de l’utilisateur , il ajoute dans le planificateur de tâche de l’utilisateur la demande de redémarrage (en appelant le deuxième script), elle s’exécute chaque vendredi à 23h00.
Le deuxième script fait ceci :
Quand le vendredi arrive, une boîte de dialogue s’ouvre avec un message avec trois possibilités pour l’utilisateur :
Bouton OK = Redémarrage la machine
Bouton annuler = Reporte le script et le relance 60 minutes plus tard (en inscrivant dans le planificateur de tâche une nouvelle tâche dans 60 minutes)
La croix rouge = Fait la même chose que le bouton annuler
Mais si personne ne se trouve derrière la machine ? Et bien le script sans réponse dans les 30minutes redémarre la machine.
Voilà problème résolu :
############################################################################################## # # # Variable a adapté, selon votre environnement # # UNIQUEMENT POUR WINDOWS 10 # # # ##############################################################################################
#Suppresion affichage erreur (Pour les postes en W7) $ErrorActionPreference = "SilentlyContinue"
#Nom de votre tache et description $nomtache = "Mise_a_jour" $descriptiontache = "Redemarre le PC pour application mises à jour"
# Attention modifier unqiuement le chemin partage de type "\\Serveur\...\MAJ.PS1" $cheminscript = '-WindowStyle Hidden -ExecutionPolicy Bypass -File "chemin du deuxième script"'
#Heure et jour d'application de la tache par defaut chaque vendredi à 1h00 (format heure anglais) $Heuredapplication = '01:00AM' $jourdapplication = 'Friday'
############################################################################################## # # # Script ne pas modifier # # # ##############################################################################################
#Suppression de la tache si présente (pour que ce soit toujours l'utilisateur en cour qui l'éxécute) Unregister-ScheduledTask $nomtache -Confirm:$false -ErrorAction SilentlyContinue
############################################################################################## # # # Script demande mise à jour et redemarrage ordinateur par Bastien # # # ##############################################################################################
############################################################################################## # # # Variable a adapté, selon votre environnement # # # ##############################################################################################
#Suppresion affichage erreur (Pour les postes en W7) $ErrorActionPreference = "SilentlyContinue"
#Nom de votre tache $nomtache = "MAJ-rappel"
# Attention modifier unqiuement le chemin partage de type "\\Serveur\...\MAJ.PS1" $cheminscript = '-WindowStyle Hidden -ExecutionPolicy Bypass -File "chemin du deuxième script"'
# Temps d'attente en seconde pour éxécution si aucune action de l'utilisateur par defaut régler à 30 minutes $attente=1800
#Le message afficher ainsi que le nom de la fenetre $messageafficher = "Votre ordinateur à besoin de redemarrer pour l'application des mises à jours de securiter, OK pour redemarrer immediatement ou annuler pour repousser le redemarrage dans une heure, sans actions de votre part dans 30 minutes l'ordinateur redemarrera " $nomfenetre = "Mise à jour"
#Temps avant la re-execution de l'application des mises à jours en minutes $tvr=60
############################################################################################## # # # Script ne pas modifier # # # ##############################################################################################
$prompt = new-object -comobject wscript.shell
$answer = $prompt.popup($messageafficher,$attente,$nomfenetre,1) Unregister-ScheduledTask $nomtache -Confirm:$false -ErrorAction SilentlyContinue if($answer -eq 1) {Restart-Computer -Force} #Clique sur OK donc redemarre immédiatement if($answer -eq -1) {Restart-Computer -Force} #Aucune réponse de l'utilisateur a bout de 1800 secondes redemarre if($answer -eq 2) {$script:MyInvocation.MyCommand.Path #Si l'utilisateur clique sur Annuler ajoute une tache de rappel par le plannificateur de tâche qui s'éxécutera au bout d'une heure $action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $cheminscript $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date).AddMinutes($tvr) Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "MAJ-rappel" -Description "Re-execution dans $tvr minutes" }
Aujourd’hui découverte pour récupérer hyper facilement le token de votre appareil xiaomi (Roborock / Camera / Ampoule etc …) C’est surtout utile pour intégrer votre appareil sur une autre support de domotique style jeedom. Lire la suite…
Salut, tout le monde, j’espère que tout vas bien pour vous ?! Aujourd’hui je vous présente un petit utilitaire trouvé sur github qui va vous permettre de router le son d’une application vers une sortie Lire la suite…
Bonjour à tous et Bonne année ! Aujourd’hui je vous propose un petit logiciel vous permettant d’ajouter des fonds-écrans animés sous Windows grâce à Lively Wallpaper ! Le logiciel est entièrement gratuit et surtout il Lire la suite…