Archives de la catégorie ‘Windows 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

Bonjour tout le monde,

Aujourd’hui, j’aimerais partager avec vous une astuce concernant Windows PowerShell.

Lors d’une intervention, la question suivante m’a été posée :

Comment cacher la console Windows PowerShell lors de l’exécution d’un script ?

La réponse est la suivante:

PowerShell.exe -WindowStyle Hidden -File D:\MonScriptPS.ps1

Lancez donc Windows PowerShell (en tant qu’Admin) et saisissez la commande ci-dessus en remplaçant D:\MonScriptPS.ps1 par le chemin de votre Script PowerShell.

Si toutefois vous n’avez pas le contrôle sur la manière dont le script est lancé /appelé, vous pouvez rajouter la ligne de code suivante au début de votre script.

Add-Type -Name win -MemberDefinition ‘[DllImport(« user32.dll »)] public static extern bool ShowWindow(int handle, int state);’ -Namespace native [native.win]::ShowWindow(([System.Diagnostics.Process]::GetCurrentProcess() | Get-Process).MainWindowHandle,0)

Save, Run and Enjoy :).