54SA.COM|专注于系统运维管理,为中国SA提供动力!

54SA.COM|系统运维网

系统管理员之家Banner
当前位置: 主页 > Windows > 服务器 > 域服务器 >

在NT移植期间改变用户帐户的属性

分享到:
时间:2010-10-28 21:27来源:网络 作者:COCO

  在NT移植期间改变用户帐户的属性
  
  在把用户从NT的备份控制器向Windows 2000移植的过程中,我们需要改变用户的资料档案的路径。这个脚本是由其它的代码的片断以及一些巧妙的方法综合而成的。这使得修改其它用户的属性变得相当容易。
  
  ===================================================
  ' Name: moduser.vbs
  ' Description: Modify profile path of user accounts.
  
  Only those with a current roaming profile are udpated.
  ' Original: 13 Jun 05
  '
  '=================================================
  
  Set objConnection = CreateObject("ADODB.Connection")
  
  objConnection.Open "Provider=ADsDSOObject;"
  
  Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConnection
  
  WScript.StdOut.WriteLine "Enter search criteria.
  
  Wildcards can be used."
  strUserName = WScript.StdIn.ReadLine
  WScript.Echo
  
  objCommand.CommandText = _
  "<LDAP://dc=,dc=>;"
  
  & _ "(&(objectCategory=user)(sAMAccountName=" & strUserName & "));" & _
  
  "sAMAccountName,profilePath,ADsPath;subtree"
  
  Set objRecordSet = objCommand.Execute
  
  If objRecordset.EOF Then
  Wscript.Echo "No user account(s) found with the specified criteria."
  Else
  Wscript.Echo "User account(s) with the specified criteria:"
  While Not objRecordset.EOF
  Wscript.Echo objRecordset.Fields("sAMAccountName") & " : " & _
  objRecordset.Fields("profilePath")
  objRecordset.MoveNext
  WEnd
  End If
  WScript.Echo
  
  strNewProfPath = ""
  While strNewProfPath = ""
  WScript.StdOut.WriteLine "Enter new profile server and share: "
  StrNewProfPath = WScript.StdIn.ReadLine WEnd WScript.Echo
  
  ' Refresh record set to apply new path.
  Set objRecordSet = objCommand.Execute
  
  While Not objRecordset.EOF
  If IsNull(objRecordSet.Fields("profilePath")) Then
  WScript.Echo objRecordSet.Fields("sAMAccountName") & " has no roaming profile."
  WScript.Echo
  Else
  strADsPath = objRecordSet.Fields("ADsPath")
  Set objUser = GetObject(strADsPath)
  objUser.Put "profilePath", strNewProfPath & "" & _
  objRecordset.Fields("sAMAccountName") & ".USR"
  objUser.SetInfo
  End If
  objRecordset.MoveNext
  WEnd
  
  ' Refresh record set to view new profile path.
  Set objRecordSet = objCommand.Execute
  
  WScript.Echo "User account(s) with the new target data:"
  While Not objRecordset.EOF
  'WScript.Echo objRecordSet.Fields("profilePath")
  If objRecordSet.Fields("profilePath") <> " " Then
  Wscript.Echo objRecordset.Fields("sAMAccountName") & " : " & _
  objRecordset.Fields("profilePath")
  End If
  objRecordset.MoveNext
  WEnd
  
  objConnection.Close

[责任编辑:Lavy]

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名:
最新评论 进入详细评论页>>