科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道在NT移植期间改变用户帐户的属性

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在把用户从NT的备份域控制器向Windows 2000移植的过程中,我们需要改变用户的资料档案的路径。这个脚本是由其它的代码的片断以及一些巧妙的方法综合而成的。

来源:IT试验室 2008年4月2日

关键字: 活动目录 微软 操作系统 Windows

  • 评论
  • 分享微博
  • 分享邮件
    在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
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章