Création script
This commit is contained in:
parent
abe380f22a
commit
fa4e1d68fc
|
@ -1,7 +1,7 @@
|
|||
#Script créé par Nicolas Lang - Sous licence CC-BY-SA
|
||||
#https://nicolaslang.fr
|
||||
|
||||
$debugging = $false #a mettre sur truepour avoir des infos sur la zone de code qui crée l'enregistrement
|
||||
$debugging = $false #a mettre sur true pour avoir des infos sur la zone de code qui crée l'enregistrement
|
||||
$date = Get-Date -Format "dd/MM/yyyy HH:mm:ss"
|
||||
set-location $([Environment]::GetFolderPath("Mydocuments")) #se place dans le repertoire "mes documents" de l'utilisateur actuel
|
||||
try
|
||||
|
|
|
@ -0,0 +1,83 @@
|
|||
#Script créé par Nicolas Lang - Sous licence CC-BY-SA
|
||||
#https://nicolaslang.fr
|
||||
|
||||
|
||||
#déplacement dans le repertoires "mes documents" de l'utilisateur actuel
|
||||
Set-Location $([Environment]::GetFolderPath("Mydocuments"))
|
||||
#import du module activedirectory
|
||||
ipmo activedirectory
|
||||
#nous récupérons la liste des ordinateurs du domaine, en prenant également la dernière ouverture de session
|
||||
$ordinateurs = Get-ADComputer -Filter * -Properties lastlogondate | Select-Object -Property name,lastlogondate
|
||||
#nous filtrons à 4 mois en arrière
|
||||
$ordinateurs = $ordinateurs | Where-Object {$_.lastlogondate -gt $((Get-Date).addmonths(-4))}
|
||||
#creation d'un tableau
|
||||
$tableau = New-Object System.Collections.ArrayList
|
||||
$progress = 0
|
||||
foreach ($ordinateur in $ordinateurs)
|
||||
{
|
||||
|
||||
$progress++
|
||||
Write-Progress -Activity "Recherche d'écrans sur $($ordinateur.name) " -PercentComplete $($progress/$($ordinateurs.Count)*100) -Status "$progress / $($ordinateurs.count)"
|
||||
$objet = New-Object Psobject
|
||||
$objet |Add-Member -MemberType NoteProperty -Name "Ordinateur" -Value $ordinateur.name
|
||||
$ping = $null
|
||||
#nous pingons le poste.
|
||||
$ping = Test-Connection -ComputerName $ordinateur.name -Count 1
|
||||
#Si le TTL du poste est entre 65 et 128, c'est un poste windows. Nous continuons donc le script
|
||||
if ($ping -and $ping.responsetimetolive -gt 64 -and $ping.responsetimetolive -le 128)
|
||||
{
|
||||
$objet |Add-Member -MemberType NoteProperty -Name "Répond au ping" -Value "Oui"
|
||||
$moniteurs = $null
|
||||
|
||||
$moniteurs = $null
|
||||
#on lance la requete WMI
|
||||
$moniteurs = Get-WmiObject -Namespace root\wmi -Class wmiMonitorID -ComputerName $($ordinateur.name)
|
||||
#Si le resultat de la commande precedente est une erreur, alors...
|
||||
if (!$?)
|
||||
|
||||
{
|
||||
Write-Host "Erreur!"
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "WMI" -Value "ERREUR!!"
|
||||
}
|
||||
#Sinon...
|
||||
else
|
||||
{
|
||||
Write-Host "Aucune erreur"
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "WMI" -Value ""
|
||||
}
|
||||
$i=0
|
||||
foreach ($moniteur in $moniteurs)
|
||||
{
|
||||
$i++
|
||||
#Le modele est la deuxième valeur de la propriété instancename.
|
||||
$modele = $moniteur.instancename.split("\")[1]
|
||||
$sn = $null
|
||||
#Récupération du SN puis ajout dans l'objet
|
||||
$moniteur.serialnumberid | % {$sn += [char]$_}
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "Modèle ecran $i" -Value $modele
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "SN ecran $i" -Value $sn
|
||||
|
||||
}
|
||||
$i++
|
||||
for($i; $i -le 3;$i++)
|
||||
{
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "Modèle ecran $i" -Value ""
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "SN ecran $i" -Value ""
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
#si le ttl est inférieur ou égal à 64, c'est un non windows
|
||||
elseif ($ping.responsetimetolive -ne $null -and $ping.responsetimetolive -le 64)
|
||||
{
|
||||
$objet |Add-Member -MemberType NoteProperty -Name "Répond au ping" -Value "Non Windows"
|
||||
}
|
||||
else
|
||||
{
|
||||
$objet | Add-Member -MemberType NoteProperty -Name "Répond au ping" -Value "Non"
|
||||
}
|
||||
$null = $tableau.add($objet)
|
||||
|
||||
}
|
||||
$tableau | Export-Clixml -Path "ecrans.xml"
|
||||
$tableau | Export-Csv -Path "ecrans.csv" -NoTypeInformation -Encoding UTF8 -Force -Delimiter ";"
|
Loading…
Reference in New Issue
Block a user