标题: [问题求助] [已解决]vbs怎样修改本地账户属性 ,使其密码永不过期 [打印本页]
作者: gmwd18 时间: 2012-5-28 12:34 标题: [已解决]vbs怎样修改本地账户属性 ,使其密码永不过期
本帖最后由 gmwd18 于 2012-6-4 14:29 编辑
小弟在网上搜了一段代码,可以实现修改用户帐号的属性,设置其密码永不过期,但是这个代码有点问题,就是会将所有本地账户的属性都修改为密码永不过期,我对vbs不是很懂,处于刚入门阶段,麻烦各位高手帮忙看下,怎样可以只修改单个用户的账户属性,不胜感谢!
代码如下:- Dim users
- Set users = GetObject("winmgmts:").Instancesof("Win32_useraccount")
- For Each user In users
- user.PasswordExpires = False
- user.Put_()
- Next
复制代码
作者: broly 时间: 2012-5-28 12:57
- Dim users,response
-
- Set users = GetObject("winmgmts:").Instancesof("Win32_useraccount")
-
- For Each user In users
-
- response = MsgBox("是否对帐号:"&user.name&" 进行设置?",vbYesNo,"请选择")
- If response = vbyes Then
- user.PasswordExpires = False
- user.Put_()
- End If
-
- Next
复制代码
作者: gawk 时间: 2012-5-28 13:37
- net user gmwd18 /expires:never
复制代码
批处理用户表示鸭梨不大
作者: gmwd18 时间: 2012-5-28 15:26
回复 3# gawk
额,这个是 账户过期的,和密码不过期 不一样的~~
作者: gmwd18 时间: 2012-5-28 16:14
回复 2# broly
谢谢,如果我只想为一个指定用户修改属性,该怎么写,如果用户多的话上面的脚本要点好多次~
作者: broly 时间: 2012-5-28 16:53
- Dim users
-
- Set users = GetObject("winmgmts:").Instancesof("Win32_useraccount")
-
- For Each user In users
- If strcomp(lcase(user.name),lcase("Administrator"))=0 Then
- user.PasswordExpires = False
- user.Put_()
- End If
-
- Next
复制代码
作者: powerbat 时间: 2012-5-28 23:16
补充两个方法:- '用下面的users代替你原来的users
- Set users = GetObject("winmgmts:").ExecQuery("select * from Win32_UserAccount where name='broly'")
复制代码
- UserDomain = CreateObject("WScript.Network").UserDomain
- set user = GetObject("winmgmts:Win32_UserAccount.domain='"&UserDomain&"',name='broly'")
- user.PasswordExpires = False
- user.Put_()
复制代码
作者: gmwd18 时间: 2012-5-30 12:07
回复 7# powerbat
我 把这几个方法都验证了一下,发现都会报错,你的方法一在user.Put_()这行报错见图1
作者: gmwd18 时间: 2012-5-30 12:18
回复 7# powerbat
你的方法2在 user.PasswordExpires = False这行报错,见图2[attachimg]5350[/attachimg
broly的方法1和2在user.Put_()这行报错见图2
我想是不是user.Put_()这个方法不对呢,这条语句的作用是什么呢,求解答~
作者: powerbat 时间: 2012-5-30 13:12
1、语法错误你都能整出来?
2、更改帐户需要管理员权限,不用多说吧?
作者: powerbat 时间: 2012-5-30 13:17
用wmic更简单(管理员权限是前提):- wmic path Win32_UserAccount.Name='broly' set PasswordExpires=false
复制代码
作者: gmwd18 时间: 2012-6-4 14:28
回复 10# powerbat
谢谢,问题已解决,就是权限的问题,我使用的用户是在administrators组及远程桌面用户组里面,我换回administrator用户就可以执行了,wmic的方法确实很方便,看来这块得多多向你们学习,再次感谢!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |