当前位置: 首页 > news >正文

PsPasswd(7.19):远程修改密码的边界与合规建议

PsPasswd(7.19):远程修改密码的边界与合规建议

  • PsPasswd(7.19):远程修改密码的边界与合规建议
    • 你将收获
    • 1)PsPasswd 是什么?能做什么 / 不能做什么
    • 2)前置条件与安全基线
    • 3)语法速览(最小记忆集)
    • 4)常见场景与命令模板
      • 4.1 单机:安全修改本地 Administrator
      • 4.2 指定连接凭据(域运维账号去连目标机)
      • 4.3 批量轮换(主机清单)
      • 4.4 与服务账号的关系
    • 5)合规与审计要点
    • 6)批量轮换示例(PowerShell 包装)
    • 7)常见报错 → 定位与修复
    • 8)最佳实践清单
    • 9)一页速查(可收藏)
      • 小结

PsPasswd(7.19):远程修改密码的边界与合规建议

目标:用 PsPasswd不登录目标机的情况下,安全地批量修改本地账户密码,并明确其在域环境中的适用边界合规注意点


你将收获

  • PsPasswd 的定位、能力边界与风险点
  • 常见场景的稳妥用法模板(单机 / 批量 / 轮换)
  • 合规与审计要点(最小权限、留痕、回滚)
  • 出错速查与小脚本(可直接拿来用)

1)PsPasswd 是什么?能做什么 / 不能做什么

PsPasswd 是 Sysinternals PsTools 家族的密码修改工具,典型能力:

  • 本机或远程主机本地账户(如 Administrator、运维本地管理员)重置密码
  • 支持 \\host1,host2@hostlist.txt 批量操作
  • 可用 -u/-p 指定用于连接远程主机的管理凭据(注意:这是连接凭据,不是要修改的账号

边界提醒

  • 首选用于“本地账户”密码轮换
  • 域账户密码的修改与管理,请优先使用 AD 工具链(如 Set-ADAccountPassword、LAPS/Entra、Privileged Access Management),以满足审计与合规。

2)前置条件与安全基线

  • 权限:对目标机具备本地管理员或等效权限(用于连接目标机)
  • 网络:开放 TCP/445(SMB)RPC 相关端口;DNS 与时间同步正常
  • 共享:目标机 Admin$ 未禁用(PsTools 依赖)
  • EDR/防护:允许 PsTools 远程管理行为(白名单)
  • 口令策略:目标机/域的复杂度、最短口令长度、历史、锁定策略会强校验

3)语法速览(最小记忆集)

pspasswd \\HOST [-u <connUser> [-p <connPass>]] <TargetLocalAccount> [<NewPassword>]
pspasswd \\HOST1,HOST2 <TargetLocalAccount>
pspasswd @hosts.txt <TargetLocalAccount>

要点

  • 省略 <NewPassword>交互式输入(更安全,避免明文留痕)
  • -u/-p连接远程时使用的管理凭据被修改的账号在命令末尾单独写
  • 支持批量:\\A,B,C@hosts.txt(每行一台主机)

4)常见场景与命令模板

4.1 单机:安全修改本地 Administrator

:: 交互式输入新口令(推荐)
pspasswd \\PC-001 Administrator

4.2 指定连接凭据(域运维账号去连目标机)

pspasswd \\PC-001 -u CORP\opsadmin -p ****** Administrator

4.3 批量轮换(主机清单)

:: hosts.txt:每行一台,如
:: PC-001
:: PC-002
pspasswd @hosts.txt -u CORP\opsadmin -p ****** Administrator

4.4 与服务账号的关系

如果某Windows 服务/计划任务使用了被重置的账号口令,服务将启动失败
建议顺序
1)先盘点“以某账号运行”的服务/任务 →
2)改口令 →
3)使用 PsServicesc.exe 同步更新服务登录口令并重启服务。


5)合规与审计要点

  • 最小暴露:避免在命令行直接写明文口令(会被命令历史/进程列表捕获),优先交互式输入

  • 审批与留痕:变更单、操作日志、产出机列表与结果汇总

  • 回滚预案:批量改密前导出本地管理员清单、服务依赖账号清单

  • 日志审计

    • 本地/域安全日志会记录“密码更改/重置”事件(目标机与域控)
    • PsLogList(7.18) 联动拉取对应时间窗口日志,形成闭环证据

6)批量轮换示例(PowerShell 包装)

交互式输入新口令(不会在命令行明文出现),支持失败重试、结果落盘。

param([Parameter(Mandatory=$true)] [string]$HostListPath,   # e.g. .\hosts.txt[Parameter(Mandatory=$true)] [string]$ConnUser,       # e.g. CORP\opsadmin[Parameter(Mandatory=$true)] [string]$LocalAccount    # e.g. Administrator
)$SecureNew = Read-Host "请输入新密码(将用于 $LocalAccount)" -AsSecureString
$NewPlain  = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureNew))$Hosts = Get-Content $HostListPath | Where-Object {$_ -and $_ -notmatch '^\s*#'}
$ts = Get-Date -Format "yyyyMMdd_HHmmss"
$logOk = ".\Rotate_OK_$ts.csv"
$logNg = ".\Rotate_FAIL_$ts.csv"
"Host,Account,Result" | Out-File $logOk -Encoding UTF8
"Host,Account,Error"  | Out-File $logNg -Encoding UTF8foreach($h in $Hosts){try{$cmd = "pspasswd \\$h -u $ConnUser $LocalAccount $NewPlain"$p = Start-Process -FilePath cmd.exe -ArgumentList "/c $cmd" -WindowStyle Hidden -PassThru -Waitif($p.ExitCode -eq 0){"$h,$LocalAccount,OK" | Out-File $logOk -Append -Encoding UTF8Write-Host "[OK] $h" -ForegroundColor Green}else{"$h,$LocalAccount,ExitCode=$($p.ExitCode)" | Out-File $logNg -Append -Encoding UTF8Write-Warning "[NG] $h ExitCode=$($p.ExitCode)"}}catch{"$h,$LocalAccount,$($_.Exception.Message.Replace(',',' '))" | Out-File $logNg -Append -Encoding UTF8Write-Warning "[NG] $h $($_.Exception.Message)"}
}# 内存清理(减少留痕)
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR([Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureNew)
) | Out-Null

注意:脚本中为调用 PsPasswd 仍需明文传参,这一步只在内存中短暂存在;请在可信跳板机上执行,并确保日志不含口令。


7)常见报错 → 定位与修复

报错/现象可能原因处理建议
Access is denied.连接凭据不是本地管理员 / Admin$ 被禁用 / UAC 远程限制提升权限;开启 Admin$;必要时参考 UAC 远程限制策略(更推荐使用域受控账号)
The network path was not found.DNS/路由/主机离线检查解析与连通;ping \\HOST\admin$
The RPC server is unavailable.135/RPC 或动态端口被防火墙拦截放行端口;与安全团队核对策略
The user name could not be found.目标本地账户不存在net user 校验或改正确账户名
The password does not meet the password policy requirements.复杂度/最小长度/历史冲突按策略重设;先查询本地或域策略
服务启动失败服务使用了被改口令的账号改完口令后,同步更新服务登录口令并重启服务(PsService/sc.exe

8)最佳实践清单

  • 优先域方案:域设备的本地管理员轮换,优先 LAPS/Entra;PsPasswd 作为补充
  • 交互式输入:尽量不在命令行写明文口令
  • 批量前单机:先单机验证策略与依赖,再批量
  • 与日志联动:PsLogList 拉取对应时间段安全日志做闭环审计
  • 留痕与回滚:保存成功/失败清单;准备回退路径(临时应急口令、远程控制台)

9)一页速查(可收藏)

:: 单机(交互式)
pspasswd \\PC-001 Administrator:: 指定连接凭据
pspasswd \\PC-001 -u CORP\opsadmin -p ****** Administrator:: 批量
pspasswd @hosts.txt -u CORP\opsadmin -p ****** Administrator:: 改口令后同步服务账号(示例)
psservice \\PC-001 setconfig MySvc obj=.\Administrator password=******
psservice \\PC-001 restart MySvc

小结

  • PsPasswd本地账号密码轮换的利器,快、轻、可批量
  • 在域环境,优先使用集中口令管理方案,把 PsPasswd 作为应急/补充;
  • 牢记最小权限、避免明文、留痕审计与回滚预案,才能做到“安全地把事办成”。

下一篇:PsService·上(7.20)——Query/Config/Depend/Security 全面解析

http://www.dtcms.com/a/573616.html

相关文章:

  • 【钉钉多元表格(自动化)】钉钉群根据表格 自动推送当天值日生信息
  • LangFlow源码深度解析:Component核心机制与生态体系
  • dede织梦仿站网站建设做网站赚谁的钱
  • DropLoRA技术详解:克服大模型微调过拟合的创新方法
  • 【剑斩OFFER】算法的暴力美学——串联所有单词的字串
  • 学习Linux——进程管理
  • 在k8s中部署seaweedfs,上传文件到seaweedfs方法
  • 极氪与火山引擎深化合作,Data Agent赋能车辆数据管理效率
  • Kotlin 使用命令行编译
  • 1450dpi+93% 相似度,这款发光纳米纤维让皮肤纹理“复印”更精准
  • 匠魂(1)
  • LeetCode Hot100 自用
  • 做婚介网站可行性报告模板绵阳网站建设多少钱
  • 单位服务器网站打不开网站参考页面设计
  • 陇南建设网站大良营销网站建设信息
  • mac M系列芯片 unity 安装会遇到的错误以及解决
  • Reka UI - 一款免费开源的 Vue 无头 UI 组件库,样式定制开发项目的绝佳选择
  • 个人二级网站怎么做营销咨询服务合同
  • UDP-复用分用
  • 做网站需要什么特色网站制作入门
  • QListWidget的图标模式
  • 【大模型实战笔记 6】Prompt Engineering 提示词工程
  • 能源生态系统的架构设计:利益相关方治理与跨行业协作
  • 潍坊seo管理浙江seo外包
  • BuildingAI二开 用户信息增加Coze套餐名称和剩余天数技术架构
  • 韦东山嵌入式Linux学习第3篇环境搭建与开发板操作:IMX6ULL_Pro
  • 自动驾驶深度学习模型的SOTIF优化方案
  • 对销售和营销的思考
  • 图像显示框架四——应用与SurfaceFlinger构建桥梁(基于Android 15源码分析)
  • 设计网站首页1农村自建房设计图纸及效果图大全