Windows 系统删除用户的脚本
第一章 界面介绍
第01节 主界面
第02节 创建用户
第03节 删除用户
第04节 查询用户
第05节 退出操作
第二章 部分代码实现
第01节 外层准备
@echo off
setlocal enabledelayedexpansion
:: 设置控制台编码为 65001 (UTF-8) 936 (GBK)
set UCODE=65001
chcp %UCODE% >nul
:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
echo 正在请求管理员权限...
powershell -Command "Start-Process cmd -ArgumentList '/c %~s0' -Verb RunAs"
exit /b
)
echo.
echo 当前已是管理员黑窗口, 当前窗口编码 %UCODE%
echo.
echo.
pause
第02节 模拟等待
:: 模拟等待时间
: waitTime
timeout /t 2 /nobreak >nul
goto :eof
第03节 退出黑窗口
:: 退出黑窗口
:exitUser
echo.
echo 正在退出.......
echo.
call :waitTime
echo.
exit
第04节 主界面
:: 主菜单函数
:mainMenu
echo.
echo 请选择您的操作:
echo.
echo 1. 创建用户
echo.
echo 2. 删除用户
echo.
echo 3. 查看用户
echo.
echo 4. 退出黑窗口
echo.
set /p choice=请输入 您的选择:
if "!choice!"=="1" call :appendUser goto :mainMenu
if "!choice!"=="2" call :deleteUser goto :mainMenu
if "!choice!"=="3" call :queryUser goto :mainMenu
if "!choice!"=="4" call :exitUser
goto :mainMenu
第05节 创建用户
:: 创建用户函数
:appendUser
echo.
echo =========================【 创建用户 开始 】===================================
echo.
for /f "skip=1 tokens=1" %%A in ('wmic ComputerSystem get UserName /value') do (
if not "%%A"=="" (
for /f "tokens=2 delims=\" %%B in ("%%A") do (
echo 目前已登录的用户: %%B
)
)
)
echo.
:: 显示当前用户列表
echo 当前系统中, 所有用户名称, 展示列表如下:
echo.
for /f "skip=4 tokens=*" %%A in ('net user ^| findstr /v /c:"命令 已完成" /c:"The command completed successfully"') do (
for %%B in (%%A) do (
if not "%%B"=="" echo %%B
)
)
echo.
:input_user
set /p "addUser=请输入要创建的用户名: "
if "%addUser%"=="" (
echo 错误:用户名不能为空
goto input_user
)
echo.
:input_pass
set /p "addPass=请输入要创建的密码: "
if "%addPass%"=="" (
echo 错误:密码不能为空
goto input_pass
)
echo.
echo 正在创建用户 "%addUser%" .........
net user "%addUser%" %addPass% /add >nul 2>&1
echo.
echo "%addUser%" 创建完毕
echo.
echo =========================【 创建用户 结束 】===================================
call :waitTime
goto :eof
第06节 删除用户
:: 删除用户
:deleteUser
echo.
echo =========================【 删除用户 开始 】===================================
echo.
for /f "skip=1 tokens=1" %%A in ('wmic ComputerSystem get UserName /value') do (
if not "%%A"=="" (
for /f "tokens=2 delims=\" %%B in ("%%A") do (
echo 目前已登录的用户: %%B
)
)
)
echo.
:: 显示当前用户列表
echo 当前系统中, 所有用户名称, 展示列表如下:
echo.
for /f "skip=4 tokens=*" %%A in ('net user ^| findstr /v /c:"命令 已完成" /c:"The command completed successfully"') do (
for %%B in (%%A) do (
if not "%%B"=="" echo %%B
)
)
echo.
echo 您可以采用鼠标双击上面的用户名, 按下快捷键 Ctrl+C 复制之后, 在下面按下 Ctrl + V 粘贴
echo.
:input_user
set /p "delUser=请输入要删除的用户名: "
if "%delUser%"=="" (
echo 错误:用户名不能为空
goto input_user
)
:: 确认删除
echo.
echo 警告:您将要删除用户 "%delUser%" 输入 y 表示确认, 输入其他则取消
echo.
set /p "confirm=确认删除吗?(y/n): "
echo.
if /i not "%confirm%"=="y" (
echo 操作已取消
) else (
echo 正在删除用户 "%delUser%" .........
net user "%delUser%" /delete >nul 2>&1
echo.
if %errorLevel% equ 0 (
echo 用户 "%delUser%" 已成功删除
) else (
echo 删除失败:
echo.
echo 1、 用户 "%delUser%" 可能不存在
echo.
echo 2、 或这是系统内置账户
echo.
echo 3、 或您没有足够权限
)
)
echo.
echo =========================【 删除用户 结束 】===================================
call :waitTime
goto :eof
第07节 查询用户
:: 查询用户函数
:queryUser
echo.
echo =========================【 查询用户 开始 】===================================
echo.
for /f "skip=1 tokens=1" %%A in ('wmic ComputerSystem get UserName /value') do (
if not "%%A"=="" (
for /f "tokens=2 delims=\" %%B in ("%%A") do (
echo 目前已登录的用户: %%B
)
)
)
echo.
:: 显示当前用户列表
echo 当前系统中, 所有用户名称, 展示列表如下:
echo.
for /f "skip=4 tokens=*" %%A in ('net user ^| findstr /v /c:"命令 已完成" /c:"The command completed successfully"') do (
for %%B in (%%A) do (
if not "%%B"=="" echo %%B
)
)
echo.
echo =========================【 查询用户 结束 】===================================
call :waitTime
goto :eof
第三章 核心指令
创建用户
net user 用户名称 密码 /add
删除用户
net user 用户名称 /delete
查看用户
net user
第四章 完整代码实现
@echo off
setlocal enabledelayedexpansion
:: 设置控制台编码为 65001 (UTF-8) 936 (GBK)
set UCODE=65001
chcp %UCODE% >nul
:: 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
echo 正在请求管理员权限...
powershell -Command "Start-Process cmd -ArgumentList '/c %~s0' -Verb RunAs"
exit /b
)
echo.
echo 当前已是管理员黑窗口, 当前窗口编码 %UCODE%
echo.
:: 主菜单函数
:mainMenu
echo.
echo 请选择您的操作:
echo.
echo 1. 创建用户
echo.
echo 2. 删除用户
echo.
echo 3. 查看用户
echo.
echo 4. 退出黑窗口
echo.
set /p choice=请输入 您的选择:
if "!choice!"=="1" call :appendUser goto :mainMenu
if "!choice!"=="2" call :deleteUser goto :mainMenu
if "!choice!"=="3" call :queryUser goto :mainMenu
if "!choice!"=="4" call :exitUser
goto :mainMenu
:: 创建用户函数
:appendUser
echo.
echo =========================【 创建用户 开始 】===================================
echo.
for /f "skip=1 tokens=1" %%A in ('wmic ComputerSystem get UserName /value') do (
if not "%%A"=="" (
for /f "tokens=2 delims=\" %%B in ("%%A") do (
echo 目前已登录的用户: %%B
)
)
)
echo.
:: 显示当前用户列表
echo 当前系统中, 所有用户名称, 展示列表如下:
echo.
for /f "skip=4 tokens=*" %%A in ('net user ^| findstr /v /c:"命令 已完成" /c:"The command completed successfully"') do (
for %%B in (%%A) do (
if not "%%B"=="" echo %%B
)
)
echo.
:input_user
set /p "addUser=请输入要创建的用户名: "
if "%addUser%"=="" (
echo 错误:用户名不能为空
goto input_user
)
echo.
:input_pass
set /p "addPass=请输入要创建的密码: "
if "%addPass%"=="" (
echo 错误:密码不能为空
goto input_pass
)
echo.
echo 正在创建用户 "%addUser%" .........
net user "%addUser%" %addPass% /add >nul 2>&1
echo.
echo "%addUser%" 创建完毕
echo.
echo =========================【 创建用户 结束 】===================================
call :waitTime
goto :eof
:: 删除用户
:deleteUser
echo.
echo =========================【 删除用户 开始 】===================================
echo.
for /f "skip=1 tokens=1" %%A in ('wmic ComputerSystem get UserName /value') do (
if not "%%A"=="" (
for /f "tokens=2 delims=\" %%B in ("%%A") do (
echo 目前已登录的用户: %%B
)
)
)
echo.
:: 显示当前用户列表
echo 当前系统中, 所有用户名称, 展示列表如下:
echo.
for /f "skip=4 tokens=*" %%A in ('net user ^| findstr /v /c:"命令 已完成" /c:"The command completed successfully"') do (
for %%B in (%%A) do (
if not "%%B"=="" echo %%B
)
)
echo.
echo 您可以采用鼠标双击上面的用户名, 按下快捷键 Ctrl+C 复制之后, 在下面按下 Ctrl + V 粘贴
echo.
:input_user
set /p "delUser=请输入要删除的用户名: "
if "%delUser%"=="" (
echo 错误:用户名不能为空
goto input_user
)
:: 确认删除
echo.
echo 警告:您将要删除用户 "%delUser%" 输入 y 表示确认, 输入其他则取消
echo.
set /p "confirm=确认删除吗?(y/n): "
echo.
if /i not "%confirm%"=="y" (
echo 操作已取消
) else (
echo 正在删除用户 "%delUser%" .........
net user "%delUser%" /delete >nul 2>&1
echo.
if %errorLevel% equ 0 (
echo 用户 "%delUser%" 已成功删除
) else (
echo 删除失败:
echo.
echo 1、 用户 "%delUser%" 可能不存在
echo.
echo 2、 或这是系统内置账户
echo.
echo 3、 或您没有足够权限
)
)
echo.
echo =========================【 删除用户 结束 】===================================
call :waitTime
goto :eof
:: 查询用户函数
:queryUser
echo.
echo =========================【 查询用户 开始 】===================================
echo.
for /f "skip=1 tokens=1" %%A in ('wmic ComputerSystem get UserName /value') do (
if not "%%A"=="" (
for /f "tokens=2 delims=\" %%B in ("%%A") do (
echo 目前已登录的用户: %%B
)
)
)
echo.
:: 显示当前用户列表
echo 当前系统中, 所有用户名称, 展示列表如下:
echo.
for /f "skip=4 tokens=*" %%A in ('net user ^| findstr /v /c:"命令 已完成" /c:"The command completed successfully"') do (
for %%B in (%%A) do (
if not "%%B"=="" echo %%B
)
)
echo.
echo =========================【 查询用户 结束 】===================================
call :waitTime
goto :eof
:: 退出黑窗口
:exitUser
echo.
echo 正在退出.......
echo.
call :waitTime
echo.
exit
:: 模拟等待时间
: waitTime
timeout /t 2 /nobreak >nul
goto :eof
echo.
pause