Commande Powershell pour récupérer une liste de processus
Il faut bien commencer à un moment, et bien voilà !
Powershell est un langage de programmation tout droit sorti des cerveaux des ingés de Microsoft.
J’ai longtemps été rebuté par tout l’aspect programmation de l’informatique mais je dois bien avouer que grâce à notamment Powershell les possibilités de surveillances, d’audit ou de d’administration sont décuplées ….
Par exemple ci-après un petit script qui permet de récupérer une liste de processus, de trier les plus gourmands en temps CPU puis de les envoyer par mail via un login et utilisateur authentifié.
$fichier = "D:powershellProcess.txt"
Get-Process | Sort-Object CPU -Descending > $fichier
$expediteur = "[email protected]"
$destinataire = "[email protected]"
$serveur = "smtp.domaine.tld"
$objet = "Liste processus " + [System.DateTime]::Now
$liste = Get-Content $fichier | select -First 10
$texte = "Les 10 principaux processus utilisés" + ($liste | out-string)
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte
$attachment = new-object System.Net.Mail.Attachment $fichier
$message.Attachments.Add($attachment)
$SMTPclient = new-object System.Net.Mail.SmtpClient $serveur
$SMTPAuthUsername = "ADusername"
$SMTPAuthPassword = "motdepasse"
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential($SMTPAuthUsername, $SMTPAuthPassword)
$SMTPclient.Send($message)
$attachment.Dispose()
Ce script va créer un fichier au path donné dans la variable $fichier (modifiable). Dans ce fichier il va enregistrer tout les processus qui tournent actuellement et les trier par temps CPU. Puis va vous envoyer un joli mail (envoyé par le compte spécifié) avec comme pièce jointe le fichier précédemment crée et comme corps du message les 10 premiers processus.
Bon ce script est surement pas très bien écrit mais cela peut vous donner des idées…
Commentaires récents