정기 작업에서 .NET에서 사용자를 가장 할 때 오류
-
20-08-2019 - |
문제
예정된 작업으로 Windows Server 2003에서 .NET 콘솔 앱을 실행하고 있습니다.
이는 프로세스 클래스를 사용하여 다른 작은 콘솔 앱을 실행하지만 프로세스를 사용하여 사용자를 가장하여 사용하여 사용합니다.
관리자의 예정된 작업에서 가장 한 계정이 완벽하게 작동하지만 그렇지 않으면 오류가 발생합니다.
'응용 프로그램이 제대로 초기화되지 않았다 (0xc0000142)'
사용자에게 '배치 작업으로 로그온'및 '로그인으로 로그온'을 제공하려고 시도했지만 효과가없는 것 같습니다. 콘솔 앱은 가장 한 사용자로 시작되지만 실패합니다.
프로세스 모니터를 살펴보면 실패하기 전에 마지막 이벤트는 다음과 같습니다.
Tool1.exe-로드 이미지 -C : Windows System32 Kernel32.dll- 성공
나는 도구에 따라 달라졌고 이것이 오류라고보고한다.
getProcAddress (0x77e40000 [C : Windows System32 Kernel32.dll], "flsalloc") "C : Windows System32 Mscoree.dll"에서 호출되어 0x7900746d에서 0x77e6b49c가 나사산으로 반환했습니다. stf tools tool1 tool1.exe "(Process 0xb3c)는 스레드 1의 코드 1282 (0x502)가 있습니다.
이 오류의 원인이 무엇인지 또는 더 나은 방법에 대해 누군가가 무엇을 고칠 수 있는지 알고 있다면 알려주십시오.
대체 접근법의 제안도 환영합니다
감사 :)
해결책
나는 이것을 해결 한 후, 문제는 예약 된 작업이 실행되는 사용자의 데스크탑에 액세스 할 수 없다는 것입니다. 관리자는이 액세스 권한을 가질 수있는 것 같습니다.
내가 반올림하는 방식은 사용자가 상자에 영구적으로 로그온대로 작업을 실행하도록하는 것이 었으므로 데스크탑에 대한 액세스를 항상 사용할 수있게되므로 정상적으로 작동합니다. 못생긴 알아요!