bat获取系统时间修改系统密码

自动化用户密码修改与记录批处理脚本解析

在Windows操作系统中,批处理脚本是一种常用的自动化工具,可以帮助系统管理员简化和自动化日常任务。本文将详细解析一个批处理脚本,该脚本用于修改用户密码,并将新密码保存到文件中,同时自动锁定工作站,确保安全性。

脚本结构与功能概述

该脚本的主要功能是自动生成一个新密码,修改指定用户的密码,并将新密码记录到文件中以防遗忘。完成修改后,脚本会锁定工作站,增加安全性。具体步骤如下:

  1. 提升权限并切换目录
  2. 生成新密码并修改用户密码
  3. 记录新密码
  4. 锁定工作站

脚本头部:提升权限和目录切换

@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
posted @ 2017-12-27 20:33  在云端i  阅读(734)  评论(0编辑  收藏  举报