2007/01/21

VBScript 를 이용한 예약작업 등록

Windows 에서 예약작업(스케쥴링, Linux계열에서는 Cron) 을 설정하기 위해서는 2가지 방법이 제공된다.

명령줄 환경에서, 또는 관리목적의 스크립트에서 예약작업을 등록할려면,. 기존에는 옵션이 조금 빈약한 At 을 이용하거나, 별도의 Win32 API 를 호출하는 프로그램을 이용해서 작업을 해야 했으나,

이런 작업을 쉽게 할수 있는 컴포넌트 및 스크립트를 MS에서 다운로드 할수 있으며, 다음 링크에서 가능하다. 다운로드 할때 정품인증 하므로,. 정품이 아닌 OS는 알아서 잘 하면 되겠다. ^^

http://www.microsoft.com/downloads/details.aspx?FamilyID=601d75e2-f907-4e51-ad88-adb818df1d27&displaylang=en

다운로드 하면 다음과 같은 파일이 압축형태로 풀린다.



뭐 별거 없다.

각각의 파일기능은,. itask.tlb 는 윈도우 예약작업 컴포넌트인 SechedulingAgent.dll 에서 참조하는 라이브러리 파일이며, SQLSchedullingAgent.dll 은 SQL Server 의 스케쥴링을 등록해 주며,

sqltasks.xml 은 XML 형태의 스케쥴링 목록을 가진 파일, tasks.xml 은 예약작업 목록을 가진 파일이다.

물론, 최종적인 작업은 task.vbs 파일이 해당 XML 파일에 지정된 컴포넌트를 호출하여 해당 XML 파일의 예약작업 목록을 등록하는 작업을 하게 된다.

그럼, 일단 실행해 보자.

C:\task>task.vbs tasks.xml

Microsoft (R) Windows Script Host 버전 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

 Task: System State Backup scheduled.


결과, task.xml 에 지정된 예약작업이 등록되었다.



그럼, XML 파일은 어떤 형식으로 되어 있을까?. 이 역시 뭐 간단하다. 물론, XML 구조에 대한 간단하나마 이해를 하고 있으면 말이다.



task.vbs 소스파일을 보면,. 지정된 XML 파일을 파싱하여 지정된 agent 라이브러리 이용하여 task 노드의 어트리뷰트의 예약작업 각 항목을 등록을 하게 된다.


SQL 스케쥴링도 별반 다를게 없다.

물론, 하나의 tasks.xml 파일 내부에, 윈도우 예약작업을 2개 이상 지정하거나, SQL 예약작업과 함께 설정할수가 있는데,

XML 노드중, agent 노드가 하나의 예약작업이므로 1개 이상의 예약작업 설정이 가능하다. 운영하는 서버가 여러대이거나, 또는 관리하는 컴퓨터가 여러대 일 경우 쉽게 예약작업 설정이 가능해 진다.


실제 처리를 하는 파일인 task.vbs 소스를 보면, 내부가 모두 각 함수로 잘 정리되어 있는데 각 함수의 기능은 앞서 얘기한 각 항목별 기능을 처리하는 함수이다.

dll 파일이 레지스트리에 등록되어 있지 않으면 레지스트리에 등록하는거나, xml 파일 파싱을 하는거나 컴포넌트를 호출하여 실제 예약작업에 등록하는 등이다.


추가로, 예약작업에 등록하는 방법은 WMI 를 이용하는 방법도 있다.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set objNewJob = objWMIService.Get("Win32_ScheduledJob") errJobCreated = objNewJob.Create _
    ("Notepad.exe", "********123000.000000-420", _
        True , 1 OR 4 OR 16, , , JobID)
Wscript.Echo errJobCreated


WMI 를 이용하는것과 위 vbscript 의 차이점은, API 가 다르다. WMI 에서의 실제 작업은 At 방식과 같게 작동한다. 그래서 특정 실행 계정을 지정할수 없으며, SYSTEM 계정 권한으로 등록되어 실행된다.

 


위 2가지 방식으로, 쉽게 예약작업 설정이 가능하다. 물론 관리자가 어떤 작업을 프로그래미컬 한 작업을 원할 경우에 말이다.
 

20-TaskScheduler-1.png
20-TaskScheduler-2.png
20-TaskScheduler-3.png
20-TaskScheduler-4.png
20-TaskScheduler-5.png

2007/01/18

Perflib / ID: 2003

"C:\WINNT\system32\aspperf.dll" 성능 라이브러리("ASP" 서비스)의 구성 정보가 레지스트리에 저장된 신뢰된 성능 라이브러리 정보와 일치하지 않습니다. 라이브러리의 기능은 신뢰되어 있지 않다고 처리됩니다.

"C:\WINNT\system32\infoctrs.dll" 성능 라이브러리("InetInfo" 서비스)의 구성 정보가 레지스트리에 저장된 신뢰된 성능 라이브러리 정보와 일치하지 않습니다. 라이브러리의 기능은 신뢰되어 있지 않다고 처리됩니다.

"C:\WINNT\system32\ftpctrs2.dll" 성능 라이브러리("MSFTPSVC" 서비스)의 구성 정보가 레지스트리에 저장된 신뢰된 성능 라이브러리 정보와 일치하지 않습니다. 라이브러리의 기능은 신뢰되어 있지 않다고 처리됩니다.

"C:\WINNT\system32\w3ctrs.dll" 성능 라이브러리("W3SVC" 서비스)의 구성 정보가 레지스트리에 저장된 신뢰된 성능 라이브러리 정보와 일치하지 않습니다. 라이브러리의 기능은 신뢰되어 있지 않다고 처리됩니다.

MSExchangeIS Mailbox Store / ID: 9688

Exchange 저장소 '기본 저장소 그룹\사서함 저장소(EXCHSVR)': 이 데이터베이스의 논리적 크기는 17GB로 크기 한도 18GB에 근접합니다. 논리적 크기는 .edb 파일과 .stm 파일의 실제 크기에서 각각 논리적 여유 공간을 뺀 값입니다.

논리적 데이터베이스 크기가 최대 크기 한도를 초과할 경우 데이터베이스가 정기적으로 분리됩니다.

2007/01/11

2007년 1월 Microsoft 보안 공지 요약

이번에는, 오피스와 익스플로러(아웃룩) 관련 4개 만 올려져 있는데요.

WSUS 에 배포된것을 보면, 이전에 배포된 업데이트중 Windows Server 2003용 업데이트(KB910437) 가 재배포 되었습니다.

이번달 패치 업데이트 목록은 다음과 같습니다. 상세 내역은 MS 홈페이지를 참조하시면 되겠습니다.


Microsoft Excel의 취약점으로 인한 원격 코드 실행 문제점(927198)

- 이 업데이트는 원격 코드 실행을 허용할 수 있는 Excel의 취약점을 해결합니다.

Microsoft Outlook의 취약점으로 인한 원격 코드 실행 문제점(925938)

- 이 업데이트는 원격 코드 실행을 허용할 수 있는 Outlook의 취약점을 해결합니다.

벡터 표시 언어의 취약점으로 인한 원격 코드 실행 문제점(929969)

- 이 업데이트는 원격 코드 실행을 허용할 수 있는 Internet Explorer 취약점을 해결합니다.

Microsoft Office 2003 포르투갈어(브라질) 문법 검사의 취약점으로 인한 원격 코드 실행 문제점(921585)

- 이 업데이트는 원격 코드 실행을 허용할 수 있는 Office의 취약점을 해결합니다. 공격자가 이 취약점을 악용하려면 사용자 조작이 필요합니다.


Windows Server 운영측면에서는 이번달에는 패치 적용 및 리붓팅을 다음번 패치때까지 미루워도 크게 문제되지 않을 것 같습니다.

서버내에서 개인용 컴퓨터처럼 익스플로러로 웹서핑을 하거나 오피스 쓰는 관리자는 없겠죠?.. ^^

그런 서버가 아니고서는 사용자 조작이 필요한 취약점이므로 일반적으로 서버상에는 문제될만한 사항이 없어 보입니다. (*패치설치는 각자 서버운영 원칙에 따라서 알아서 판단하시길...^^)

2007/01/08

IIS 7 에서 변화된 Http 상태 코드

IIS 7 에서 새로 추가 또는 삭제등 변경된 Http 상태코드 입니다.

정확한 것은 롱혼서버 버젼의 IIS 7이 발표되어야 확정될 것 같고,. 이러한 상태코드는 서비스팩등의 배포를 통해서 언제든지 추가 및 변경될 가능성이 있습니다.

롱혼은 현재 베타 상태이며, IIS 7은 기존 IIS 6 에 비해서 UI 가 꽤 많이 변경된 상태입니다. 대부분의 UI 등이 이전 SMS(System Management Server) 또는 MOM(Operations Manager) 의 UI와 매우 흡사하게 변경이 되고 있어서 서버제품 전체적으로 UI 통합을 하는 것으로 보입니다.

상태코드 목록은, IIS 웹사이트의 등록정보에서 상태코드 목록에서 확인을 할수 있으며, 사용자 페이지로도 변경이 가능합니다.


새로 추가된 코드

404.4 - File or directory not found: No module handler is registered to handle the request.
404.5 - URL sequence denied. The specified URL sequence is not accepted by the server.
404.6 - HTTP verb denied. The specified HTTP verb is not accepted by the server.
404.7 - File extension denied. The specified file extension of the resource is not accepted by the server.
404.8 - URL namespace hidden. The namespace of the specified URL is hidden by configuration.
404.9 - File attribute hidden. The requested file has a hidden attribute which prevents it from being served.
404.10 - Request header too long. One of the request headers is longer than the specified limit configured in the server.
404.11 - URL is double-escaped. This URL is denied because it is susceptible to double-escaping attacks.
404.12 - URL has high bit characters. This URL is denied because it has high-bit characters.
404.13 - Content-Length too large. This URL is denied because the Content-Length set is longer than specified by configuration.
404.14 - URL too long. This URL is denied because its length is longer than specified by configuration.
404.15 - Query-String too long. This URL is denied because its Query-String is longer than specified by configuration.
As you may noticed, lot of new 404 entries. 404.13/.14 replaced the 413/414 status codes and re-category under 404.

500.14 - Server error: Invalid application configuration on the server.
500.17 - Server error: URL authorization store cannot be found.
500.19 - Server error: Data for this file is configured improperly in the configuration store.

* 위 404 대부분은 Url Scan 이나, IIS 6에서 부터 일부 내장된 보호기능 때문에 발생할 수 있는 코드


삭제된 코드

403.20 - Passport logon failed. This error code is specific to IIS 6.0.
As Passport Login support has been removed from IIS 7.0

* IIS 6 에서만 있던 상태코드이나, 패스포트 서비스가 실패하면서 IIS 7 에서는 제외됨.


동일한 내용


405 - HTTP verb used to access this page is not allowed.
Not sure what's the difference with 404.6 :)

* 404.6 과 차이가 없다고 했으나, 메시지상으로는 404.6 은 허용되지 않은 HTTP 동사를 요청한 경우이고, 405 는 요청한 특정 페이지에서만 허용되지 않는다는 설명.


정확히 내용을 알기 어려운 코드

401.6 - Unauthorized: URL authorization scope was not found on the server.
401.7 ? Access denied by URL authorization policy on the Web server. This error code is specific to IIS 6.0
407 - Proxy authentication required.
410 - File has been removed.
415 ? Unsupported media type.
500.11 - Server shutting down
500.12 - Application is busy restarting on the Web server


출처 : http://msmvps.com/blogs/bernard/

2007/01/06

웹페이지 스크랩시 출처표기 클립보드 추가 javascript

다음 스크립트는, 웹페이지를 스크랩해서 다른곳에 복사할 경우 복사된 내용에 별도의 내용을 추가하는 javascript 입니다.  소스는 간단합니다.


<script language="javascript">
// Clipboard Copy Alert
function contents_cp()
{
    if (window.event)
    {
        window.event.returnValue = true;
        window.setTimeout('attach_kinref()', 25);
    }
}
function attach_kinref()
{
    if (window.clipboardData) // IE
    {
        // get data from clipboard
        var txt = window.clipboardData.getData('Text');        
        // attach the source at the end of text
        txt = txt + '\r\n\r\n스크랩원본글: ' + document.URL + '\r\n' +
       '출처웹사이트: 서버주무르기[Serverinfo.pe.kr],
http://www.serverinfo.pe.kr/\r\n' +
       'Windows Server, IIS, SQL Server, Exchagne Server 팁앤테크, QnA 게시판';
       
       // set data to clibboard
        var result = window.clipboardData.setData('Text', txt);
    }
}
</script>
<body oncopy="contents_cp();">
     이 내용을 클립보드에 복사해서 에디터에 붙여넣기 해보세요
</body>

추가한 내용중에,  document.URL 는  해당 웹페이지의 주소를 가져옵니다.


출처: http://www.phpschool.com/
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=50797

가장 많이 본 글