Articles Tagués ‘Script PowerShell’

Hello everyone,

Si vous êtes amenés à créer des tâches planifiées pour exécuter des scripts PowerShell (script de check, d’audit, lancement d’opérations spécifiques…), eh bien notez que vous devez d’abord prendre connaissance de certaines informations pour que vos scripts se déclenchent correctement à l’heure schedulée.

Mon besoin

J’ai besoin de surveiller les changements apportés à un groupe AD à « Haut privilèges » tel que le groupe « Admins du domaine ». L’audit de ce groupe se fera via l’utilisation d’un script PowerShell (basé sur les Cmd-Lets du Module PS ActiveDirectory) et l’envoi de notification par mail se fera simplement via l’utilisation d’un serveur SMTP disponible sur le réseau (Cmd-Let Send-MailMessage).

Pour éviter d’investir du $$ dans une solution tierce de monitoring /alerte, j’utiliserais simplement une tâche planifiée qui exécute mon script d’audit AD chaque heure et qui m’envoi des notifications par mail pour rester informé de toute modification ayant eu lieu sur le groupe Domain Admins.

Comment ça marche ?

Dans l’exemple suivant, une tâche planifiée nommée « DA_Check » (Domain Admins_Check) sera créée, celle-ci sera configurée pour déclencher /exécuter de manière quotidienne le script D:\MyScripts\DA_Checker.ps1

Vous lancez le planificateur de tâches et vous créez votre tâche de manière classique

Arrivée à l’étape illustrée dans l’image ci-après, vous sélectionnez « Démarrer un programme »

Remplissez le champ « Programme/script » en respectant la syntaxe suivante : PowerShell -File « Emplacement_de_votre_script_PS »

Dans notre exemple, le script devant être exécuté par la tâche planifiée est placé dans D:\MyScripts\DA_Checker.ps1, la ligne de code à spécifier est donc :

Eh voilà, le tour est joué :).

A bientôt

HK

Publicités

 

S’applique à : Windows Server 2008 /2008 R2, 2012 /2012 R2 et 2016 | Windows Seven, Windows 8/8.1 et Windows 10

La « Tip of the Week » est un HowTo pour afficher la date du dernier redémarrage de Windows (Server & Client).

Ayant travaillé sur plusieurs projets d’Audit Infrastructure (Windows Server, P2T, Active Directory…) ces dernières années, j’ai pu constater que la plupart des serveurs Windows Server présentant des problèmes de stabilités et/ou dysfonctionnement n’ont aucun « redémarrage périodique » de planifié. Si nécessaire, ces serveurs sont donc redémarrés manuellement.

Redémarrer une machine Windows consiste à faire deux clics de souris ou saisir 2 mots depuis le Menu « Démarrer », mais quand il s’agit d’un serveur de production, l’opération devient plus compliquée : négocier, planifier le redémarrage du serveur, astreinte possible, intervention post-redémarrage possible (si effets de bord post-reboot) …

C’est la raison pour laquelle, le redémarrage d’un serveur Windows Server est souvent une tâche oubliée par les IT Admin /Ing de prod allergiques à ce type d’opération et ne voulant pas prendre le risque, résultat : lors de plusieurs audits réalisés chez différents clients (Banques, Assurances, Grand groupes de l’industrie …), j’ai souvent constaté que :

Plusieurs serveurs (quelques dizaines voire des centaines) n’ont pas été redémarrés depuis plusieurs mois voire plusieurs années (côté Banques & Assurances)

Les serveurs « en attente de redémarrage » présentent toujours des problèmes de stabilité au niveau de certains Services /Fonctionnalités Windows /Couches Applicatives spécifiques

Les serveurs qui n’ont pas été redémarrés hébergent pour la plupart des services /applications critiques (Standards & Métiers)

De plus, un Serveur Windows Server en attente de redémarrage (suite à l’installation de mises à jour Windows par exemple) peut bloquer plusieurs actions telle que l’ajout de nouvelles fonctionnalités /Services /Rôles /Apps, bloque l’utilisation de certaines fonctions /options et ce au niveau de plusieurs Snap-ins, il peut également bloquer (dans certains cas) l’accès distant à différents services …

Vous aurez compris, connaître la date du dernier redémarrage d’un serveur est une information précieuse qui peut vous aider à cerner un ou plusieurs problèmes présents celui-ci.

Ci-après, les différentes techniques vous permettant d’afficher la date du dernier reboot de Windows Server et Client.

Vous pouvez connaître la date du dernier redémarrage d’un Windows (Server & Client) via l’utilisation de différents outils /méthodes, à savoir :

Outil WMIC.exe

Windows PowerShell

Outil SystemInfo.exe

Script PowerShell

 

Via l’outil « WMIC.exe »

Utilisez la commande suivante : WMIC OS Get LastBootUpTime

1

Via Windows PowerShell

Utilisez la commande suivante : Get-CimInstance -ClassName Win32_OperatingSystem | Select CSName, LastBootUpTime
2

Via l’outil « SystemInfo.exe »

Utilisez la commande suivante : SystemInfo | Find /i « Heure de démarrage du Système »

Note : pour les OS en EN utilisez plutôt la commande suivante : SystemInfo | Find /i « System Boot Time »

3

Via Script (PS)

Un script PowerShell a été uploadé par « Gary L Jackson« , sur  la TechNet Gallery et disponible en téléchargement ici.

 

J’espère que cette astuce pourra vous être utile J

A bientôt.

ScriptGuyPic