<%
Set basp = Server.CreateObject("Basp21")
strComputer = "."
strResult = ""
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
' **********************************************************' TCP/IP プリンタサーバー' **********************************************************
strQuery = "select * from Win32_Service where Name = 'LPDSVC'"
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
errReturnCode = objService.StopService()
Next
' 終了待ち
nCnt = 0
Do while true
basp.Sleep 1
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
strResult = objService.State
Next
if strResult = "Stopped" then
Response.Write "LPDSVC Stopped"
Exit Do
end if
nCnt = nCnt + 1
if nCnt > 60 then
Response.Write " -> Timeout"
Response.End
end if
Loop
' **********************************************************' MacPrint' **********************************************************
strQuery = "select * from Win32_Service where Name = 'MacPrint'"
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
errReturnCode = objService.StopService()
Next
' 終了待ち
nCnt = 0
Do while true
basp.Sleep 1
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
strResult = objService.State
Next
if strResult = "Stopped" then
Response.Write " -> MacPrint Stopped"
Exit Do
end if
nCnt = nCnt + 1
if nCnt > 60 then
Response.Write " -> Timeout"
Response.End
end if
Loop
' **********************************************************' Spooler ( 停止 )' **********************************************************
strQuery = "select * from Win32_Service where Name = 'Spooler'"
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
errReturnCode = objService.StopService()
Next
' 終了待ち
nCnt = 0
Do while true
basp.Sleep 1
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
strResult = objService.State
Next
if strResult = "Stopped" then
Response.Write " -> Spooler Stopped"
Exit Do
end if
nCnt = nCnt + 1
if nCnt > 60 then
Response.Write " -> Timeout"
Response.End
end if
Loop
' **********************************************************' Spooler ( 開始 )' **********************************************************
strQuery = "select * from Win32_Service where Name = 'Spooler'"
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
errReturnCode = objService.StartService()
Next
' 開始待ち
nCnt = 0
Do while true
basp.Sleep 1
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
strResult = objService.State
Next
if strResult = "Running" then
Response.Write " -> Spooler Running"
Exit Do
end if
nCnt = nCnt + 1
if nCnt > 60 then
Response.Write " -> Timeout"
Response.End
end if
Loop
' **********************************************************' MacPrint' **********************************************************
strQuery = "select * from Win32_Service where Name = 'MacPrint'"
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
errReturnCode = objService.StartService()
Next
' 終了待ち
nCnt = 0
Do while true
basp.Sleep 1
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
strResult = objService.State
Next
if strResult = "Running" then
Response.Write " -> MacPrint Running"
Exit Do
end if
nCnt = nCnt + 1
if nCnt > 60 then
Response.Write " -> Timeout"
Response.End
end if
Loop
' **********************************************************' TCP/IP プリンタサーバー' **********************************************************
strQuery = "select * from Win32_Service where Name = 'LPDSVC'"
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
errReturnCode = objService.StartService()
Next
' 終了待ち
nCnt = 0
Do while true
basp.Sleep 1
Set colRunningServices = objWMIService.ExecQuery(strQuery)
For Each objService in colRunningServices
strResult = objService.State
Next
if strResult = "Running" then
Response.Write " -> LPDSVC Running"
Exit Do
end if
nCnt = nCnt + 1
if nCnt > 60 then
Response.Write " -> Timeout"
Response.End
end if
Loop
%>
<%
Set WshShell = Server.CreateObject( "WScript.Shell" )
if Request.QueryString("pass") <> "password" then
Response.Write "1"
Response.End
end if
if Request.QueryString("id") = "1" then
strCommand = _
"cmd.exe /c cd \ & d: & cd \ & cd 目的のパス & cscript.exe 転送1.wsf" ' コマンドプロンプトを開かない非同期実行
Call WshShell.Run( strCommand, 0, False )
Response.Write "OK"
Response.End
end if
if Request.QueryString("id") = "2" then
strCommand = _
"cmd.exe /c cd \ & d: & cd \ & cd 目的のパス & cmd /c 転送2.bat" ' コマンドプロンプトを開かない同期実行
Call WshShell.Run( strCommand, 0, True )
Response.Write "OK"
Response.End
end if
Response.Write "id error"
%>
クライアント側
<HTML>
<HEAD>
<TITLE>バッチ処理特別</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
<STYLE type="text/css">
* {
font-size: 14px;
}
INPUT {
font-weight:bold;
}
</STYLE>
<SCRIPT language="JavaScript">
var dom,bIE;
var objXMLHttp;
if ( document.all ) {
bIE = true;
dom = new ActiveXObject("Msxml2.DOMDocument.3.0");
objXMLHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
else {
bIE = false;
dom = document.implementation.createDocument("", "", null);
objXMLHttp = new XMLHttpRequest();
}
function ExecCommand( nID ) {
if ( !confirm( "処理を実行しますか?" ) ) {
return;
}
var strPass = document.getElementsByName("pass")[0].value;
objXMLHttp.open(
"GET",
"http://layla/batch/asp/go.asp?id=" + nID + "&pass=" + strPass
, false );
objXMLHttp.send( "" );
result = objXMLHttp.responseText;
if ( result == "1" ) {
alert("パスワードが一致しません:"+result+" ");
return;
}
alert("バッチ処理を登録しました。結果はメールで返されます:"+result+" ");
}
</SCRIPT>
</HEAD>
<BODY style='background-color:gainsboro'>
<TABLE cellpadding="3">
<TR>
<TD>
パスワード
</TD>
<TD>
<INPUT type="password" name="pass" style='ime-mode:disabled'>
</TD>
</TR>
<TR>
<TD colspan="2">
<INPUT
type="button"
value="転送1"
style='width:200px;'
onClick='ExecCommand(1)'
>
</TD>
</TR>
<TR>
<TD colspan="2">
<INPUT
type="button"
value="転送2"
style='width:200px;'
onClick='ExecCommand(2)'
>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>