2009-05-21 9 views
0

vb.net 2008에서 다른 컴퓨터에있는 배치 파일을 실행하고 싶습니다. 오류는 없지만 아무 일도 발생하지 않습니다.VB.NET을 사용하여 다른 컴퓨터에서 배치 파일을 실행하려면 어떻게해야합니까?

Dim pStart As New System.Diagnostics.Process 
Dim startInfo As New System.Diagnostics.ProcessStartInfo(serverpath & "\file.bat") 
startInfo.RedirectStandardOutput = True 
startInfo.WindowStyle = ProcessWindowStyle.Hidden 
startInfo.UseShellExecute = False 
pStart = System.Diagnostics.Process.Start(startInfo) 
pStart.WaitForExit() 
pStart.Close() 
+1

작동하지 않는 코드를 게시하십시오. –

+1

또한 배치 파일 게시를 고려해야합니다. –

+1

게시물을 편집하고 다음 질문에 답하십시오. 배치는 무엇을합니까? 작동하지 않는다는 것을 어떻게 알 수 있습니까? 로컬 드라이브에서 실행하면 일괄 처리가 실행됩니까? –

답변

1

원격 컴퓨터에서 프로세스를 실행하려면 Sysinternals을 무료 psexec으로 사용할 수 있습니다.

적절한 매개 변수를 사용하여 호출하고 샘플 코드에서 수행하는 것과 같이 필요한 권한을 가질 수 있습니다.

+0

감사합니다. 내가 psexec를 사용하고 지금은 잘 실행됩니다. – user109285

1

나는 실행 파일과 배치 파일을 사용하여 프로세스를 만들려고 적이 : 다음은 코드입니다. 나는 항상 cmd.exe를 프로그램으로 사용해야했다. 이것은 과거에 나를 위해 일했습니다

Dim startInfo As New System.Diagnostics.ProcessStartInfo("cmd.exe", "/c " & serverpath & "\file.bat") 

인수 목록의 일부로서 "/ C"는 배치 파일이 완료된 후 종료 cmd.exe를 알려줍니다.

RedirectStandardOutput을 사용하려는 경우 실제로는 RedirectStandardError를 사용하고 해당 스트림 (OutputDataReceived 및 ErrorDataReceived)에서 데이터를 잡기 위해 Process 클래스의 이벤트에 가입해야합니다. 그렇지 않으면 배치 스크립트를 디버그 할 수 없습니다.

+0

나는 그것이 Neil을 증명했으나 여전히 원격으로 .exe 파일을 로컬에서 실행하고 원격 모드에서는 실행하지 않습니다. 다른 조언? – user109285

0

사용 권한 문제와 비슷합니다. 당신이 그것을 아직 다 판지하지 않았다면 나는 그런 식으로 문제를 해결할 것입니다.
로컬 컴퓨터에서 동일한 배치 파일을 실행 해 보셨습니까?
사용 권한 문제 인 경우 실행하기 전에 로컬로 파일을 복사하거나 파일이있는 원격 컴퓨터에 드라이브를 매핑 한 다음 새 경로에서 배치 파일을 실행하여 해결할 수 있습니다.

또한 문제를 일으킬 수있는 배치 파일의 내용을 알 수 없습니다. 배치 파일을 게시하거나 배치 파일을 게시 할 수없는 경우 게시 할 수있는 배치 파일을 사용합니다. 예를 들어 배치 파일은 현재 날짜 시간을 파일에 씁니다.

관련 문제