PowerShell aiuto, se è presente processo, fermarlo, altrimenti avviare un servizio?
-
01-10-2019 - |
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
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*
}
}