ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows 작업 스케줄러에 URL 실행 예약작업 등록
    Windows 2017. 11. 14. 09:41

    윈도우 서버에서 작업 스케줄러를 이용하여 URL을 호출해야 되는 경우, 아래와 같이 작업 스케줄러를 생성한 계정에서 IE나 chrome등의 브라우저를 실행하면서 인수값으로 해당 URL을 실행하는 것으로 설정을 많이 합니다.



    근데 위의 방법은 해당 계정이 로그인이 되어 있는 상태에서만 가능합니다.

    그 이유는 윈도우의 예약된 작업은 작업을 예약한 사용자의 보안 컨텍스트에서만 실행이 되기 때문입니다.


    그래서 서버를 재시작 하거나 작업실행 계정을 로그오프 해버리면 위와 같은 작업 스케줄러는 실행이 되지 않습니다.

    이와 같은 문제를 방지하고자 해당 계정을 로그인 하지 않아도 URL을 호출하는 작업을 Powershell을 이용해 구성해 보았습니다. 

    주의할 점은 Powershell은 3.0 이상이 설치되어 있어야 합니다.


    일단 관리도구 > 로컬보안정책 > 보안 설정 > 로컬 정책 > 사용자 권한 할당에서 일괄 작업으로 로그온에 예약 작업을 실행하는 계정을 등록합니다.

    위 보안 정책에 스케줄러 실행 계정을 등록하면 로그인 하지 않아도 batch를 실행할 수 있는 권한을 획득할 수 있습니다.


    그리고 URL을 호출하는 powershell 스크립트 파일을 생성 합니다.

    $url = "http://www.mydomain.com/Sms_Send_Plan2.aspx"

     

    $request = [System.Net.WebRequest]::Create($url)

    $response = $request.GetResponse()

    $response.Close()


    다음으로는 위 스크립트 파일을 실행할 batch 파일을 생성 합니다.

    @echo off

    PowerShell.exe -noprofile -executionpolicy bypass -file "E:\batch\Sms_Send_Plan2.ps1"


    위의 준비가 완료되면 스케줄러를 생성해 줍니다.

    일반 탭의 보안 옵션에서 사용자의 로그온 여부에 관계없이 실행을 체크 합니다.


    마지막으로 생성한 batch 스크립트를 등록해 줍니다.


    'Windows' 카테고리의 다른 글

    IIS 고급 로깅 설정  (0) 2017.11.16
    Windows의 Disk 블록 에러 확인 및 해결 방법  (0) 2017.11.10
    Windows에서 DNS 관련  (0) 2015.09.17
    원격 세션 개수 제한  (0) 2015.09.17
    윈도우 시간 동기화 주기 수정  (0) 2015.09.16
Designed by Tistory.