'프로그래밍/vbscript'에 해당되는 글 18

  1. 2014.12.15 MOF File
  2. 2014.01.23 Remote Registry Get
  3. 2013.06.01 Vbscript Cmd 명령어 수행방법 (5)
  4. 2009.04.19 중앙 서버 관리 아키텍처
  5. 2009.02.12 WMI 사용 툴
  6. 2009.02.11 WMI 아키텍처 (1)
  7. 2009.01.31 WMI 원격 접속 방법
  8. 2008.12.13 vbscript를 사용한 실행프로그램 실행
  9. 2008.12.04 vbscipt의 매개변수 받는 법
  10. 2008.12.04 예약된 작업 등록

MOF File

2014.12.15 10:30 | Posted by 로멘틱가이

MOF 파일은 WMI를 사용하는 경우 WMI Data(namespace, classes, instances, providers의 정의)를 포함하고 있는 File

 

(참고사이트 : http://technet.microsoft.com/en-us/library/cc180827.aspx)

TAG MoF, WMI

Remote Registry Get

2014.01.23 20:41 | Posted by 로멘틱가이

Vbscript를 사용하여 원격 Registry 값을 가지고 오는 방법

 

Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

strComputer = "192.168.0.2"
strUser = "Administrator"
strPassword = "!!""
strDomain = "WORKGROUP"

 

Set objSWbemLocator = CreateObject("wbemScripting.SwbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _
        "root\default", _
        strUser, _
        strPassword, _
        "MS_409", _
        "ntlmdomain:" + strDomain)
Set objReg = objWMIService.Get("StdRegProv")

strKeyPath = "SYSTEM\CurrentControlSet\Control\CrashControl"
strEntryName = "DumpFile"
strValue = ""

 

objReg.GetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strEntryName, strValue

 

기본적으로 일반적인 WMI Query하는 것과 동일합니다.

단 NameSpace가 root\default로 변경된 부분과 StdRegProv를 Get해야하는 것만 틀립니다.

 

 

Vbscript Cmd 명령어 수행방법

2013.06.01 01:48 | Posted by 로멘틱가이

Command 창을 띄우지 않고 Cmd 명령어를 수행하는 방법입니다.

 

일반 구문

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "cmd /c mkdir C:\temp\SCCM"

 

Slient 구문

Set WshShell = WScript.CreateObject("WScript.Shell")

return = WshShell.Run ("cmd /c mkdir C:\temp\SCCM" ,0 ,true)

 

일반 구문으로 실행하는 경우 시간이 소요되는 명령어의 경우 Cmd 창이 뜨게 되며 Slient 구문의 경우 Cmd 창이 뜨지 않고 Background에서 수행되어집니다.

중앙 서버 관리 아키텍처

2009.04.19 16:03 | Posted by 로멘틱가이

FTP 중앙 서버로 자동화 구성하기

오늘은 FTP 중앙 서버를 구축하여 Script를 통해 다수의 서버를
관리하는 법에 대해 알아보도록 하겠습니다.

보통 서버를 관리하면서 여러가지의 사항에 대해 관리를 해야하는 경우가 많습니다.
예를들어 각 서버의 CPU를 조사를 해야하던가 하는 간단한 조사의 경우
일반적으로 다음과 같은 절차를 거쳐 조사를 하게 됩니다.

사용자 삽입 이미지
                                                         [그림1] 서버 아키텍처

위와 같이 각 개인의 컴퓨터에서 FTP 서버에 접속하여 각 서버의 데이터를 끌어올 수 있기 때문에
데이터 수집 시 관리자의 업무를 줄여줄 수 있습니다.


사용자 삽입 이미지
                                                               [그림2] 적용순서

그림 2와 같이 대부분의 업무는 Script로 자동화가 되어야한다.
Script로 자동화 하여 각 정보에 대한 Log를 서버에 보유하고 있어야하며 필요한 자료에 대해
FTP전송을 하는 예약작업을 작성함으로써 중앙 서버에서 모든 서버의 정보를 가질 수 있다.
그런 경우 [그림3]과 같이 하나의 중앙 서버에 접속함으로써 모든 서버의 정보를 가져올 수 있으며
수집결과를 분석할 수 있게 되는 것이다.
사용자 삽입 이미지
                                                             [그림3] 데이터 수집방법

이렇게 Script 작성 기술과 FTP전송 그리고 중앙관리할 수 있는 master 서버가 있는 경우
그림4와 같이 관리 편이를 얻을 수 있으며 이런 관리 편이성을 통해 관리자의 업무 강도가
줄어들 수 있을것이다.


사용자 삽입 이미지

                                                             [그림4] 도입스킬 및 장점
그럼 이런 중앙관리를 위해 필요한 스크립트에 대해 알아보도록 하겠다.
1) 예약작업
2) FTP 전송
3) 일반 관리 스크립트

1) 예약작업에 거는 방법에 대해선 기존에 작성한 글을 참조하여 작성하면 될것이다.
2) FTP 전송은 우선 중앙 서버에 FTP서버를 설치해야하며 FTP 서버 설치방법에 대해서는 책 or 인터넷에 올려놓은
다양한 글들을 참조하면 될것이다.
FTP로 전송하는 방법은 다음 스크립트를 참조한다.
'###########################################################################
'##
'## FileName : ftpFile.vbs
'## 용도 : 해당 서버의 해당 Directory에 Script 파일 생성
'## 작성자 : 권준상
'##
'###########################################################################
Const userID = FTP서버유저
Const userPasswd = FTP서버유저의 Password
Const serverIP = 서버IP
Const serverPort = 서버FTP포트
Const ForReading=1, ForWriting=2, ForAppending=3

Call Write()

Private Sub Write()
   
    Dim strFilePath
    dim strFileNM
    Dim sWriteMsg
    Dim strHostNM
    Dim fso
    Dim File
    Dim TextStream

    strFilePath = "C:\"
    strFileNM = strFilePath & "ftpupload.txt"    
   
End Sub
   
'ftp 명령어를 만들어주는 함수   
Private Function ftpFunc(strFilePath, strHostNM)

 Dim strFtp
 Dim strOFileNM
 Dim strNFileNM

 strFileNM = strHostNM & ".log"

 strFtp = ""
 strFtp = strFtp & "open " & serverIP & " " & serverPort & vbCrLf
 strFtp = strFtp & userID & vbCrLf
 strFtp = strFtp & userPasswd & vbCrLf
 strFtp = strFtp & "bin" & vbCrLf
 strFtp = strFtp & "prompt" & vbCrLf
 strFtp = strFtp & "cd /Swlist" & vbCrLf
 strFtp = strFtp & "mput " & strFilePath & strFileNM & vbCrLf
 strFtp = strFtp & "bye"

 ftpFunc = strFtp
  
End Function

위의 소스는 우선 돌아가지 않습니다..
모든 코딩은 자신이 생각해서 로직을 세워야하기에 그중 핵심 부분만 공개하며
그외의 부분에 대해서는 삭제했음을 미리 알려드립니다.

위의 부분과 다른 방식으로 접속하는 방법도 물론 많을 것이며 저것이 최적의 코딩은 아닐수도 있습니다.
제가 사용한 방식은 ftp접속을 할 수 있는 txt파일을 생성하여 해당 txt파일에 접속할 수 있는 정보를 넣은 후
원하는 파일을 해당 txt파일을 사용하여 upload하는 단순한 방법입니다.

단점은 위에서 보듯이 해당 소스에 서버 정보가 그대로 노출되게 됩니다.
보안에 취약할 수 있어 서버정보를 밖으로 빼어 binary로 만드는 것을 추천합니다.

이런식으로 FTP로 전송을 하는 script를 통해 예약된작업이 수행되게 작성을 하면
해당 정보들을 중앙 서버에 gathring하게 되며 특정 폴더 안의 파일들을 merge하게 하여 최종파일을 만들게 됩니다.

3) 일반관리 스크립트는 다양한 내용이므로 다루지는 않겠습니다.
해당 내용에 대해서는 작성 포인트 목록을 작성하여 해당 목록을 수행하는 script를 작성하면 되며
의외로 많은 항목을 도출할 수 있을 것입니다.

서버관리자들이 Window보다 Unix를 좋아하는 이유는 서버접속의 불편함 그리고 커맨드가 아닌 GUI를 사용함으로써
발생하는 처리 속도의 답답함, 정기적인 윈도우패치에 따르는 업무로드 증가와 보안이슈와 같이 다양한 원인이 있을 수
있을 것입니다.

하지만 자동화를 도입하는 경우 의외로 윈도우가 유닉스보다 관리가 용이하며 업무로드가 적다는 것을 알 수 있었습니다.

앞으로도 윈도우가 유닉스보다 더 관리가 쉽고 편하게 만드는 다양한 프로젝트를 통해
윈도우의 관리 요소를 줄이는 내용들을 많이 올리도록 하겠습니다.

그럼 긴 강좌 읽어주셔서 감사합니다.

WMI 사용 툴

2009.02.12 13:51 | Posted by 로멘틱가이
WMI 개발 툴

해당 툴들은 Microsoft의 Script Center에서 구할 수 있으며 WMI 개발에 유용한 파일들입니다.
(주소 : http://www.microsoft.com/technet/scriptcenter/default.mspx)

1) WMI Code Creator
사용자 삽입 이미지
WMI Code Creator의 가장큰 장점은 원격 서버 접속 Script를 쉽게 만들 수 있으며
각 Class별 필드를 선택할 수 있다는 점입니다.

큰 프로젝트를 기획하시는 경우 해당 필드들에 대한 몇몇의 값을 가지고 오는 Scipt가 필요한 경우
쉽게 작성 할 수 있으며 즉시 Execute Code를 수행하여 결과값을 확인할 수 있습니다.

단점은 Vbscipt로 코드가 생성되어진다는 점과 결과 값을 Command 창으로만 확인할 수 있다는
단점이 있습니다.

2) Scriptomatic
사용자 삽입 이미지
해당 툴도 Wmi Code Creator와 유사하며 Wmi Code Creator와 유사한 인터페이스를 가지고 있습니다.
다만, 필드를 선택할 수 없다는 단점을 가지고 있습니다.
Wmi Code Creator와 비교할때 장점은 생성 언어를 선택할 수 있으며 Output Format을 선택할 수 있다는 점입니다.

해당 툴들은 WMI에 대해 잘 몰라도 쉽게 결과값을 보여줄 수 있기 때문에
WMI를 쉽게 사용하는데 큰 도움이 된다고 생각되어집니다.

WMI 아키텍처

2009.02.11 15:55 | Posted by 로멘틱가이
WMI 아키텍쳐

WMI(Windows Management Instrument)는 규모가 커지고 복잡해지는 Enterprise System, Application, Network의 관리에 도움이 되도록 Windows 2000의 일부로 개발된 하나의 도구입니다.

사용결과 Windows 2000과 Windows 2003 모두에서 사용 가능하며 다만 버전별로 Table 및 Field명이 틀린 경우가 있으므로 버전별로 관리하는 것이 바람직합니다.

그럼 WMI가 무엇인가에 대해 알아보기로 하겠습니다.

1. 소개
현재 서버 관리 쪽은 자동화와 표준화를 통해 인당 서버수를 늘려 한사람당 관리하는 서버들의 대수가 늘어나고 있습니다.
이런 상황에서 서버 관리자는 서버정보 및 서버관리에 있어 해당 서버들의 정보를 조회할 툴이 없는 경우 큰 업무로드에 시달리게 됩니다.
NT계열에서 이런 난제를 해결할 수 있는 방법은 WMI가 있다.  이러한 WMI의 핵심 기능은 다음과 같습니다.

   (1) 균일 스크립트 API : 관리 개체는 CIM 개체 모델에 기초한 공통 개체 프레임워크에 정의되므로 WMI만
                                   사용하면 다양한 정보를 사용할 수 있습니다.

   (2) 원격 관리 : WMI는 로컬 및 원격 사용이 가능하므로 자신의 PC에서 각 서버의 정보를 효율적으로 뽑아볼 
                       수 있습니다.

   (3) 검색성과 탐색성 : DB Query를 이용하여 검색하므로 해당 자료를 쉽게 추출할 수 있습니다.

   (4) 강력한 이벤트 게시 및 가입 : 모든 사용자 정의 동작을 특정 이벤트 수신하는 즉시 수행가능 합니다.

2. 아키텍처
   (1) 공급자
       - 공급자는 일반적인 H/W Driver 및 OS에서 제공하는 정보들을 의미한다.
         즉, 예로들면 우리가 설치하는 그래픽 카드의 정보를 알고 싶은 경우 해당 정보는 그래픽 카드의
         Driver에 저장되어 있으며 이를 우리는 공급자라고 말한다.

   (2) CIM 개체 관리자
       - Winmgmt를 통해 시스템에 표현됩니다.
       - 소비자가 원하는 자료를 얻기 위해 CIM 개체 관리자에 요청을 하며 이런 요청을 중개하는 CIMOM이
         있으며 CIMOM은 사용 가능한 클래스(Repository에 존재)와 공급자를 확인 합니다.
         시나리오는 소비자가 요청하는 정보를 CIMOM이 평가한 후 공급자에서 필요 정보를 얻어와
         소비자에게 공급하는 구조입니다.
         물론 CIM Repository에서 정보를 가져오기도 하지만 WMI의 최대강점은 공급자에서 Data를 취합하여
         동적으로 Data를 제공하는 점입니다.

   (3) 관리 응용 프로그램
       - 소비자의 개념은 Application이라고 할 수 있습니다.
         우리는 Application을 통해 Wmi를 수행하게 됩니다.
         예를 들어, A라는 개발자가 Wmi를 이용하여 서버의 정보를 가지고 오는 역할을 하는 App를 만든다면
         해당 App를 소비자라고 할 수 있을 것입니다.

사용자 삽입 이미지


3. WMI 클래스
WMI Class는 일반 Class구조를 가지고 있으며 아래와 같은 내용으로 구성되어 있습slek.
   (1) 속성 : 값을 의미하며 WMI Table 의 각 Filed 값을 의미합니다.

   (2) 메서드 : 해당 인스턴스에서 수행하는 동작을 의미하며 예를 들어 Win32_Directory 클래스에는
                   압축을 할 수 있는 Compress 메서드가 있습니다.

   (3) 이벤트 : 시스템에서 발생하는 사건이나 실패를 수신하기 위해 소비자가 요청할 수 있는 알림을
                    의미합니다. 시스템의 변경 내용을 이벤트의 기초로 사용 가능합니다.
                    예를 들어 Win32_Processor 클래스의 LoadPercentage 속성은 CPU 사용률이 50% 이상
                    사용될 때 마다 이벤트를 요청하기 위해 사용 가능함

   (4) 연결 : 클래스 사이의 관계를 설명하며 그 자체도 클래스에 의해 정의됩니다.

4. 공급자
   (1) Win32 공급자 : 운영체제, 컴퓨터 시스템, 주변기기, 파일시스템에 대한 정보, 보안 정보

   (2) WDM 공급자 : 사용자 입력장치, 저장장치 , 네트워크 인터페이스, 통신포트를 위한 WDM Driver

   (3) 이벤트 로그 공급자 : Windows NT 이벤트 로그 항목 읽기, 옵션 구성, 이벤트 로그 백업,
                                    이벤트가 로그 추가 시 WMI 이벤트가 생성될 수 있음

   (4) 레지스트리 공급자 : 레지스트리 키 만들기, 읽기, 쓰기, 지정된 레지스트리 키가 수정되면
                                    WMI 이벤트 생성 간능

   (5) 성능 카운터 공급자 : 시스템 모니터 도구에 표시되는 성능값 계산에 사용되는 카운터 정보 제공

   (6) Active Directory 공급자 : MS Active Directory 서비스에 저장되는 정보의 게이트웨이 역할을 합니다.
                                          단일 API를 사용하여 WMI와 Active Directory 모두의 정보 액세스 할 수 있음

   (7) Windows Installer 공급자 : Windows Installer에 대한 완전한 제어와 WMI를통한 소프트웨어 설치를
                                             가능하게 합니다. 또한 Windows Installer를 사용하여 설치된 모든 APP에
                                             대한 정보를 제공합니다.

   (8) SNMP 공급자 : 관리에 SNMP(Simple Network Management Protocol)을 사용하는 시스템과 장치의
                             게이트웨이 역할을 합니다. SNMP MIB 개체 변수를 읽고 쓸 수 있습니다.
                             SNMP 트랩은 자동으로 WMI 이벤트에 매핑됩니다.

   (9) 보기 공급자 : 기존 클래스로부터 새로운 집계 클래스를 만들 수 있습니다. 관심 있는 정보만을 위해
                           원본 클래스를 필터링할 수 있고, 여러 클래스의 정보를 단일 클래스로 조합할 수
                           있으며, 여러 컴퓨터의 정보를 단일 보기에 집계할 수 있습니다.

5. 마치며
WMI를 사용하여 할 수 있는 영역은 많습니다. vbscript와 같은 script언어 뿐 아니라 VBA같은 어플리케이션 언어에서도 WMI를 지원하기 때문에 관리 툴 제작에 많은 도움이 될것으로 보입니다.
평상시 이런 내용을 자동화 했으면 or 관리 툴이 있어 서버 관리가 쉬웠으면 하고 생각한 admin들에게 큰 도움이 될 것으로 보이며 해당 툴 개발을 통해 Admin의 관리 능력의 향상을 가져올 것이라 생각합니다.

Windows 2008에서는 PowerShell이 개발되어 더욱 쉽게 서버르르 관리할 수 있게 되어 있으므로 WMI 뿐 아니라 PowerShell에 대해서 공부해 보는 것도 Admin에게 새로운 영역을 발견하는데 큰 영향을 미칠거라 생각합니다.

WMI 원격 접속 방법

2009.01.31 15:49 | Posted by 로멘틱가이

오늘은 WMI 를 원격에서 사용하는 방법에 대해 알아보겠다.

WMI는 로컬컴퓨터에서도 가능하지만 원격에 있는 컴퓨터의 정보를 가져오는 것도
가능하다.

이 의미는 자신의 컴퓨터에서 몇대의 컴퓨터의 상태를
script작성을 통해 알 수 있다는 것을 의미한다.

예시 1을 보자
해당 Script는 해당 컴퓨터에 올라가 있는 Service를 확인하기 위한 Script이다.
strComputer가 평상시엔 .(즉 자신의 컴퓨터) 였으나 지금은 IP가 들어가 있는 것을 알 수 있다.
strComputer의 값에는 IP or Hostname이 가능하다.

원격에 접속하는 부분은 이 부분을 확인하면 된다.
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _
    "root\CIMV2", _
    strUser, _
    strPassword, _
    "MS_409", _
    "ntlmdomain:" + strDomain)

즉 원격서버정보, 유저ID, Password, 서버 Domain을 입력하면 된다.
그러면 root\CIMV2와 MS_409의 의미는 무엇일까?
 root\CIMV2\ms_409
안에는 다양한 WMI의 Class가 등록되어 있다.

http://www.webtropy.com/articles/wmi-namespace.asp?wmi=root-CIMV2-ms_409

해당 링크를 확인하면 해당 Class의 정보를 확인 할 수 있다.
이것을 통해 WMI의 Class를 지정해 줌으로써 더 빠르게 Class들의 정보를 확인할 수 있게 한것을
알 수 있다.

원격 접속은 하나의 Component를 사용하는 개념으로 보면된다.
간단한 예로 Visual Basic의 Ado를 사용하기 위해 해당 Component를 추가한 후
접속 함수와 접속 변수의 값을 설정해 주면 접속이 되는 것과 같은 이치라고 할 수 있겠다.

[예시1] 원격서버(127.0.0.1은 loopback이므로 Local Computer)에 접속하여 현재 실행중인 서비스 확인
strComputer = "127.0.0.1"
strDomain = "Workgroup"
strUser = "유저이름"
strPassword = "유저패스워드"

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _
    "root\CIMV2", _
    strUser, _
    strPassword, _
    "MS_409", _
    "ntlmdomain:" + strDomain)

Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Service",,48)
For Each objItem in colItems 
    Wscript.Echo "Caption: " & objItem.Caption
Next

vbscript를 사용한 실행프로그램 실행

2008.12.13 14:10 | Posted by 로멘틱가이


Wscript.shell에 객체 할당하여 실행하는 프로그램을 넣으면된다.

<script language="vbscript">

Dim oShell

Set oShell = CreateObject ("WScript.shell")
oShell.Run "notepad.exe"
Set oShell = nothing

msgbox "test"
</script>

oShell이란 변수에 객체 할당 후 Run의 프로그램이름을 적어넣으면된다.

oShell.Run "프로그램 명"

이렇게 사용하면 해당 프로그램이 실행되어진다.

vbscipt의 매개변수 받는 법

2008.12.04 21:25 | Posted by 로멘틱가이

VBScipt에서 매개변수 사용 방법

vbscipt를 실행할 때 매개변수 값을 받고 싶을 때가 있다.

cscript vbs명.vbs 매개변수
(ex) cscript test.vbs test kaka

위와 같이 vb script를 실행하는 경우 매개변수를 받아서 수행하고 싶을 경우가 있다.
예를들어 test와 kaka와 같이 두 개의 매개변수를 받아 각각의 매개변수를 받아 출력을 하기 위해서는 해당 매개변수를 vbscript에서 인식을 해야할 것이다.

그럼 어떻게 해당 test.vbs에서 매개변수를 받을 수 있을까?

'매개 변수의 갯수를 가져온다.
argCnt = WScript.arguments.count

for i = 1 to argCnt
   arg = WScript.arguments.item(i-1) '컬렉션은 0부터 시작한다.
   WScript.echo arg
next i

Visual Basic에는 컬렉션이라는 개념이 있다.
위와 같이 컬렉션의 count를 통해 갯수와 배열 값을 반환 받으면서
매개변수를 받을 수 있다.

혹시나 매개변수를 받을일이 있는 경우 위와 같이 cscript를 사용하는 batch파일과
매개변수를 받는 visual basic script로 구성되어 있다.




예약된 작업 등록

2008.12.04 21:02 | Posted by 로멘틱가이
예약된 작업 등록 방법

예약된 작업에 등록하게 위해서는 다음  class를 사용해야 한다.

ScheduledJob Class
uint32 Create(
  [in]            string Command,
  [in]            datetime StartTime,
  [in, optional]  boolean RunRepeatedly,
  [in, optional]  uint32 DaysOfWeek,
  [in, optional]  uint32 DaysOfMonth,
  [in, optional]  boolean InteractWithDesktop,
  [out]           uint32 JobId
);
1) Command
- 예약된 작업에서 수행할 Command(notepad의 경우 notepad.exe)
2) StartTime
- "YYYYMMDDHHMMSS.MMMMMM(+-)OOO",
  앞의 YYYYMMDDHHMMSS - 년월일시간분초
  (+-)OOO - Starttime 일반적인 LocalTime이 아니라 UTC Time임
3) RunRepeatedly
- 반복 수행 여부
4) DaysOfWeek
- 반복할 요일
  (1:월 2:화 3:수 4:목 5:금 6:토 7:일)
5) DaysOfMonth
- 한달에 어느 날 반복할 것인지
  (1:1일 2:2일 4:3일 - 계속 2배씩)
6) JobId
- Job No

Return Value
Return code Description

0

The request is accepted.

1

The request is not supported.

2

The user does not have the necessary access.

8

Interactive process.

9

The directory path to the service executable file cannot be found.

21

Invalid parameters have been passed to the service.

22

The account that this service runs under is invalid or lacks the permissions to run the service.

(MS 사이트 발췌)

위의 내용은 Class 값이다.
실제로 Vbscript 사용할 수 없다.

그럼 실제로 Vbscript에서는 어떻게 사용해야 할까?
다음과 같이 해당 Class를 오픈한 후 Create를 하면된다.
ex)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create _
    ("Notepad.exe", "********012500.000000-420", _
        True , 4, , True, JobId) 
If errJobCreated <> 0 Then
Wscript.Echo "Error on task creation"
Else
Wscript.Echo "Task created"
End If
(해당 자료는 MS 사이트에서 퍼옴)
1. Set objNewJob = objWMIService.Get("Win32_ScheduledJob")
해당 ScheduledJob을 가져온다.

2. errJobCreated = objNewJob.Create _
    ("Notepad.exe", "********012500.000000-420", _
        True , 4, , True, JobId)

해당 Class에 대해 새로운 잡을 Create(즉 등록) 한다.

Create의 매개변수는 다음과 같다.
1. Execute 구문
2. 시간
3. 반복여부
4. 요일(위와 동일)
6. JobID

위의 예제의 경우 매주 목요일 1시 25분에 notepad를 실행하게 됩니다.
예약된 작업은 유닉스의 Crontab과 같은 기능을 하므로 많은 사용을 하게 되지만
제어판 - 예약된 작업에서 등록을 하기는 힘드므로 여러대의 서버들에
자동화를 하기 위해서 많이 사용할거 같다.

msdn에서 상세한 내용을 못찾아서 고생을 하여 해당 내용을 공유한다.
이전 1 2 다음