0

我有一个问题,我们的用户由于存储的通用凭据 (GC) 而将他们的 AD 帐户锁定。问题通过删除 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 脚本会更好,但我对其他语言持开放态度。

我确信必须有一个能够处理此请求的脚本,但我遇到了知识墙。

任何帮助将不胜感激。

干杯,蒂姆

4

2 回答 2

0

希望这会有所帮助!它将通过 powershell 删除 Windows 通用凭据

$key_dat =@((cmdkey /listall | Where-Object{$_ -like "*LegacyGeneric*"}).replace("Target: ",""))
for($k =0; $k -le ($key_dat.Count -1); $k++)
{
[string]$dele_data =$key_dat[$k].trim()
cmdkey /delete:$dele_data
}
于 2018-12-05T10:38:01.200 回答
0

该脚本适用于我结合上面的线程。我尤其不得不删除旧的 OUTLOOK 条目并在用户上下文中成功运行此脚本。请记住,EXECUTION POLICY 必须在另一个管理脚本中设置,因为它在用户上下文中运行。

$key_dat = @((cmdkey /listall | Where-Object{$_ -like "*LegacyGeneric:target=MS.Outlook*"}).replace("Target: ",""))
for($k =0; $k -le ($key_dat.Count -1); $k++)
{
[string]$dele_data =$key_dat[$k].split()[-1]
cmdkey /delete:$dele_data
}

于 2019-08-02T13:40:35.600 回答