vb.net을 사용하여 다른 컴퓨터에서 배치 파일을 실행하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com/questions/893867

문제

VB.NET 2008에서는 다른 컴퓨터에있는 배치 파일을 실행하고 싶습니다. 오류는 없지만 아무 일도 일어나지 않습니다. 코드는 다음과 같습니다.

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()
도움이 되었습니까?

해결책

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

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

다른 팁

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

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

인수 목록의 일부로 "/c"는 배치 파일이 완료된 후 CMD.Exe에게 종료하라고 지시합니다.

RedirectStandardOutput를 사용하려면 RedirectStandardError를 사용하고 프로세스 클래스의 이벤트를 구독하여 해당 스트림 (outputDatareceived 및 errordatareceived)에 대한 데이터를 포착합니다. 그렇지 않으면 배치 스크립트를 디버깅 할 방법이 없습니다.

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

또한, 우리는 문제를 일으킬 수있는 배치 파일에 무엇이 있는지 알지 못합니다. 배치 파일을 게시하거나 배치 파일을 게시 할 수없는 경우 게시 할 수있는 배치 파일을 사용합니다. 예제 배치 파일은 현재 날짜 시간을 파일에 씁니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top