본문 바로가기
프로그래밍/ASP

exe, vbs 파일등을 실행 시키는 WMI 메소드

by 백룡화검 2008. 6. 29.

출처 shjgm78님의 블로그 | 빈센시오
원문 http://blog.naver.com/shjgm78/120037473518

서버에서 프로그램을 실행해야 하는 경우 유용하게 쓰일것 같네요...
로컬 (IIS와 같은 컴퓨터)에서는 예전에 Han님이 소개해 주신 HanWSC.Object 를
사용해야 합니다. 아래링크를 참조하시길...

1.exec.asp 파일을 만든다.
2. c:\ 에 makefolder.vbs 폴더를 만든다.

윈도우 작업관리자로 확인하면 프로그램 실행여부를 알수 있습니다.

--------1. exec.asp -------------

<%
Dim ProcID

bClose = Request("bClose")
uip = Request("uip")
uid = Request("uid")
upw = Request("upw")
cmd = Request("cmd")

if Len(cmd) > 0 then
  call ExecProgram()
end if

if bClose = "1" then
  call TerminateProgram(ProcID)
end if

function GetLoc()
NSpace = "root\CIMV2"

Set oLoc = CreateObject("WbemScripting.SWbemLocator")
Set wn = CreateObject("WScript.NetWork")
  sn = wn.ComputerName
Set wn = Nothing
if (uip="") or (uid="") or (upw="") then
  Set oh = CreateObject("HanWSC.Object")
  Set oSvc = oh.GetHObject("winmgmts:\\" & sn & "\" & NSpace)
  Set oh = Nothing
else
  Set oSvc = oLoc.ConnectServer(uip,NSpace,uid,upw)
end if
Set GetLoc = oSvc
end function

sub ExecProgram()
  Set obj = GetLoc()
  Set oProc = obj.Get("Win32_Process")
  rs = oProc.Create(cmd,null,ot,ProcID)
  Set oProc = Nothing
  Set obj = Nothing
end sub

sub TerminateProgram(p_id)
Set obj = GetLoc()

Set p = obj.ExecQuery("Select * from " _
& " Win32_Process where ProcessId='" & p_id & "'")

if (p.count) > 0 then
  for each t1 in p
   iv = t1.Terminate(0)
  next
end if
Set p = Nothing
Set obj = Nothing
end sub

if Len(ProcID) > 0 then Response.write ProcID & "<br>"

%>

<html>

<head>
<script language="javascript">
function chgSel(){
var frm = document.form1;
var sel = document.form1.selCmd;
var idx = sel.selectedIndex;
frm.cmd.value = sel.options[idx].value;

}

</script>
</head>

<body>

<form name="form1" method="post">

<input type="checkbox" value="1" name="bClose">실행후 프로그램 종료
<br><br>
<select name="selCmd" onchange="chgSel();">
<option value="">명령 선택</option>
<option value="calc.exe">calc.exe</option>
<option value="wscript c:\makefolder.vbs">makefolder.vbs</option>
<option value="notepad.exe">notepad.exe</option>
</select>

명령줄 : <input type="test" name="cmd" size="50">
<br><br>
<hr>
<br><br>
다른 컴퓨터에는 아래의 값을 모두 입력 <br><br>
IP Addr : <input type="text" name="uip"><br>
User ID :<input type="text" name="uid" value="Administrator"><br>
User PW : <input type="text" name="upw"><br>

<br><br>
<input type="submit" value="실행">

</form>

</body>

</html>

-------- 2.makefolder.vbs ----------------

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.CreateFolder("c:\aspnewsgroup")
Set f = Nothing

Set fso = Nothing 

'프로그래밍 > ASP' 카테고리의 다른 글

[Asp]페이징 클래스 소스  (0) 2008.07.01
WSH - WScript 와 CSciprt  (0) 2008.06.29
ASP/천원단위 콤마 찍기(Formatnumber, Form..  (0) 2008.06.29
한자->한글로 변환하기  (0) 2008.06.29
테이블 정의서  (0) 2008.06.29