bat获取系统时间修改系统密码
自动化用户密码修改与记录批处理脚本解析
在Windows操作系统中,批处理脚本是一种常用的自动化工具,可以帮助系统管理员简化和自动化日常任务。本文将详细解析一个批处理脚本,该脚本用于修改用户密码,并将新密码保存到文件中,同时自动锁定工作站,确保安全性。
脚本结构与功能概述
该脚本的主要功能是自动生成一个新密码,修改指定用户的密码,并将新密码记录到文件中以防遗忘。完成修改后,脚本会锁定工作站,增加安全性。具体步骤如下:
- 提升权限并切换目录
- 生成新密码并修改用户密码
- 记录新密码
- 锁定工作站
脚本头部:提升权限和目录切换
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
这段代码确保脚本以管理员权限运行,并切换到脚本所在的目录。@echo off
命令用于关闭命令行回显,保持界面整洁。通过mshta vbscript
命令调用VBScript,脚本可以自我提升权限,从而进行用户和密码管理操作。
生成新密码并修改用户密码
set str=%date:~0,7%
set strs=baili%str:-=%
net user %username% %strs%
这段代码生成一个新的密码并修改指定用户的密码:
set str=%date:~0,7%
:提取当前日期的前7个字符,例如2024-08
。set strs=baili%str:-=%
:将日期中的-
替换为空字符,并在前面加上固定字符串baili
,生成一个新密码,例如baili202408
。net user %username% %strs%
:使用net user
命令将指定用户的密码修改为新生成的密码。
记录新密码
pushd E:\
ren 输出数据.txt temp.txt
echo %strs%>输出数据.txt
type temp.txt>>输出数据.txt
del temp.txt ::这一段是我用来输出密码的,就是怕自己忘了,已注释
为了防止忘记新密码,脚本将新密码记录到文件中:
pushd E:\
:切换到E盘目录。ren 输出数据.txt temp.txt
:将原有的输出文件重命名为临时文件。echo %strs%>输出数据.txt
:将新密码写入新的输出文件。type temp.txt>>输出数据.txt
:将临时文件中的内容追加到新的输出文件中。del temp.txt
:删除临时文件,确保文件整洁。
锁定工作站
@echo 成功修改 任意键继续
rundll32 user32.dll,LockWorkStation ::修改成功后自动锁屏
pause
完成密码修改和记录后,脚本会提示用户修改成功,并锁定工作站:
@echo 成功修改 任意键继续
:显示修改成功的提示信息。rundll32 user32.dll,LockWorkStation
:使用rundll32
命令调用user32.dll
中的LockWorkStation
函数,锁定工作站,确保安全性。pause
:暂停脚本执行,等待用户按任意键继续。
@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
set str=%date:~0,7%
set strs=baili%str:-=%
net user %username% %strs%
pushd E:\
ren 输出数据.txt temp.txt
echo %strs%>输出数据.txt
type temp.txt>>输出数据.txt
del temp.txt ::这一段是我用来输出密码的,就是怕自己忘了,已注释
@echo 成功修改 任意键继续
rundll32 user32.dll,LockWorkStation ::修改成功后自动锁屏
pause