找回密码
 加入
搜索
查看: 2111|回复: 5

添加Windows用户如何使密码不过期?

[复制链接]
发表于 2008-9-10 08:22:30 | 显示全部楼层 |阅读模式
用下面的一段代码可以向Windows添加用户,可是如何使新加的用户密码不会过期?



Func _Add_LocalUser($sNewUsrName, $sNewUsrPass, $sNewUsrFull = "", $sNewUsrDesc = "")

;;;;;检查用户名是否合法
If StringStripWS($sNewUsrName,8) = "" Then
        MsgBox(16,"Error","Invalid User Name !")
        Return False
EndIf

;;;;;;;检测用户是否已存在!
TrayTip("Working Hard....","Checking User ....",5,1)
$isWorking = True
$strComputer="."
$colLocalComputer = ObjGet("WinNT://" & $strComputer)        
        If @error Then
                        MsgBox(16,"Error","Can Not Get The Object(WinNT://) !"
                        $isWorking = False
                        Return False
        EndIf
Dim $user[1]=["user"]
$colLocalComputer.Filter = $user
For $objuser In $colLocalComputer
        If $objuser.Name = $sNewUsrName Then
                TrayTip("Error","User "&$objuser.Name&" Already Exist !",3,3)
                MsgBox(16,"Error","User "&$objuser.Name&" Already Exist !")        
                $isWorking = False
                Return
        EndIf
        
Next

;;;;;;;添加用户
TrayTip("Working Hard....","Adding User "&$sNewUsrName&" ....",10,1)

    Local $colLocalComputer, $objUser 
    $colLocalComputer = ObjGet("WinNT://" & @ComputerName)
                If @error Then
                        TrayTip("Error","Can Not Get The Object(WinNT://) !",5,3)
                        MsgBox(16,"Error","Can Not Get The Object(WinNT://) !")
                        $isWorking = False
                        Return False
                EndIf
    $objUser = $colLocalComputer.Create ("user", $sNewUsrName)
    $objUser.SetPassword ($sNewUsrPass)
    $objUser.Put ("Fullname", $sNewUsrFull)
    $objUser.Put ("Description", $sNewUsrDesc)
    $objUser.SetInfo

TrayTip("Working Hard....","User "&$user&" Added !",3,1)
$isWorking = False
;TrayTip("Working Hard....","",1)
Return True

EndFunc


[ 本帖最后由 hehui 于 2008-9-16 10:36 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2008-9-10 15:07:52 | 显示全部楼层
還沒有人?
 楼主| 发表于 2008-9-11 16:01:45 | 显示全部楼层
还是没有人来?
发表于 2008-9-11 16:54:30 | 显示全部楼层
VBS脚本设置用户密码永不过期
strComputer = "."
Dim user
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
  Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount")
For Each user1 In colItems
If user1.Name = "xxxxxx" Then
Set objUser = GetObject("WinNT://" & strComputer & "/" & user1.name)
If Not objUser.UserFlags AND ADS_UF_DONT_EXPIRE_PASSWD Then
  objPasswordNoExpire = objUser.UserFlags XOR ADS_UF_DONT_EXPIRE_PASSWD
  objUser.Put "userFlags", objPasswordNoExpire
  objUser.SetInfo
End If
End If
Next
 楼主| 发表于 2008-9-16 10:36:29 | 显示全部楼层
已解决!
谢楼上的朋友!
加上一条:
$objUser.Put ("userFlags", 0x10000)
发表于 2012-3-18 01:39:54 | 显示全部楼层
很好很强大
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-19 10:18 , Processed in 0.090283 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表