Pour simplement lister les services avec un tri sur le nom
Get-Service | select Name, Status, DisplayName | sort-object -property Name
Lien vers le fichier : cliquez ici
Lister les services avec un filtre sur le nom
Get-Service | Where-Object {$_.DisplayName -match "nomrecherche"} | select Name, Status, DisplayName | sort-object -property Name
Lien vers le fichier : cliquez ici
Lister les services avec un filtre sur la description ou le nom.
Attention pour filtrer sur la description il faut passer par WMI. Voici un exemple avec blue pour trouver Bluetooth
get-wmiobject win32_service | where-object {$_.Description -match 'blue' -Or $_.Name -match 'blue'} | Select DisplayName, Name, Description | sort-object -property DisplayName | Format-Table
Lien vers le fichier : cliquez ici
Lister les services sur une machine distante avec un filtre sur le nom
Get-Service -ComputerName NomMachineDistante | Where-Object {$_.DisplayName -match "nomrecherche"} | select Name, Status, DisplayName | sort-object -property Name
Lien vers le fichier : cliquez ici
Lister les services sur une machine distante avec un filtre sur le nom et les services qui sont en running
Get-Service -ComputerName NomMachineDistante | Where-Object {($_.DisplayName -match "nomrecherche") -and ($_.status -eq "Running")} | select Name, Status, DisplayName | sort-object -property Name
Lien vers le fichier : cliquez ici
Lister les services avec une sortie sur interface graphique
Get-Service | select Name, Status, DisplayName | sort-object -property Name | Out-GridView
Lien vers le fichier : cliquez ici
On peut aussi faire appel à WMI. L'avantage c'est qu'on a alors accès au champ Pathname, cad l'emplacement de l'exe du service.
Ici on affiche des infos sur tous les services qui ont le mot 'ser' dans le displayname
Get-WmiObject win32_service | ?{$_.DisplayName -like '*ser*'} | select Name, DisplayName, Pathname, State, StartMode, StartName | Format-Table
Lien vers le fichier : cliquez ici
Pour stopper un service par rapport à son DisplayName
Get-Service | Where-Object {$_.DisplayName -match "nomrecherche"} | Stop-Service -Force
Lien vers le fichier : cliquez ici
Il arrive qu'on n'arrive pas à arrêter un service. Dans ce cas il faut tuer le processus qui est derrière.
La technique ci-dessous c'est dans un premier temps de trouver l'emplacement de l'exe pour ensuite tuer son processus.
Là première étape ici affiche l'emplacement de l'exe puis son processus.
Pour l'exemple ici on cherche netlogon
$MesServices = Get-WmiObject win32_service | ?{$_.DisplayName -like '*netlogon*'} | select Name, DisplayName, Pathname, State, StartMode, StartName
foreach ($UnService in $MesServices){
$MonPath = $UnService.Pathname
$MonPath = $MonPath.substring(0,$MonPath.length -1)
$MonPath = $MonPath.substring(1)
Write-host $MonPath
get-process | select ProcessName, Id, CPU, Path | Where {$_.Path -like "*$MonPath*"} | select ProcessName, Id, CPU, Path
}
Lien vers le fichier : cliquez ici
Si vous êtes satisfait du résultat, le script ci-dessous est le même à part qu'il tue le processus.
Attention ici comme c'est le processus netlogon qui est pris en exemple, vous allez avoir de petits soucis derrière ... donc jouez avec un autre service !
$MesServices = Get-WmiObject win32_service | ?{$_.DisplayName -like '*netlogon*'} | select Name, DisplayName, Pathname, State, StartMode, StartName
foreach ($UnService in $MesServices){
$MonPath = $UnService.Pathname
$MonPath = $MonPath.substring(0,$MonPath.length -1)
$MonPath = $MonPath.substring(1)
Write-host $MonPath
get-process | select ProcessName, Id, CPU, Path | Where {$_.Path -like "*$MonPath*"} | Stop-Process -Force
}
Lien vers le fichier : cliquez ici
Article(s) suivant(s)
Article(s) en relation(s)