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

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

在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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航