有很多客户的网络环境没有AD域,服务器都是属于工作组的。然而管理员账号的密码需要定期修改,每次修改都需要花很多时间做重复的烦人的工作。所以,笔者写了一个VBS脚本,只要把要将改管理员密码的服务器写入到一个TXT文件中,然后放在脚本所在目录下,双击运行脚本,输入要更改的用户名和密码,即可完成这些任务,大大提高了运维工作效率。 【正文】一 脚本代码如下'设置输入用户名和密码<>
'如果提示“找不到用户名”则为输入的用户名不存在 dim username,password username=InputBox ("请输入要修改密码的用户名: ") NewPassword=InputBox("请输入新的密码: ") IF username=Empty or NewPassword=Empty Then '判断用户名和密码输入是否为空,为空则提示并退出脚本 Wscript.Echo "您输入的用户名或密码为空,请重新运行脚本输入。" Wscript.Quit End If Return=MsgBox ("您输入的用户名为:"&username&vbcrlf&vbcrlf&"即将要修改的新密码为:"&NewPassword&vbcrlf&vbcrlf&"取消修改密码请点击“取消”,继续请点击“确定”",VBOKCancel + vbQuestion+ vbDefaultButton2,"用户名密码修改提示") If Return=2 Then '判断用户点击的按钮,确定则继续修改密码,取消则退出脚本不修改密码 Wscript.Quit End If Set FSO=createObject("scripting.FileSystemObject") If FSO.FileExists("ServersIP.txt") Then Set IPFile=FSO.OpenTextFile("ServersIP.txt",1,false) '循环读取ServersIP.txt的每一行内容,获取要修改密码的计算机 Do While IPFile.AtendOfStream<>true strComputer=IPFile.ReadLine() Call CPword(strComputer,UserName,NewPassword) '调用密码修改函数 Loop Else Wscript.Echo "未在脚本所在目录找到ServersIP.txt文件,请创建并输入计算机IP地址(一个IP占一行)" '如果不存在ServersIP.txt则提示并退出脚本 Wscript.Quit End If '清除缓存 IPFile.Close Set FSO=nothing Set IPFile=nothing Function CPword(strComputer,UserName,NewPassword) '密码修改函数 Set objUser=GetObject("WinNT://" & strComputer & "/"&UserName&",user") '修改账户名为administrator的密码 objUser.SetPassword NewPassword '更改为新密码 objUser.SetInfo '账号的信息对象 Wscript.echo "密码修改完成,请测试账户是否可以登录!" End Function 补充说明: 以上代码可复制粘贴到txt文档,并另存为vbs文件即可。 二 脚本使用说明2.1 在脚本所在目录新建名为“ServersIP.txt”的文本文件,然后将要修改账户密码的服务器的IP(或者主机名)以一个一行的格式写入到该文件中,保存退出;2.2 双击运行脚本,然后弹出输入框要求键入要修改的管理员账户名,然后点击“确定”;2.3 接着弹出另一个输入框,要求键入该账户的新的“密码”,然后点击“确定”;2.4 接着会提示用户要修改的用户名和密码,进一步确认,确认无误则点击“确定”,取消修改则点击“取消”;2.5 修改完后提示,完成修改! |