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
# Action à exécuter - script MAJ.PS1
$action=New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument $cheminscript -ErrorAction SilentlyContinue
# Planification de la tâche
$trigger=New-ScheduledTaskTrigger -Weekly -WeeksInterval 1 -DaysOfWeek $jourdapplication -At $Heuredapplication -ErrorAction SilentlyContinue
# Enregistrement de la tâche dans le plannificateur de tache avec comme utilisateur l'utilisateur local
Register-ScheduledTask -TaskName $nomtache -Trigger $trigger -Action $action -Description $descriptiontache
Premier script
##############################################################################################
# #
# 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"
}
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…
J’ai trouvé mon bonheur avec VidCutter, c’est un logiciel libre dispo multiplate-forme et surtout gratuit ! L’avantage de VidCutter est que celui-ci ne réencode pas votre vidéo donc l’extraction est super rapide, aucune perte Lire la suite…
J’ai eu un souci avec mon Raspberry, suite à une désinstallation j’ai perdu l’accès réseau bref la misère, et bien sûr aucun backup (sauf pour mon jeedom) la loose ! J’ai dû repartir d’un Raspbian Lire la suite…
Miam Cookie :
Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considérerons que vous acceptez l'utilisation des cookies.J'accepte