<script language="JScript" runat="server">
try{
var fullPath = "IIS://localhost/W3svc/1",
oServer = GetObject(fullPath);
Response.write("Restarting web server in progress.
");
Response.write(" Please connect later!");
oServer.Stop();
oServer.Start();
}catch(e){
Response.write("Can't stop web server");
}
</script>
Friday, January 22, 2010
ASP JScript for restarting IIS
ASP JScript for Reboot a computer
<script language="JScript" runat="server">
var objWMIService=GetObject(
"winmgmts:{(Shutdown)}\\\\.\\root\\cimv2"
);
var colItems=objWMIService.ExecQuery(
"Select * from Win32_OperatingSystem"
);
var items = new Enumerator(colItems);
while (!items.atEnd()){
items.item().Win32Shutdown(6);
exit;
}
</script>
Monday, August 31, 2009
How do I write an ActiveX Ping Object?
I provide the source code first, and I will explain it later:
Hello
VERSION 5.00
Begin VB.UserControl PingObj
ClientHeight = 3600
ClientLeft = 0
ClientTop = 0
ClientWidth = 4800
InvisibleAtRuntime= -1 'True
ScaleHeight = 3600
ScaleWidth = 4800
Windowless = -1 'True
End
Attribute VB_Name = "PingObj"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Private Const IP_SUCCESS As Long = 0
Private Const IP_STATUS_BASE As Long = 11000
Private Const IP_BUF_TOO_SMALL As Long = (11000 + 1)
Private Const IP_DEST_NET_UNREACHABLE As Long = (11000 + 2)
Private Const IP_DEST_HOST_UNREACHABLE As Long = (11000 + 3)
Private Const IP_DEST_PROT_UNREACHABLE As Long = (11000 + 4)
Private Const IP_DEST_PORT_UNREACHABLE As Long = (11000 + 5)
Private Const IP_NO_RESOURCES As Long = (11000 + 6)
Private Const IP_BAD_OPTION As Long = (11000 + 7)
Private Const IP_HW_ERROR As Long = (11000 + 8)
Private Const IP_PACKET_TOO_BIG As Long = (11000 + 9)
Private Const IP_REQ_TIMED_OUT As Long = (11000 + 10)
Private Const IP_BAD_REQ As Long = (11000 + 11)
Private Const IP_BAD_ROUTE As Long = (11000 + 12)
Private Const IP_TTL_EXPIRED_TRANSIT As Long = (11000 + 13)
Private Const IP_TTL_EXPIRED_REASSEM As Long = (11000 + 14)
Private Const IP_PARAM_PROBLEM As Long = (11000 + 15)
Private Const IP_SOURCE_QUENCH As Long = (11000 + 16)
Private Const IP_OPTION_TOO_BIG As Long = (11000 + 17)
Private Const IP_BAD_DESTINATION As Long = (11000 + 18)
Private Const IP_ADDR_DELETED As Long = (11000 + 19)
Private Const IP_SPEC_MTU_CHANGE As Long = (11000 + 20)
Private Const IP_MTU_CHANGE As Long = (11000 + 21)
Private Const IP_UNLOAD As Long = (11000 + 22)
Private Const IP_ADDR_ADDED As Long = (11000 + 23)
Private Const IP_GENERAL_FAILURE As Long = (11000 + 50)
Private Const MAX_IP_STATUS As Long = (11000 + 50)
Private Const IP_PENDING As Long = (11000 + 255)
Private Const PING_TIMEOUT As Long = 500
Private Const WS_VERSION_REQD As Long = &H101
Private Const MIN_SOCKETS_REQD As Long = 1
Private Const SOCKET_ERROR As Long = -1
Private Const INADDR_NONE As Long = &HFFFFFFFF
Private Const MAX_WSADescription As Long = 256
Private Const MAX_WSASYSStatus As Long = 128
Public Type ICMP_OPTIONS
Ttl As Byte
Tos As Byte
Flags As Byte
OptionsSize As Byte
OptionsData As Long
End Type
Private Type ICMP_ECHO_REPLY
Address As Long
Status As Long
RoundTripTime As Long
DataSize As Long 'formerly integer
'Reserved As Integer
DataPointer As Long
Options As ICMP_OPTIONS
Data As String * 250
End Type
Private Type WSADATA
wVersion As Integer
wHighVersion As Integer
szDescription(0 To MAX_WSADescription) As Byte
szSystemStatus(0 To MAX_WSASYSStatus) As Byte
wMaxSockets As Long
wMaxUDPDG As Long
dwVendorInfo As Long
End Type
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Private Declare Function IcmpCloseHandle Lib "icmp.dll" _
(ByVal IcmpHandle As Long) As Long
Private Declare Function IcmpSendEcho Lib "icmp.dll" _
(ByVal IcmpHandle As Long, _
ByVal DestinationAddress As Long, _
ByVal RequestData As String, _
ByVal RequestSize As Long, _
ByVal RequestOptions As Long, _
ReplyBuffer As ICMP_ECHO_REPLY, _
ByVal ReplySize As Long, _
ByVal Timeout As Long) As Long
Private Declare Function WSAGetLastError Lib "wsock32" () As Long
Private Declare Function WSAStartup Lib "wsock32" _
(ByVal wVersionRequired As Long, _
lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "wsock32" () As Long
Private Declare Function gethostname Lib "wsock32" _
(ByVal szHost As String, _
ByVal dwHostLen As Long) As Long
Private Declare Function gethostbyname Lib "wsock32" _
(ByVal szHost As String) As Long
Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(xDest As Any, _
xSource As Any, _
ByVal nbytes As Long)
Private Declare Function inet_addr Lib "wsock32" _
(ByVal s As String) As Long
Private ECHO As ICMP_ECHO_REPLY
Dim StatusCode As String
Dim Address As String
Dim RTT As Long
Dim Size As Long
Dim ReceiveData As String
Dim Pointer As Long
Public Function Ping(IPAddress, Content)
Dim pos As Long
Dim success As Long
If SocketsInitialize() Then
'ping the IP by passing the address,
'text to send, and the ECHO structure.
success = Pinging((IPAddress), (Content), ECHO)
'display the results
StatusCode = GetStatusCode(success)
Address = "" & ECHO.Address
RTT = ECHO.RoundTripTime
Size = ECHO.DataSize
If Left$(ECHO.Data, 1) <> Chr$(0) Then
pos = InStr(ECHO.Data, Chr$(0))
ReceiveData = Left$(ECHO.Data, pos - 1)
End If
Pointer = ECHO.DataPointer
SocketsCleanup
End If
Ping = StatusCode
End Function
Public Function GetStatusCode(Status As Long) As String
Dim msg As String
Select Case Status
Case IP_SUCCESS: msg = "ip success"
Case INADDR_NONE: msg = "inet_addr: bad IP format"
Case IP_BUF_TOO_SMALL: msg = "ip buf too_small"
Case IP_DEST_NET_UNREACHABLE: msg = "ip dest net unreachable"
Case IP_DEST_HOST_UNREACHABLE: msg = "ip dest host unreachable"
Case IP_DEST_PROT_UNREACHABLE: msg = "ip dest prot unreachable"
Case IP_DEST_PORT_UNREACHABLE: msg = "ip dest port unreachable"
Case IP_NO_RESOURCES: msg = "ip no resources"
Case IP_BAD_OPTION: msg = "ip bad option"
Case IP_HW_ERROR: msg = "ip hw_error"
Case IP_PACKET_TOO_BIG: msg = "ip packet too_big"
Case IP_REQ_TIMED_OUT: msg = "ip req timed out"
Case IP_BAD_REQ: msg = "ip bad req"
Case IP_BAD_ROUTE: msg = "ip bad route"
Case IP_TTL_EXPIRED_TRANSIT: msg = "ip ttl expired transit"
Case IP_TTL_EXPIRED_REASSEM: msg = "ip ttl expired reassem"
Case IP_PARAM_PROBLEM: msg = "ip param_problem"
Case IP_SOURCE_QUENCH: msg = "ip source quench"
Case IP_OPTION_TOO_BIG: msg = "ip option too_big"
Case IP_BAD_DESTINATION: msg = "ip bad destination"
Case IP_ADDR_DELETED: msg = "ip addr deleted"
Case IP_SPEC_MTU_CHANGE: msg = "ip spec mtu change"
Case IP_MTU_CHANGE: msg = "ip mtu_change"
Case IP_UNLOAD: msg = "ip unload"
Case IP_ADDR_ADDED: msg = "ip addr added"
Case IP_GENERAL_FAILURE: msg = "ip general failure"
Case IP_PENDING: msg = "ip pending"
Case PING_TIMEOUT: msg = "ping timeout"
Case Else: msg = "unknown msg returned"
End Select
GetStatusCode = CStr(Status) & " [ " & msg & " ]"
End Function
Private Function Pinging(sAddress As String, _
sDataToSend As String, _
ECHO As ICMP_ECHO_REPLY) As Long
'If Ping succeeds :
'.RoundTripTime = time in ms for the ping to complete,
'.Data is the data returned (NULL terminated)
'.Address is the Ip address that actually replied
'.DataSize is the size of the string in .Data
'.Status will be 0
'
'If Ping fails .Status will be the error code
Dim hPort As Long
Dim dwAddress As Long
'convert the address into a long representation
dwAddress = inet_addr(sAddress)
'if a valid address..
If dwAddress <> INADDR_NONE Then
'open a port
hPort = IcmpCreateFile()
'and if successful,
If hPort Then
'ping it.
Call IcmpSendEcho(hPort, _
dwAddress, _
sDataToSend, _
Len(sDataToSend), _
0, _
ECHO, _
Len(ECHO), _
PING_TIMEOUT)
'return the status as ping succes and close
Pinging = ECHO.Status
Call IcmpCloseHandle(hPort)
End If
Else:
'the address format was probably invalid
Pinging = INADDR_NONE
End If
End Function
Private Sub SocketsCleanup()
If WSACleanup() <> 0 Then
MsgBox "Windows Sockets error occurred in Cleanup.", vbExclamation
End If
End Sub
Private Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
SocketsInitialize = WSAStartup(WS_VERSION_REQD, WSAD) = IP_SUCCESS
End Function
How do I check the disk space of a remote computer within my domain?
Hey, Programming Guy! How do I check the disk space of a remote computer within my domain?
- Leonardo
Leonardo, you can use the WMIService's Win32_LogicalDisk. Say, if you want to check the size of the c:, you can use the following query:
Thus, if you want to check the drive c's diskspace remotely, the following code should be convenient for you:
Or, you can wrap everything together to become a command. Save the following code into a file with filename: disspace.wsf:
- Leonardo
 
Leonardo, you can use the WMIService's Win32_LogicalDisk. Say, if you want to check the size of the c:, you can use the following query:
Select * from Win32_LogicalDisk Where DeviceID = 'C:'
Thus, if you want to check the drive c's diskspace remotely, the following code should be convenient for you:
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objWbemLocator.ConnectServer(strComputer, "root\cimv2",strUser,strPass)
Set colOSName = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DeviceID = 'C:'")
For Each objItem in colOSName
WScript.Echo strComputer & ": " & objItem.Caption
Next
Or, you can wrap everything together to become a command. Save the following code into a file with filename: disspace.wsf:
<?xml version="1.0"?>
<package>
<job>
<script language="vbscript">
<![CDATA[
syntax = false
If WScript.arguments.count = 3 Then
strComputer = WScript.arguments(0)
strUser = WScript.arguments(1)
strPass = WScript.arguments(2)
syntax = True
ElseIf WScript.arguments.count = 1 Then
strComputer = WScript.arguments(0)
WScript.StdOut.write "User name:"
strUser = WScript.StdIn.ReadLine
WScript.StdOut.write "Password:"
strPass = WScript.StdIn.ReadLine
syntax = True
ElseIf WScript.arguments.count = 0 Then
WScript.StdOut.Write "Computer Name or IP:"
strComputer = WScript.StdIn.ReadLine
WScript.StdOut.write "User name:"
strUser = WScript.StdIn.ReadLine
WScript.StdOut.write "Password:"
strPass = WScript.StdIn.ReadLine
syntax = True
End If
If syntax Then
Set objWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objWbemLocator.ConnectServer(strComputer, "root\cimv2",strUser,strPass)
Set colOSName = objWMIService.ExecQuery("Select * from Win32_LogicalDisk Where DeviceID = 'C:'")
For Each objItem in colOSName
WScript.Echo strComputer & ": " & objItem.Caption
Next
Else
WScript.Echo "diskspace.wsf [ip] [user] [password]"
End If
]]>
</script>
</job>
</package>
Tuesday, July 14, 2009
How can I ping an ip address remotely by ASP
Hey, Programming Guy! How can I ping an ip address remotely by ASP from an IIS server?
- Jennifer
Hi, Jennifer, we can use WScript.Shell to run a shell command to achieve this. Suppose the IIS have the access right for ping.exe which is located at system32 path inside windows. You can use the following VBScript by setting the id as a parameter to the destinated computer:
- Jennifer
 
Hi, Jennifer, we can use WScript.Shell to run a shell command to achieve this. Suppose the IIS have the access right for ping.exe which is located at system32 path inside windows. You can use the following VBScript by setting the id as a parameter to the destinated computer:
<%
url = Trim(Request("ip"))
if url<>"" Then
Set objWShell = CreateObject("WScript.Shell")
Set objCmd = objWShell.Exec("ping " & url)
strPResult = objCmd.StdOut.Readall()
set objCmd = nothing: Set objWShell = nothing
strStatus = "offline"
if InStr(strPResult,"TTL=")>0 then strStatus = "online"
response.write strStatus
End If
%>
Latest Resources
Other Resources
Latest Blog Articles from Cloudgen Javascript Laboratory
Latest Blog Articles from Cloudgen spaces
- Cloudgen PBWorks
- Cloudgen Demonstration Center I
- Cloudgen twitter
- Cloudgen spaces
- Cloudgen programming blog: Hey,Programming Guy
- Cloudgen Javascript Laboratory
- Cloudgen Javascript Laboratory (Chinese Version)
- Cloudgen Facebook
- Cloudgen byteMyCode
- Cloudgen Google site
- My opera, Cloudgen current project
- Fans of Classic ASP (FOCA) by Cloudgen
Latest Blog Articles from Cloudgen Javascript Laboratory
- July 15, 2009: "One line properties setter and getter for Javascript class"
- July 14, 2009: "A javascript class for retrieving query string"
- July 7, 2009: "Load a cross-server javascript dynamically"
- July 6, 2009: "Make a javascript function lazy"
- July 6, 2009: "Add property to Javascript Object in "jQuery" style"
Latest Blog Articles from Cloudgen spaces
Wednesday, July 1, 2009
How can I write a VB 6.0 program showing icons in Systray?
Hey, Programming Guy! How can I write a program showing an icon in system tray automatically involve the notepad.exe to open a file, sending keys to close the notepad and check if any virus such as W32.virut.CF has modified an html file?
- K.O.
- K.O.
Option Explicit
Dim Counter
' Type passed to Shell_NotifyIcon
Private Type NotifyIconData
Size As Long
Handle As Long
ID As Long
Flags As Long
CallBackMessage As Long
Icon As Long
Tip As String * 64
End Type
' Constants for managing System Tray tasks, foudn in shellapi.h
Private Const AddIcon = &H0
Private Const ModifyIcon = &H1
Private Const DeleteIcon = &H2
Private Const WM_MOUSEMOVE = &H200
Private Const WM_LBUTTONDBLCLK = &H203
Private Const WM_LBUTTONDOWN = &H201
Private Const WM_LBUTTONUP = &H202
Private Const WM_RBUTTONDBLCLK = &H206
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_RBUTTONUP = &H205
Private Const MessageFlag = &H1
Private Const IconFlag = &H2
Private Const TipFlag = &H4
Private Declare Function Shell_NotifyIcon _
Lib "shell32" Alias "Shell_NotifyIconA" ( _
ByVal Message As Long, Data As NotifyIconData) As Boolean
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" _
Alias "PostMessageA" _
(ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Long) As Long
Const WM_CLOSE = &H10
Private Data As NotifyIconData
Private Sub Form_Load()
If App.PrevInstance Then
MsgBox "The checking has been started alreay.", vbCritical
End
End If
Counter = 10
AddIconToTray
Visible = False
End Sub
Private Sub Form_Terminate()
DeleteIconFromTray
End Sub
Private Sub AddIconToTray()
Data.Size = Len(Data)
Data.Handle = hwnd
Data.ID = vbNull
Data.Flags = IconFlag Or TipFlag Or MessageFlag
Data.CallBackMessage = WM_MOUSEMOVE
Data.Icon = Icon
Data.Tip = "Checking Files" & vbNullChar
Call Shell_NotifyIcon(AddIcon, Data)
End Sub
Private Sub DeleteIconFromTray()
Call Shell_NotifyIcon(DeleteIcon, Data)
End Sub
Private Sub Form_MouseMove(Button As Integer, _
Shift As Integer, X As Single, Y As Single)
Dim Message As Long
Message = X / Screen.TwipsPerPixelX
Select Case Message
Case WM_LBUTTONDBLCLK
Visible = Not Visible
WindowState = Abs(Not Visible)
End Select
End Sub
Private Sub Timer1_Timer()
Dim UIHandle As Long
Dim tmp As String, content As String
Dim n As Integer
Counter = Counter - 1
If Counter = 0 Then
Timer1.Interval = 60000
Counter = 10
Shell "Notepad.exe c:\test.html", vbNormalFocus
UIHandle = FindWindow(vbNullString, "test.html - Notepad")
PostMessage UIHandle, WM_CLOSE, 0&, 0&
content = ""
n = FreeFile
Open "C:\test.html" For Input As #n
Do While Not EOF(1)
Line Input #n, tmp
content = content & tmp
Loop
Close #n
If InStr(1, content, "<" & "iframe") > 0 Then MsgBox "Virus found! Please contact IT Staff!", vbCritical, "Virus Checker"
End If
End Sub
Subscribe to:
Comments (Atom)