【发布时间】:2016-08-04 00:28:47
【问题描述】:
我遇到了一个问题,即我们的用户的 AD 帐户由于存储的通用凭据 (GC) 而被锁定。通过删除 GC 解决了问题,但是当用户登录到新机器时它们会返回。
我可以找到关于删除除 GC 之外的所有存储凭据的大量信息,但这与我需要的相反,其他凭据必须保持不变。
我已经生成了一个批处理文件,但它只会删除没有任何特殊字符的“基本”CG。我怀疑命令 cmdkey /delete 无法处理复杂的名称。即 LegacyGeneric:target=Microsoft_OC1:uri=Joe.Bloggs@example.com.au:certificate:OCS:1
批处理文件,
cmdkey.exe /list > "%TEMP%\List.txt"
findstr.exe LegacyGeneric "%TEMP%\List.txt" > "%TEMP%\tokensonly.txt"
FOR /F "tokens=1,2 delims=" %a IN (%TEMP%\tokensonly.txt) DO cmdkey.exe /delete:%b
del "%TEMP%\List.txt" /s /f /q
del "%TEMP%\tokensonly.txt" /s /f /q
当我们的应用程序白名单在 2 周后上线时,我在获取批处理文件时也会遇到问题。所以 PowerShell 脚本会更好,但我对其他语言持开放态度。
我确信一定有一个脚本能够处理这个请求,但我遇到了知识墙。
我们将不胜感激。
干杯, 蒂姆
【问题讨论】:
-
我从未尝试过,但是在 PowerShell 中
cmdkey /list | where {$_ -match 'LegacyGeneric'} | foreach { cmdkey /delete "$($_.split()[-1])" }怎么样? -
这在我的机器上效果很好,谢谢。我现在必须在从服务器推送的用户级别进行测试。
标签: windows powershell active-directory credentials credential-manager