<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:
Posts (Atom)