2016-06-16 2 views
1

내 Process.Start를() 구현에 작동하지 않는 것은 윈도우 2012 R2Process.Start를()는 윈도우 2012 R2

작동하지 않습니다 내 Windows 2012 서버에 Windows 서비스를 배포했습니다. Windows 서비스에서 Process.Start (fileName)를 사용하여 하나의 일괄 처리 (.bat) 파일을 호출하려고합니다.

실행중인 서비스에서 배치 파일을 호출 할 수 없습니다.

나는 NoInteractiveServices 같은 변화가 0으로 설정하고 모든 파일 차단을 해제 ..하지만 운 ..

사람이 다른 솔루션이 없습니다 만든 ??

Private Function RunTask(ByVal sPath As String, ByVal sArgs As String, ByVal fLog As Boolean) As Boolean 
    Dim targetProcess As Process 

    Try 
      targetProcess = Process.Start(sPath, sArgs) 
    Catch ex As Exception 
      WriteToLog("Can not start process '" + sPath + "' - " + ex.Message) 
     Return False 
     End Try 

     If fLog = True Then 
     WriteToLog("Started process '" + sPath + "' with args '" + sArgs + "'") 
     End If 

     Return True 
End Function 

이 배치 파일을 호출 한 후 코드 아래 코드를 계속 2012 서버 ... Process.Start를 (박쥐 파일 이름) 창에

--> net stop "Exstream Monitor" 

답변

2

배치 Windows 서비스.

  1. 서비스 프로세스에 해당 파일에 대한 액세스 권한이 있습니까?
  2. CreateNoWindow의 속성은 trueUseShellExecutefalse으로 설정되어 있습니까?
  3. 서비스 코드가 모든 예외를 캡처하고 해당 정보를 로그 또는 시스템 이벤트로 보내고 있습니까?
  4. 이 코드는 GUI 팝업이나 GUI 관련 작업을 피할 수 있습니까?
  5. 박쥐 파일을 손으로 돌릴 수 있고 제대로 작동합니까?
+0

예 .. 변경했으나 작동하지 않았습니다 –

+0

@harshalsuryavanshi 및 서비스 프로세스에 해당 디렉토리/파일에 대한 액세스 권한이 있습니까? – OmegaMan

+0

예. 서비스 계정은 & c : \ windows \ temp 디렉토리에서 전체 액세스 권한을가집니다. –

1
  1. NoInteractiveServices 0

  2. 서비스 계정을 포함하여, 서비스로서 일괄로 로그온 허용 원격 액세스를 허용 설정.

  3. 제공하는 전체 C에 대한 접근 : \ WINDOWS \ 디렉토리에 대한 전체 액세스 권한을 제공 온도

  4. /파일

하고 서버를 재부팅하고이 문제를 해결합니다.

여러분의 도움과 빠른 답변을 주셔서 감사합니다. 고마워요

관련 문제