Powershell aide, si existe processus, arrêtez, commencer un autre service?
-
01-10-2019 - |
Question
Je suis assez nouveau pour Powershell. J'ai 2 scripts différents, je suis en cours d'exécution que je voudrais combiner en un seul script.
Script 1 a 1 ligne
Stop-Process -ProcessName alcore.* -force
Il a pour objectif de mettre fin à tout processus qui Begines avec « Alcore. »
Script 2 comporte une ligne ainsi
Start-Service -displayname crk*
Il commence tout service qui commence par CRK.
Comment puis-je combiner en un seul script? Si les processus sont en cours d'exécution, je veux les arrêter, sinon, je souhaite démarrer les services. Comment puis-je y arriver?
J'essaie cela, mais il ne fonctionne pas
$services = Get-Process alcore.*
if($services.Count -qe 1){
Stop-Process -ProcessName alcore.* -force
} else {
Start-Service -displayname crk*
}
Comment puis-je faire cela correctement? dois-je envelopper également dans une fonction et appeler la fonction? Cela semble un peu plus propre. Merci pour toute aide.
Cheers,
~ Ck
La solution
Utilisez Get-Service pour obtenir le statut de service. Le processus pourrait être en cours d'exécution, mais le service peut être mis en pause:
$services = @(Get-Service alcore.*)
foreach ($service in $services)
{
if ($service.Status -eq 'Running')
{
$service | Stop-Service
}
else
{
Start-Service -DisplayName crk*
}
}