Extinction automatique des Postes Informatique

De Wiki des Responsables Techniques du 85
(Redirigé depuis Ressources:PSShutdown)
Aller à : navigation, rechercher

Voici un script Windows qui permet en lien avec Active Directory et l'utilitaire PSShutdown de lancer l'extinction des postes par le réseau.

  • Requête sur l'OU ou sont stockés les ordinateurs dans l'AD (récursif)
  • Stockage du résultat dans un fichier texte
  • Nettoyage de ce fichier texte
  • Boucle de requête : Ordre d'extinction, dans 60 secondes avec un message informant l'utilisateur
  • Stockage du résultat des requêtes dans un fichier de log

Pré-requis

  1. L'outil PSShutdown doit être dans le même dossier que le script, ou dans un dossier System de Windows
  2. Le script s’exécute de préférence sur le serveur
  3. Le script se lance par une tache planifiée tous les soirs et mercredi midi

Le petit utilitaire PSShutdown.exe est disponible sur le site SysInternals de Microsoft : Télécharger PSShutdown

Script domain-shutdown.bat - v.0.3 by Gwenael & Alexandre

@ECHO OFF
REM Get all Computers from an OU - Lister les ordinateurs dans une OU precice
dsquery computer "OU=College,DC=STJ,DC=LAN" -o rdn -limit 1000 > machines.txt
REM Remove all quotes - Supprimer les guillemets
for /f "usebackq tokens=*" %%a in ("machines.txt") do echo:%%~a>> machine.txt
REM Loop - Debut de la boucle
for /f %%i in (machine.txt) do (
psshutdown -accepteula -s -t 60 -f -c -m "Attention - Extinction de ce poste dans 60 secondes..." -e u:00:00 \\%%i 1>SDlog.txt 2>&1
)
REM Deletion of computers list - Suppression des liste de postes 
del /f machine.txt
del /f machines.txt

::Decomposition de la date actuelle
set /a J=100%DATE:~0,2% %% 100
set /a M=100%DATE:~3,2% %% 100
set /a A=%DATE:~6,4%

::On garde le format sur 2 chiffres pour le mois

if %M%==1  set M=01
if %M%==2  set M=02
if %M%==3  set M=03
if %M%==4  set M=04
if %M%==5  set M=05
if %M%==6  set M=06
if %M%==7  set M=07
if %M%==8  set M=08
if %M%==9  set M=09

::Et pour le jour

if %J%==1  set J=01
if %J%==2  set J=02
if %J%==3  set J=03
if %J%==4  set J=04
if %J%==5  set J=05
if %J%==6  set J=06
if %J%==7  set J=07
if %J%==8  set J=08
if %J%==9  set J=09

:: On nettoie et renomme le fichier SDlog.txt en Année-Mois-Jour-log.txt
type SDlog.txt | findstr /v If | findstr /v Make | findstr /v Connecting | findstr /v abort | findstr /v PsShutdown | findstr /v Copyright | findstr /v Sysinternals | findstr /v chemin | findstr /v /r /c:"^$" /c:"^[\ \	]*$" >> %A%-%M%-%J%-logs.txt

del /f SDlog.txt