2010-06-29 3 views
2

저는 Powershell을 처음 접했습니다. 나는 하나의 스크립트로 결합하고 싶습니다 내가 실행중인 두 가지 스크립트가 있습니다.Powershell 도움말, 프로세스가 존재하면 중지하고, 그렇지 않으면 서비스를 시작 하시겠습니까?

스크립트 1

Stop-Process -ProcessName alcore.* -force 

그것의 목적과 begines 모든 프로세스 종료 1 개 라인이있다 "alcore을."

스크립트 (2)는 1 개 라인뿐만 아니라

Start-Service -displayname crk* 

그것은 CRK로 시작하는 모든 서비스를 시작 있습니다.

어떻게 하나의 스크립트로 결합 할 수 있습니까? 프로세스가 실행중인 경우 중지하고 싶으면 서비스를 시작하고 싶습니다. 이것을 어떻게 할 수 있습니까?

나는이 노력하고있어하지만

내가 제대로이 작업을 수행 할 수있는 방법
$services = Get-Process alcore.* 

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

    Start-Service -displayname crk* 
} 

를 작동하지 않습니다? 또한 함수에서 이것을 마무리하고 함수를 호출해야합니까? 그건 좀 깨끗해 보입니다. 어떤 도움을 주셔서 감사합니다.

건배,
가 ~ CK

답변

6

사용 가져 오기 서비스는 서비스 상태를 얻을 수 있습니다. 프로세스가 실행 중이지만 서비스가 일시 중지되었을 수 있습니다.

$services = @(Get-Service alcore.*) 
foreach ($service in $services) 
{ 
    if ($service.Status -eq 'Running') 
    { 
     $service | Stop-Service 
    } 
    else 
    { 
     Start-Service -DisplayName crk* 
    } 
} 
+0

몇 가지 아이디어를 제공해 주셨습니다. 나는 이런 식으로 끝났다. $ 프로세스 = @ (GPS를 tcore. *) ($ processes.Count이 -gt 0) 경우 { \t 킬 -ProcessName의 tcore. * -force \t \t } 다른 { \t sasv -DisplayName AMS * } 감사합니다. ~ ck – Hcabnettek

관련 문제