상태
일부 파일을 준비하고 프로그램을 실행 한 .exe
다음 해당 파일을 삭제 하는 배치 스크립트가 있습니다.
이 작업은 매시간 실행되므로 예약 된 작업을 사용하여 구성하려고합니다. 문제는 이전에 언급 한 프로그램이 .bat
스크립트 를 통해 또는 .exe
직접 호출 할 때 작업에서 호출 할 때 제대로 실행되지 않지만 로그에 경고 또는 오류 메시지가 표시되지 않는다는 것입니다.
설정
작업은 모든 권한이 올바르게 설정된 Windows 서비스 계정으로 실행되도록 구성되어 있습니다. RDP를 통해 로그온이 계정을 사용하는 경우, 나는 실행할 수 .bat
와 .exe
직접 문제없이,하지만 여전히 작업은 아무것도 할 것으로 보인다. 프로그램은 항상 파일을 수정하고 수정 된 타임 스탬프는 작업을 통해 변경되지 않기 때문에 쉽게 확인할 수 있습니다 .
예약 된 작업 로그에 프로세스 시작, 종료 등의 작업에 대한 정보 메시지가 표시됩니다. 그러나 "결과 코드"는 111
(Google에 행운없이 시도했지만, 유일한 연결은 "파일 이름이 너무 깁니다. ", 이는 완전히 관련이없는 AFAIK입니다). 응용 프로그램 로그에서 나는 아무것도 얻지 못합니다.
내가 의심하는 것은 문제
이 프로그램은 상호 작용이 필요하지 않고 작업 후 닫히기 때문에 GUI가 필요하지 않지만 일종의 스플래시 화면 (실제로는 일반 창임)을 생성하는 오래된 괴물입니다. 창이 약 2 초 동안 나타납니다.
GUI에 대한이 요구 사항이 작업 실패와 관련이 있다고 생각하지만 확실하지 않습니다. RDP를 통해 작업을 실행하는 사용자로 로그인하면 예약 된 작업을 시작할 때 창이 나타나지 않습니다.
GUI에 대한 편집
메인 창없이 (을 사용하여 ProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden
) 프로그램을 시작하는 매우 작은 C # 실행 파일을 작성했습니다 . 이 방법으로도 예약 된 작업이 여전히 프로그램을 올바르게 시작하지 못하지만 리턴 코드는 이제 0
입니다.
최신 정보
"사용자의 로그온 여부에 관계없이 실행하도록"태스크를 구성하고 run with highest privileges
옵션 의 선택을 취소 하면 오류 값은 2147943859
입니다.
문제를 해결하려면 어떻게해야합니까?
OS = Windows Server 2008 R2 SP1
더 많은 정보가 필요하면 의견에 알려주십시오.
.exe
스크립트 내에서 매개 변수를 사용 하여 "프로그램"을 시작할 때 입력을 인수로 올바르게 제공해야합니다.