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

Était-ce utile?

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*
    }
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top