[Tuto] – Powershell : Listage des machines ayant un évent id spécifié

0
168

Voici un petit script qui va récupérer  les machines de votre parc ayant un évent ID précis et placer le résulta dans un « .csv » . L’on peux y setter plusieurs paramètres comme l’OS , la date de dernière connexion sur les machines, le chemin d’accès du « .csv » et l’id de l’évent recherché.

Ce script nécessite d’avoir les cmdlets « activedirectory » d’installé.

### Script de listage des machines ayant un évent id spécifié #####
    ### Moulherat Romain 27/05/2016 ####


### Récupération des machines à cibler ### 

## Date de la dernière connexion ##
$LastLogonDate = "01/01/2016"

## Nom de l'OS ##

$OS = "*Windows 7*"

## Localisation dans le journal d'évenement ##

$EventType = "system"
 
## Commande de récupération des machines ##
$Computers = Get-ADComputer -Filter * -Properties OperatingSystem,name,LastLogonDate | Where-Object {$_.OperatingSystem -like $OS -and $_.LastLogOnDate -gt $LastLogonDate }

## Chemin d'acces au fichier .csv ###

$path = "C:\Scripts\LogEvent.csv"

foreach ($Machine in $Computers)
{
$CName = $Machine.Name
        ### Test de connexion à la machine ###
	if ( Test-Connection $CName -count 1 -delay 10 -quiet )  
		{
        $test = $null
        
        ### Délai de récupération du journal ### 

        $date = (Get-Date) - (New-TimeSpan -Day 10)

        ### ID de l'évent ###
        $ID= "1058"
        Get-WinEvent -computername $CName -FilterHashTable @{LogName= $EventType; id= $ID ; StartTime= $date} -MaxEvents 1 -ErrorAction Ignore

		### Si erreur il y a alors le log est absent donc la valeur de l'erreur ($?) est "false" ###

        $test=$?	 
        $test
        If ($test -eq "True")
			{
        Write-Host " $ID détecté sur $CName !"
		$CName | Out-file -FilePath $path -encoding ASCII -append 
			}
			else 
			{
		Write-Host " ok pour $CName " 
			}
	    }
	else 
		{
		Write-host -nonewline " $CName non conectées" `n 
		}
}

Une fois les paramètres ajusté en fonction de vos besoins ce scripts met un peu temps à s’exécuter car il teste la connexion sur chacune des machines. Ensuit dans votre « .csv » vous aurez la liste des machines contenant l’évent demandé.

Jérémy Lebon
Fondateur de sys-Advisor.com, Ingénieur de production Informatique dans l'e-commerce mais passionné avant tout, je partage mon quotidien à travers ce site. #sysadmin #microsoft #vmware #tech #geek @sysadvisor Contact Skype Enterprise : jeremy.lebon@sys-advisor.com

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here