在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] |