使用批处理脚本修改服务器密码

Visits: 17

本批处理脚本,旨在帮助用户修改当前电脑的密码。

该脚本功能丰富,包括获取计算机信息、查看活动网卡的IP地址和MAC地址、生成新的管理员密码,并提供安全的密码修改操作。下面将详细介绍脚本的使用方法、特点以及安全性。

使用方法:

  1. 下载脚本:将脚本复制到本地计算机上,保存为一个批处理文件(例如:ChangePassword.bat)。
  2. 执行脚本:以管理员权限运行脚本,确保脚本能够成功修改密码和记录操作。双击脚本文件或通过命令行运行脚本即可。

脚本运行过程中,会逐个展示计算机信息、活动网卡的IP地址和MAC地址,然后生成新的随机管理员密码。接着,脚本会询问用户是否需要将新密码应用于管理员账户,用户可以输入YN来做出选择。如果用户输入Y,脚本会修改管理员密码,并在输出文件中记录修改密码的操作结果。如果输入其他字符,脚本将重新生成密码。

脚本特点:

  1. 安全的密码生成:脚本使用随机数生成函数生成密码,包含大小写字母、数字和特殊字符,生成的密码强度高,有助于提高系统的安全性。
  2. 权限判断:脚本包含权限判断部分,只有在以管理员权限运行时才会执行密码修改操作。这样确保只有授权用户能够修改密码,增加了安全性。
  3. 输出记录:脚本将所有操作的结果写入输出文件,包括计算机信息、网卡信息、新生成的密码以及密码修改结果。这样,用户可以在输出文件中查看脚本的执行结果,记录密码修改历史,有助于监控系统的安全性。

安全性:

为确保脚本的正确使用和保护新密码,用户需要注意以下几点:

  1. 仅在必要时使用脚本:建议用户仅在必要时使用该脚本,例如需要修改管理员密码或记录密码修改历史时。避免在公共场所或不受信任的环境中运行脚本,以防止密码泄露。
  2. 保存输出文件:脚本会将所有操作结果写入输出文件,包括计算机信息、网卡信息、新生成的密码以及密码修改结果。用户应该将输出文件保存在安全的位置,确保仅授权的用户可以访问该文件。
  3. 删除或加密输出文件:在不再需要输出文件时,用户应及时删除文件或采取加密措施,防止他人未经授权访问输出文件,以保护密码信息的安全。
  4. 不要泄露密码:在使用脚本时,尽量避免将输出文件或密码信息发送给其他人或将其上传到不安全的网络环境。避免将密码泄露给未经授权的人员,以确保密码的保密性。
  5. 定期更改密码:建议用户定期更改管理员密码,以增加系统的安全性。用户可以运行脚本生成新的随机密码,然后将其应用于管理员账户,定期更改密码可以防止密码被盗用或猜测。
  6. 仔细检查输出文件:在查看输出文件时,用户应仔细检查其中的操作结果,确认密码修改操作是否成功,并检查是否有其他异常情况。如发现异常情况,及时采取措施进行修复。
  7. 保护管理员权限:在运行脚本时,用户应确保以管理员权限运行脚本,以便脚本可以顺利执行密码修改操作。在权限判断部分,脚本会询问用户是否需要获取管理员权限,用户应根据提示选择“是”来获取权限。

总结: 批处理脚本展示:修改当前电脑密码,是一款实用且安全的工具,适用于个人电脑和服务器。通过该脚本,用户能够提升密码安全性,并记录操作历史,为系统的安全管理提供有力支持。然而,用户在使用脚本时仍需谨慎,确保正确保存输出文件,避免密码泄露和未经授权访问。通过合理使用脚本,用户可以更加方便地修改密码,同时保护密码信息,提高系统的安全性。

@echo off
title 修改当前电脑密码  By:迷路轮回
mode con cols=60 lines=18
setlocal enabledelayedexpansion


set chang=0
goto :start
REM 如果仅用于测试程序代码,现在的代码即可。如果需要修改密码,需要注释掉上面这行(在代码前面添加'REM ')。

set chang=1
REM 判断系统是否高于XP
set "ban=0"
ver | find "6." > NUL && set "ban=6"
ver | find "10." > NUL && set "ban=10"
if %ban% LSS 6 goto start
REM 判断是否有权限
set uac=0 & bcdedit >nul & if errorlevel 1 set uac=1
if %uac%==0 (GOTO start) ELSE (goto :Error_UAC)
REM 开始获取管理员权限
:Error_UAC
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :start","","runas",1)(window.close)&exit
REM 当得到管理员权限时的操作


:start
REM 生成输出文件的位置和文件名称,文件格式
for /f "tokens=1-3 delims=/- " %%1 in ("%date%") do set "NowDay=%%1_%%2_%%3"
for /f "tokens=1-3 delims=: " %%1 in ("%time%") do set "NowTime=%%1_%%2_%%3"
set "Save_shell=%~dp0\PC_infores_!NowDay!_!NowTime!.txt"


REM 获取当前时间并写入到输出文件
for /f "tokens=1-3 delims=/- " %%1 in ("%date%") do set "NowDay=%%1-%%2-%%3"
for /f "tokens=1-3 delims=: " %%1 in ("%time%") do set "NowTime=%%1:%%2:%%3"
set "Date-Time=!NowDay! !NowTime!"
echo.1.		执行时间	!Date-Time!>> "!Save_shell!"



REM 获取计算机名称并写入到输出文件

for /F "usebackq tokens=2 delims==" %%i in (`wmic computersystem get caption /value ^| findstr /r /v "^$"`) do (
    set "ComputerName=%%i"
)
REM 获取主机名
for /F "usebackq delims=" %%j in (`hostname`) do (
    set "HostName=%%j"
)

REM 写入计算机名称和主机名到输出文件
echo 2.     计算机名(ComputerName) 、主机名(HostName) >> "!Save_shell!"
echo 计算机名(ComputerName)   %ComputerName% >> "!Save_shell!"
echo 主机名(HostName)     %HostName% >> "!Save_shell!"



REM 获取当前电脑活动网卡的IP地址和MAC地址
echo 3.		活动网卡的网卡名称(Description),IP地址(IPAddress),MAC地址(MACAddress),网卡启用状态(IPEnabled) >> "!Save_shell!"
for /F "skip=1 tokens=1-8 delims=," %%A in ('WMIC nicconfig WHERE "IPEnabled='true'" get Description^,IPAddress^,IPEnabled^,MACAddress /format:csv') do (
    REM 设置变量
    set "Description=%%~B"
    set "IPAddress=%%~C"
    set "IPEnabled=%%~D"
    set "MACAddress=%%~E"

    REM 显示当前活动网卡的IP地址和MAC地址
    echo 网卡描述: !Description!>> "!Save_shell!"
    echo IP地址: !IPAddress!>> "!Save_shell!"
    echo IPEnabled: !IPEnabled!>> "!Save_shell!"
    echo MAC地址: !MACAddress!>> "!Save_shell!"
    echo.>> "!Save_shell!"& echo.>> "!Save_shell!"
)





echo 4.		生成新管理员密码>> "!Save_shell!"
:new
REM 生成密码字符串
set /a length=16
:random_numbers 开始获取随机数
set Str=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^*()_+-
for /l %%i in (1,1,88) do (if "!Str:~0,%%i!"=="!Str!" set StrSum=%%i&goto :Reacquire_random_numbers)
:Reacquire_random_numbers 重新获取随机数
set "upper_count=0"
set "lower_count=0"
set "digit_count=0"
set "special_count=0"
set /a Num+=1,StrNum=%Random%%%%StrSum%
set string=%string%!str:~%StrNum%,1!
if %Num% lss !length! goto :Reacquire_random_numbers
echo=
echo 生成新密码		!string!
echo 是否用该字符串执行密码修改操作?
echo=
echo 输入 Y 继续,其他键返回并重新生成密码
set /p "choice="
if /i "%choice%"=="Y" goto :Change_Password
if /i "%choice%"=="y" goto :Change_Password
set /a Num=0& set string=
goto :new


:Change_Password
REM 使用新生成的密码字符串,修改服务器密码
echo 4.		修改管理员密码>> "!Save_shell!"
if %chang% == 1 (
	net user Administrator !string!
	if %ERRORLEVEL% EQU 0 (
		echo 密码修改成功>> "!Save_shell!"
		REM 记录修改密码的操作
		echo %DATE% %TIME% - 修改服务器密码 - 计算机名: %ComputerName%, 用户名: Administrator, 新密码:!string!>> "!Save_shell!"
	) else (
		REM 记录修改密码的操作
		echo 密码修改失败。请确保以管理员身份运行脚本。
		echo 密码修改失败。请确保以管理员身份运行脚本。>> "!Save_shell!"
	)
) else (
	echo 跳过修改密码
)


REM 执行完成,按任意键退出

echo=按任意键退出
pause > nul

发表评论