Domanda

Sono abbastanza nuovo a PowerShell. Ho 2 diversi script sono in esecuzione che vorrei coniugare in un unico script.

Script 1 ha 1 riga

Stop-Process -ProcessName alcore.*  -force

Il suo scopo è quello di terminare qualsiasi processo che Begines con "Alcore".

Script 2 ha 1 linea pure

Start-Service -displayname crk*

Si parte qualsiasi servizio che inizia con CRK.

Come posso combinare questi in una sceneggiatura? Se i processi sono in esecuzione desidero fermarli, se non, vorrei avviare i servizi. Come posso fare questo?

sto provando questo, ma non sta funzionando

$services = Get-Process alcore.*

if($services.Count -qe 1){
    Stop-Process -ProcessName alcore.*  -force
} else {

    Start-Service -displayname crk*
}

Come posso fare questo in modo corretto? Inoltre vorrei concludere queste in una funzione e chiamare la funzione? Che sembra un po 'più pulito. Grazie per qualsiasi aiuto.

Saluti,
~ Ck

È stato utile?

Soluzione

utilizzare Get-Service per ottenere lo stato del servizio. Il processo potrebbe essere in esecuzione, ma il servizio potrebbe essere in pausa:

$services = @(Get-Service alcore.*)
foreach ($service in $services)
{
    if ($service.Status -eq 'Running')
    {
        $service | Stop-Service
    }
    else
    {
        Start-Service -DisplayName crk*
    }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top