我有一个带VBSCRIPT的.HTA文件,用于在用户完成其“会话”操作后从计算机中删除用户数据。除了单击按钮以关闭其“会话”之外,所有这些操作都不需要用户进行任何交互。该脚本的一部分执行一个Powershell文件,该文件将从个人存储中删除所有证书。
pwrshlcmd = "powershell -executionpolicy bypass -noexit -windowstyle hidden -file " & SRC_PATH & "\DeleteUserCerts.ps1"
objShell.Run(pwrshlcmd, 0, True)
一切工作良好,直到最近实施了通过脚本阻止.WSF文件,Powershell命令/文件和.BAT文件执行的组策略。我可能还没有发现其他可能被阻止的东西。有关我们组织的组策略已实施了多个级别,因此不太可能取消。
我正在寻找另一种使用VBSCRIPT删除这些证书的方法,同时仍然不需要任何用户交互。
CreateObject("Wscript.Shell")
。
这未被阻止:
objShell.Run("rundll32.exe InetCpl.cpl, ClearMyTracksByProcess 4351")
已被阻止(Powershell):
objShell.Run(pwrshlcmd, 0, True)
-请参见上面的变量定义
我尝试过CERTMGR
objShell.Run("certmgr /del /all /c /s my")
-这些计算机上不存在certmgr.exe =错误
objShell.Run("rundll32.exe certmgr.dll /del /all /c /s my")
-启动certmgr Dialoag窗口,但不执行其他操作;我认为这些选项适用于.EXE,而不适用于.DLL
我已经研究了CERTUTIL,但是无论如何都看不到要从用户个人存储中删除所有证书。其delstore
选项需要证书ID。