如何清除PowerShell缓存解决改密后凭证失效报错问题
PowerShell缓存凭证清除方案
方法1:清除Windows凭据管理器存储的凭证
大多数PowerShell模块(如Az、Exchange Online、微软365相关模块)会默认把凭证持久化存在Windows凭据管理器中,这是最常见的缓存来源:
- 按下
Win + R打开运行窗口,输入control /name Microsoft.CredentialManager回车,打开凭据管理器 - 切换到「Windows 凭据」标签页,找到对应服务的凭据条目(通常名称包含你使用的模块名、访问的服务地址/服务器名)
- 点击目标条目,选择「删除」即可清除缓存的旧密码
方法2:清除PowerShell会话内的临时缓存
如果是当前会话内的临时凭证缓存,不需要额外操作:
- 关闭所有已打开的PowerShell窗口(包括VS Code、Windows Terminal内的PowerShell标签页)
- 重新打开新的PowerShell会话,临时缓存的凭证会自动销毁,下次执行连接操作就会触发新的凭证输入提示
方法3:特定场景/模块的专属缓存清除
不同的常用场景和PowerShell模块有独立的缓存清除命令:
- Az PowerShell(Azure相关操作):运行
Disconnect-AzAccount,后续重新执行Connect-AzAccount即可触发新凭证输入 - Exchange Online Management:运行
Disconnect-ExchangeOnline,重新执行连接命令即可要求输入新密码 - 访问远程SMB共享/WinRM服务的场景:运行
net use * /delete /y清除所有共享连接缓存,重新访问就会弹出凭证输入框 - 用
CredentialManager模块管理凭证的场景:运行Remove-StoredCredential -Target "你的凭证目标名称"即可删除指定存储凭证
方法4:清除自定义存储的凭证
如果你的脚本中使用了自定义方式存储的凭证,对应清除逻辑如下:
- 用
Export-Clixml导出过凭证到本地XML文件的场景:找到本地存储的旧凭证XML文件直接删除,重新执行Get-Credential | Export-Clixml导出新密码的凭证文件即可 - 用
Microsoft.PowerShell.SecretManagement模块管理凭证的场景:运行Remove-Secret -Name "你的凭证存储名称"即可删除旧凭证,重新执行存储操作即可录入新密码
内容的提问来源于stack exchange,提问作者Karl Schmitt
相关产品推荐
相关产品推荐

