prosource

스케줄러에서 "데스크톱과 상호 작용"을 사용하여 Windows 2008 태스크를 실행하는 방법

probook 2023. 8. 11. 22:24
반응형

스케줄러에서 "데스크톱과 상호 작용"을 사용하여 Windows 2008 태스크를 실행하는 방법

저는 작은 것을 가지고 있습니다.작업 스케줄러를 통해 Windows 2008 Server에서 실행 중인 NET 앱입니다.이 응용 프로그램은 Excel 파일을 열고 csv로 저장해야 합니다.워크북을 열려고 하면 작업이 실패합니다.작업 스케줄러를 실행하지 않고 수동으로 실행하면 앱이 정상적으로 작동합니다.

"최고 권한으로 실행"으로 설정하고 "날씨 사용자 로그온 여부"를 선택합니다.

서비스의 "데스크톱과의 상호 작용" 플래그를 확인하려면 이 프로세스가 데스크톱과 유사하게 상호 작용해야 합니다.하지만 저는 스케줄된 작업에 대해 비슷한 것을 찾을 수 없었습니다.

다음은 실패한 코드입니다. (워크북에서 실패했습니다.open call)

public static void ConvertExcelToCsv(string source, string destination)
{
    if (File.Exists(destination)) File.Delete(destination);

    Application xl = new Application();

    try
    {
        Workbook workbook = xl.Workbooks.Open(source, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
        Worksheet ws = (Worksheet)workbook.Sheets[1];
        ws.SaveAs(destination, XlFileFormat.xlCSV, Type.Missing, Type.Missing, false, false, Type.Missing, Type.Missing, Type.Missing,true);

        Marshal.ReleaseComObject(ws);
    }
    finally
    {
        xl.DisplayAlerts = false;
        xl.Quit();

        Marshal.ReleaseComObject(xl);                
    }

}

Windows Server 2008에서는 Office가 Windows Server 2003에서는 정상적으로 작동하지만 Windows Server 2008에서는 Windows Service에서 Office를 자동화하는 데 문제가 있었습니다.Open call에서도 문제가 발생하므로 동일한 문제일 수 있습니다.

는 이 MSDN 스레드에서 Hogawa의 조언을 따르려고 노력했고, 효과가 있는 것 같았습니다.기괴한 일이지만, 오가와 씨가 발견한 것을 칭찬합니다.

'Ogawa Hack' 요약: 시스템 프로필에 대한 데스크톱 폴더를 만듭니다.

C:\Windows\SysWOW64\config\systemprofile\Desktop또는

C:\Windows\System32\config\systemprofile\Desktop

...64비트 Windows를 사용하는지 여부에 따라 달라집니다.

또한 이 폴더에는 Office를 "운전하는" 사용자에 대한 쓰기 권한이 필요합니다.

[편집: 수정된 링크 URL]

이것은 저를 너무 미치게 했고, 저는 DOC를 PDF로 변환하는 스크립트를 시작하려고 했습니다. 그리고 그것은 윈도우 10에서 작업 스케줄러를 통해 실행되었을 때 완벽하게 작동했지만 윈도우 서버 2016에서는 작동하지 않았습니다.이것은 효과가 있었습니다!오가와 쿠도스 씨!

언급URL : https://stackoverflow.com/questions/1674836/how-to-run-a-windows-2008-task-from-the-scheduler-with-interact-with-desktop

반응형