查询/新建/修改本地用户和组
通过ADSI新建用户user2:
1 #创建新用户,创建完成后的新用户不隶属于任何组 2 $computerName=$env:computername 3 #定义用户名、密码、描述信息 4 $username="user2" 5 $userpass="password" 6 $userdesc="description" 7 $ADSI = [ADSI]"WinNT://$computerName" 8 $u=$ADSI.create("user",$username) 9 $u.SetPassword($userpass) 10 $u.SetInfo() #修改密码立即生效,但此处不可省略,否则设置description的时候会失败,因为该用户还不存在。如果不设置Description属性则可省略 11 $u.description=$userdesc 12 $u.SetInfo()
重置账户密码(为用户cmr重置密码为password.123):
1 $computerName=$env:computername 2 $username="cmr" 3 $u = [ADSI]"WinNT://$computerName/$userName,User" 4 $userpass="password.123" 5 $u.SetPassword($userpass) 6 $u.SetInfo() #此处不可省略
通过批处理新建用户(用户不能更改密码):
1 net user user password /Passwordchg:no /ADD /Comment:"For Update"
通过WMI设置账户密码永不过期:
1 #设置用户账户属性。win32_useraccount中的Description属性为Read-Only,所以无法在此处进行设置 2 #$UserName = "puser" 3 #$UserAccount = gwmi win32_useraccount | ? {$_.name -eq $UserName} 4 $UserAccount = gwmi win32_useraccount -Filter " name = '$($UserName)' " 5 $UserAccount.PasswordExpires = $false #设置密码永不过期 6 $UserAccount.PasswordChangeable = $false #用户不能更改密码 7 $UserAccount.put()
新建用户,并设置密码永不过期:
$username = "user01" $password = "pass01" net.exe user $username $password /Passwordchg:no /ADD /Comment:"account desrb" $UserAccount = gwmi win32_useraccount -Filter " name = '$($UserName)' " $UserAccount.PasswordExpires = $false #设置密码永不过期 $UserAccount.put()
#查询单个用户信息
1 #查询单个用户信息 2 $computerName=$env:computername 3 $username="user2" 4 $userinfo = [ADSI]"WinNT://$computerName/$userName,User"
#将用户移除/加入到某个组
1 #将用户从Power Users组中移除,然后加入到Administrators组中,不需要Setinfo(),即刻生效 2 [ADSI]$power="WinNT://CHI-FP01/Power Users,group" 3 $power.Remove($u.Path) #新建完成的用户为 $u 4 [ADSI]$Admins="WinNT://CHI-FP01/Administrators,group" 5 $Admins.Add($u.path)
批处理:
net.exe localgroup Administrators admin /Add #将用户admin加入到Administrators组中
#查询本地组信息:
gwmi win32_group
#查询本地用户及其状态
Get-WmiObject -Class Win32_UserAccount -Namespace "root\cimv2" -Filter "LocalAccount='$True'"| % {$_ |select caption,disabled}