PowerShell单用户密码重置脚本需添加按键重运行与终止功能
修改后的单用户密码重置脚本
下面是添加了循环运行/终止功能的PowerShell脚本,满足你按任意键重新运行、按q键终止的需求:
do { # 清屏 Cls # 获取目标用户名 $sam = Read-Host -Prompt 'Username?' # 定义初始密码(建议实际使用时改为更安全的生成方式) $Pass = 'samplepass123' # 将明文密码转换为安全字符串 $Pass1 = ConvertTo-SecureString $Pass -AsPlainText -Force # 重置AD账户密码 Set-ADAccountPassword $sam -NewPassword $Pass1 -Reset # 输出用户名和密码(注意:生产环境建议移除或加密输出) Write-Host "已重置用户 $sam 的密码为: $Pass" -ForegroundColor Green # 提示用户操作选项 Write-Host "`n按任意键重新运行脚本,按 q 键退出" -ForegroundColor Cyan # 读取用户按键(无需回车) $key = $host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown') } while ($key.Character -notmatch '[qQ]') # 当按键不是q/Q时继续循环
关键功能说明:
- 用
do-while循环包裹核心逻辑,实现重复运行的基础框架 - 通过
$host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')读取单个按键输入,无需用户按回车确认 - 循环终止条件:当用户按下
q或Q时退出脚本;按下其他任意键则重新执行密码重置流程 - 添加彩色提示信息,提升操作直观性
额外建议:
- 固定密码
samplepass123存在安全风险,实际使用时可改为随机生成密码,比如用[System.Web.Security.Membership]::GeneratePassword(12,3)生成12位包含特殊字符的密码 - 生产环境中建议移除密码明文输出的代码,避免泄露
内容的提问来源于stack exchange,提问作者kila
相关产品推荐
相关产品推荐

