[server] 사용자가 로그인하지 않은 상태에서 작업 스케줄러에서 배치 파일 실행

작업 스케줄러에서 Windows 7의 배치 파일을 실행하려고합니다. 명령 프롬프트에서 배치 파일을 실행하면 배치 파일을 정상적으로 실행할 수 있습니다.

사용자가 로그인했을 때만 실행되도록 작업 스케줄러에서 실행하면 문제없이 작업이 실행됩니다. 그러나 사용자가 로그인하지 않은 상태에서 실행되면 작업 스케줄러는 파일을 실행중인 것처럼 보이지만 아무 일도 일어나지 않습니다.

배치 파일에 무엇이 있는지 확인하기 위해 배치 파일을 다음 줄로 변경하려고 시도했습니다.

echo "success" >> c:\temp\test.log

그리고 그것은 작동하지 않습니다. 어떤 아이디어? 배치 파일과 파일이 작성되는 폴더에 대한 모든 권한을 가진 관리자 계정과 가장 높은 권한으로 실행되고 있습니다.



답변

작업 스케줄러 : 예약 된 일괄 스크립트가 실행되지 않습니다

작업 스케줄러 속성. . .

Task Scheduler작업의 Windows 에서 Properties (대부분의 스크린 샷 참조) . . .

  • 1. General 탭에서 인쇄 화면 A 와 같이 아래 옵션을 선택 / 확인 또는 선택 해제했는지 확인하십시오 .

    • 체크 해제 Run only when user is logged on
    • 검사 Run whether user is logged on or not
    • 검사 Run with the highest privileges
  • 2. Conditions 탭 에서 인쇄 화면 B에 표시된대로 아래 옵션이 선택 , 선택 또는 선택 해제되어 있는지 확인 하십시오 .

    • 검사 Wake the computer to run this task
  • 3. Actions 탭을 클릭 Edit하고이되도록 Start in (optional)예를 아래합니다 (같이 단지 설정 하지 마십시오 배치 스크립트가있는 전체 경로를 가리키는 것이 주위에 큰 따옴표를 넣어) 없이 최종 백 슬래시 ” \화면 인쇄 C


보안 고려 사항

  • OK( 2. 위) 를 누르면 자격 증명을 실행하라는 메시지가 표시되고 자격 증명은 EXECUTE배치 파일이 존재하는 배치 파일에 액세스해야하며 배치 파일이 실행중인 모든 작업을 수행해야합니다. 당신은 스크립트를 작성했습니다.

  • 이 프로세스에 정적 서비스 / 프록시 사용자 계정을 설정 한 다음 자격 증명을 사용하여 프로세스를 실행하는 것이 가장 좋습니다. 암호가 강력하고 만료되지 않도록 설정해야 EXECUTE하며 배치에 액세스 하고 배치 스크립트 프로세스가 실행중인 모든 명령과 명령 및 리소스를 실행해야합니다. 그것은 또한 활용합니다.

  • 작업 스케줄러에서 예상대로 실제로 실행되도록 Run whether user is logged on or not하려면 반드시 옵션 을 확인해야합니다 Run with highest privileges.

오류 확인

  • 실제 배치 스크립트에 문제가 있지만 Windows 작업 스케줄러가 실제로이를 실행하기 위해 실행하지만 배치 스크립트 논리 오류 등 어떤 이유로 든 작업 스케줄러 가이 수준에서이 실패를 보지 못할 수 있습니다. 관점에서 (기본적으로 대부분의 경우) 배치 파일을 실행할 수 있고 액세스 할 수있는 한 작업이 성공적으로 완료됩니다.

  • 배치 스케줄러가 실행하는 보안 컨텍스트에 배치 스크립트가 실행되는 명령, 자원 등에 대한 적절한 액세스 권한이 있는지 확인하는 것을 포함하여이 레벨에서 문제점 을 포착 (또는 문제점 해결 ) 하기 위해 배치 스크립트 로직에 오류 점검 또는 로깅 을 추가하십시오 .


그룹 정책 고려 사항

그룹 정책을 확인하고 일괄 작업 권한으로 로그온

답변 : Windows에서이 권한은 로컬 또는 도메인 보안 정책을 통해 부여됩니다 . 로컬 보안 정책을 사용하여이를 수행 하려면 다음 단계를 수행하십시오.

  1. 에서 제어판 을 열고 관리 도구 , 다음 로컬 보안
    정책.
  2. 보안 설정 아래에서 로컬 정책을 열고 사용자 권한 할당을 강조 표시 합니다.
  3. 일괄 작업으로 로그온을 찾습니다 . 열기 속성을 이 권리를해야하는 모든 사용자를 추가합니다.
  4. 완료되면 변경 사항을 저장 하고 로컬 보안 설정 창을 닫으십시오 .

변경 사항이 즉시 적용됩니다. 도메인 보안 정책을 변경하려면 도메인 컨트롤러에서 제어판도메인 보안 정책 유틸리티 를 사용하십시오.


매핑 된 드라이브 또는 전체 UNC 경로가있는 배치 스크립트 논리 및 문제 . .

스크립트가 매핑 된 네트워크 드라이브를 참조하지만 원하는 Run whether the user is logged on or not경우이 컨텍스트에서 배치 프로세스가 실제로 예상 한 작업을 수행하기 위해 드라이브 매핑이 없을 수 있습니다.

가능하면 UNC문제가 발생하지 않도록 매핑 된 드라이브 문자 대신 배치 스크립트 논리에 경로를 사용 하십시오. 그렇지 않으면 PUSHD \\ServerName\ShareName배치 프로세스가 시작될 때 사용 POPD하고 배치 프로세스가 끝날 때 사용해야 합니다. NET USE X: \\ServerName\ShareName배치 프로세스가 시작될 때 드라이브를 매핑 한 다음 배치 프로세스 NET USE X: /DELETE가 끝날 때 드라이브를 분리 할 수 ​​있습니다 .


다른 사람

  • MS HOTFIX (KB977353) : 그룹 정책 즉시 작업 기본 설정 항목이 Windows 7 또는 Windows Server 2008 R2를 실행하는 클라이언트 컴퓨터에서 실행되지 않음

  • 예약 된 작업의 Settings탭과로 표시된 옵션을 확인하십시오 Stop the task if it runs longer than:. 이 옵션이 선택되어 있고 기간이 실행중인 스크립트보다 작 으면 작업 스케줄러가 조기에 종료하므로 예상 한 결과를 얻지 못할 수 있습니다. 이 경우를 대비하여 문제 해결시 확인할 사항이 있습니다.

    여기에 이미지 설명을 입력하십시오

  • 옵션 Triggers을 선택할 때 예약 된 작업 의 탭 Edit에서 Start:시간과 날짜가 아직 전달되지 않은 값 으로 설정되어 있는지 확인하십시오 . 날짜 및 시간이 미래 값으로 설정되어 있는지 확인하십시오 . 그렇지 않으면 작업이 예상대로 다음 예약 시간에 실행되도록 예약되어 있음을 알 수 있습니다. 그러나, 그것은에 의해 실행되지 않는 작업 스케줄러 나하지 작업 스케줄러 History (이 아니기 때문에)이 지금까지 실행되는 탭 쇼를. 이 문제가 발생한 경우 트리거를 편집하고 향후 날짜 및 / 또는 시간으로 업데이트하기 만하면됩니다.

    여기에 이미지 설명을 입력하십시오


인쇄 화면

인쇄 화면 A

여기에 이미지 설명을 입력하십시오

인쇄 화면 B

여기에 이미지 설명을 입력하십시오

인쇄 화면 C

여기에 이미지 설명을 입력하십시오


답변