[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]vbs怎样修改本地账户属性 ,使其密码永不过期

本帖最后由 gmwd18 于 2012-6-4 14:29 编辑

小弟在网上搜了一段代码,可以实现修改用户帐号的属性,设置其密码永不过期,但是这个代码有点问题,就是会将所有本地账户的属性都修改为密码永不过期,我对vbs不是很懂,处于刚入门阶段,麻烦各位高手帮忙看下,怎样可以只修改单个用户的账户属性,不胜感谢!
代码如下:
  1. Dim users
  2. Set users = GetObject("winmgmts:").Instancesof("Win32_useraccount")
  3. For Each user In users
  4. user.PasswordExpires = False  
  5. user.Put_()
  6. Next
复制代码
1

评分人数

    • zqz0012005: 感谢给帖子标题标注[已解决]字样PB + 2

  1. Dim users,response
  2. Set users = GetObject("winmgmts:").Instancesof("Win32_useraccount")
  3. For Each user In users
  4. response = MsgBox("是否对帐号:"&user.name&" 进行设置?",vbYesNo,"请选择")
  5. If response = vbyes Then
  6. user.PasswordExpires = False  
  7. user.Put_()
  8. End If
  9. Next
复制代码
---学无止境---

TOP

  1. net user gmwd18 /expires:never
复制代码
批处理用户表示鸭梨不大

TOP

回复 3# gawk


   额,这个是 账户过期的,和密码不过期 不一样的~~

TOP

回复 2# broly


    谢谢,如果我只想为一个指定用户修改属性,该怎么写,如果用户多的话上面的脚本要点好多次~

TOP

  1. Dim users
  2. Set users = GetObject("winmgmts:").Instancesof("Win32_useraccount")
  3. For Each user In users
  4. If strcomp(lcase(user.name),lcase("Administrator"))=0 Then
  5.         user.PasswordExpires = False  
  6.         user.Put_()
  7. End If
  8. Next
复制代码
1

评分人数

---学无止境---

TOP

补充两个方法:
  1. '用下面的users代替你原来的users
  2. Set users = GetObject("winmgmts:").ExecQuery("select * from Win32_UserAccount where name='broly'")
复制代码
  1. UserDomain = CreateObject("WScript.Network").UserDomain
  2. set user = GetObject("winmgmts:Win32_UserAccount.domain='"&UserDomain&"',name='broly'")
  3. user.PasswordExpires = False  
  4. user.Put_()
复制代码
1

评分人数

TOP

回复 7# powerbat

我 把这几个方法都验证了一下,发现都会报错,你的方法一在user.Put_()这行报错见图1

TOP

回复 7# powerbat

你的方法2在 user.PasswordExpires = False这行报错,见图2[attachimg]5350[/attachimg
broly的方法1和2在user.Put_()这行报错见图2
我想是不是user.Put_()这个方法不对呢,这条语句的作用是什么呢,求解答~

TOP

1、语法错误你都能整出来?

2、更改帐户需要管理员权限,不用多说吧?

TOP

用wmic更简单(管理员权限是前提):
  1. wmic path Win32_UserAccount.Name='broly' set PasswordExpires=false
复制代码
1

评分人数

TOP

回复 10# powerbat


    谢谢,问题已解决,就是权限的问题,我使用的用户是在administrators组及远程桌面用户组里面,我换回administrator用户就可以执行了,wmic的方法确实很方便,看来这块得多多向你们学习,再次感谢!

TOP

返回列表