<!--#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 
 
