批处理系统管理之6 – 用户和localgroup组篇

对于 Windows 系统管理员来说,经常遇到的操作可能包括:

  • 进程

  • 服务

  • 注册表

  • 任务计划

  • 防火墙

  • 网络

  • 用户和组

  • 共享

  • FTP

1、基本命令实例

# 创建本地组 BatHomeAdmins

net localgroup BatHomeAdmins /add /comment:"The group of administrators"

# 创建本地组 BatHomeUsers

net localgroup BatHomeUsers /add

# 添加组的描述

net localgroup BatHomeUsers /comment:"The group of users"

# 删除组的描述

net localgroup BatHomeUsers /comment:""

# 创建本地用户 BatAdmName1 密码为 BatAdmPass1

net user BatAdmName1 BatAdmPass1 /add

# 创建本地用户 BatUsrName1 密码为 BatUsrPass1

net user BatUsrName1 BatUsrPass1 /add

# 创建本地用户 BatUsrName2 密码为 BatUsrPass2

net user BatUsrName2 BatUsrPass2 /add

# 把用户添加到一个组

net localgroup BatHomeAdmins BatAdmName1 /add
net localgroup BatHomeUsers BatUsrName1 /add
net localgroup BatHomeUsers BatUsrName2 /add

# 查看一个组里面有哪些用户

net localgroup BatHomeAdmins
net localgroup BatHomeUsers

# 从组里面删除一个用户

net localgroup BatHomeUsers BatUsrName2 /delete

# 删除本地组

net localgroup BatHomeAdmins /delete
net localgroup BatHomeUsers /delete

# 查看一个用户属于哪些组

net user BatAdmName1 | findstr /i /b "本地组成员"
net user BatUsrName1 | findstr /i /b "本地组成员"

# 查看用户列表

net users
wmic useraccount get name /value | findstr "="

# 查看某个用户的详细信息

net user BatAdmName1
wmic useraccount where name='BatAdmName1' get * /value

# 添加用户的描述

net user BatAdmName1 /comment:"The administrator user"

# 删除用户的描述

net user BatAdmName1 /comment:""

# 设置一个用户的全名

net user BatAdmName1 /fullname:"Guan Liyuan"

# 更改用户的密码

net user BatAdmName1 BatAdmPassNew

# 把用户的密码更改为空

net user BatAdmName1 ""

# 禁用一个用户

net user BatAdmName1 /active:no

# 启用一个用户

net user BatAdmName1 /active:yes

# 设置用户可以登录的时间为周一到周五早九晚六

net user BatAdmName1 /time:M-F,09:00-18:00

# 设置用户随时可以登录

net user BatAdmName1 /time:all

# 删除一个用户

net user BatUsrName2 /delete

# 获取某个用户的SID

wmic useraccount where name='BatUsrName1' get SID /value

# 设置某个用户下次登录须修改密码

net user BatUsrName1 /logonpasswordchg:yes

# 取消某个用户下次登录须修改密码

net user BatUsrName1 /logonpasswordchg:no

# 设置某个用户的密码永不过期

wmic useraccount where name='BatUsrName1' set PasswordExpires=false

# 设置某个用户不能更改密码

wmic useraccount where name='BatUsrName1' set PasswordChangeable=false
net user BatUsrName1 /passwordchg:no

# 设置某个用户可以更改密码

wmic useraccount where name='BatUsrName1' set PasswordChangeable=true
net user BatUsrName1 /passwordchg:yes

# 更改用户名

wmic useraccount where name='BatUsrName1' call rename BatUsrNameNew

2、批处理脚本实例

2.1 BAT + net user 导出用户详细信息

@echo off
cd /d "%~dp0"
(for /f "skip=4 tokens=1-3" %%a in ('net user ^| findstr /v /i "命令成功完成。"') do (
    if "%%a" neq "" (
        net user %%a
        if "%%b" neq "" (
            net user %%b
            if "%%c" neq "" (
                net user %%c
            )
        )
    )
))>"UserDetail_1.txt"

2.2 BAT + WMIC + net user 导出用户详细信息

@echo off
cd /d "%~dp0"
(for /f "tokens=2 delims==" %%a in ('wmic useraccount get name /value') do (
    for %%b in (%%a) do (
        net user %%b
    )
))>"UserDetail_2.txt"

2.3 BAT批量创建用户并加入指定组

把待创建的用户名和待加入的组按照下面的格式写入文件UserList.txt

;============================================================
;第一列: 用户名
;第二列及后面的列: 用户组
;每列之间以英文逗号分隔(逗号左右两侧不要有空格)
;每个组名左右两侧添加英文双引号(不要有多余空格)
;============================================================
BatAdm1,"Administrators","Remote Desktop Users"
BatAdm2,"Remote Desktop Users"
BatUsr1,"Remote Desktop Users","Power Users"
BatUsr2,"Remote Desktop Users"

执行脚本CreateUser.bat

@echo off
cd /d "%~dp0"
setlocal enabledelayedexpansion
set "FilePass=UserPass.txt"
>"%FilePass%" echo ;Username  Password
for /f "tokens=1* delims=," %%a in ('type "UserList.txt"') do (
    call :GetPass
    >>"%FilePass%" echo %%a  !PassStr!
    echo net user %%a !PassStr! /add
    net user %%a !PassStr! /add
    for %%c in (%%b) do (
        echo net localgroup %%c %%a /add
        net localgroup %%c %%a /add
    )
)
pause
goto :eof
:GetPass
set "PassLen=11"
set /a LoopNum=PassLen/3+3
set "PassStr="
for /l %%i in (1,1,%LoopNum%) do (
    call :GetRand PassStr
)
set PassStr=!PassStr:~1,%PassLen%!
goto :eof
:GetRand
set "str1=ABCDEFGHIJKLMNOPQRSTUVWXYZ"
set "str2=abcdefghijklmnopqrstuvwxyz"
set "str3=0123456789"
set /a x=%random%%%26
set /a y=%random%%%26
set /a z=%random%%%10
set "PassStr=!PassStr!-!str1:~%x%,1!!str2:~%y%,1!!str3:~%z%,1!"
goto :eof

创建用户之后随机生成的密码自动写入UserPass.txt

  • 密码长度11位

  • 密码包含至少1个大写字母

  • 密码包含至少1个小写字母

  • 密码包含至少1个数字

  • 密码包含至少1个特殊字符

到此这篇关于批处理系统管理之6 – 用户和localgroup组篇的文章就介绍到这了,更多相关bat用户和组篇内容请搜索aitechtogether.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持aitechtogether.com!

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2024年1月8日
下一篇 2024年1月8日

相关推荐

此站出售,如需请站内私信或者邮箱!