<!--#include file="md5.ASP"--> <!--md5源碼見
http://www.aspprogram.cn/soft.ASP?id=39-->
<%
'**************************************************
'* 作者:awaysrain(絕對零度) *
'* 完成時間:2003-10-10 *
'* 測試環境:WIN2000SERVER,SERV-U 4.2-beta版 *
'**************************************************
Dim iniPath,iniFileName,iniStr,tmpStr,n
Dim userName,passWord,tmp
userName = "myfso222" '用戶名
passWord = "awaysrain" '密碼
tmp = "ai" '隨機生成兩個小寫字母,(應該是隨機生成的,但是我這裡省略了)
passWord = tmp & UCase(md5(passWord)) '密碼荕D5加密過的,用動網的MD5加密程序,具體算法是隨機生成兩位小寫字母,然後和你的密碼連接後進行MD5加密,把隨機生成的密碼和MD5加密後的結果作為密碼存放,舉個例子來說比如下面的awaysrain用戶,我的密碼為awaysrain先隨機生成兩位小寫字母ai,和我的密碼awaysrain連接得到aiawaysrain把aiawaysrain進行MD5加密得到9118BFD94A9CE9CF37AE5BAA947ED596把隨機生成兩位小寫字母ai和MD5加密後的結果9118BFD94A9CE9CF37AE5BAA947ED596連接得到密碼ai9118BFD94A9CE9CF37AE5BAA947ED596
iniPath="D:\Program Files\Serv-U" 'ini文件的路徑
iniFileName = "ServUDaemon.ini" 'ini的文件名
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set ServUIni = fso.OpenTextFile(iniPath & "\" & iniFileName,1,false)
iniStr = ""
n = 0
addedUserList = false
Set tf = fso.CreateTextFile(iniPath & "\" & iniFileName & "._awaysrain.tmp", True)
'生成新的臨時INI文件
Do While not ServUIni.AtEndOfStream
tmpStr = ServUIni.ReadLine
If Instr("awaysrain||" & tmpStr,"awaysrain||User")>0 Then
'記錄用戶原來的數量
n = n+1
End If
If Instr("awaysrain||" & tmpStr,"awaysrain||[USER=")>0 and not addedUserList Then
'往用戶列表的部分添加現在的用戶
n = n +1
tf.WriteLine("User" & n & "=" & userName & "|1|0")
addedUserList = true
End If
tf.WriteLine(tmpStr)
Loop
ServUIni.Close
'添加新用戶的信息,具體內容可以在SERV-U中新建用戶並對照INI文件
tf.WriteLine("[USER=" & userName & "|1]") '用戶名
tf.WriteLine("Password=" & passWord) '密碼
tf.WriteLine("HomeDir=e:\temp") '主目錄
tf.WriteLine("RelPaths=1") '是否鎖定用戶於主目錄
tf.WriteLine("MaxUsersLoginPerIP=1") '相同IP同時登錄數
tf.WriteLine("SpeedLimitDown=102400") '最大下載速度
tf.WriteLine("TimeOut=600") '空閒超時時間(秒)
tf.WriteLine("Access1=E:\Temp|RLP") '可訪問目錄,可以不是一個,比如 'Access2=E:\Temp1|RLP'
tf.Close
'--------------------備份原來的INI文件--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName)
f1.Copy (iniPath & "\" & iniFileName & "._awaysrain.bak")
f1.Delete
'--------------------把生成的臨時INI文件改為正式的INI--------------------------
Set f1 = fso.GetFile(iniPath & "\" & iniFileName & "._awaysrain.tmp")
f1.Copy (iniPath & "\" & iniFileName)
f1.Delete
Set fso = nothing
%>
注:以上代碼假設ServUDaemon.ini中的格式只有一個域並已經至少有一個用戶
測試的ServUDaemon.ini文件結構如下:
==================================
[Domain1]
User1=222|1|0
User2=myfso111|1|0
[USER=222|1]
PassWord=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0
HomeDir=E:\Temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso111|1]
PassWord=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
生成後的文件結構如下
==================================
[Domain1]
User1=222|1|0
User2=myfso111|1|0
User3=myfso222|1|0
[USER=222|1]
PassWord=hwB1ECF70CDAF5DAE2B981AE394EEFCDC0
HomeDir=E:\Temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso111|1]
PassWord=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP
[USER=myfso222|1]
PassWord=ai9118BFD94A9CE9CF37AE5BAA947ED596
HomeDir=e:\temp
RelPaths=1
TimeOut=600
Access1=E:\Temp|RLP