在事件查看器中我看到了错误(在此处缩短(:
描述:由于未手持的例外,该过程被终止。
异常信息: system.AccessVioLationException atcertstore.win32utils.certenumcertificatesinstore(intptr,intptr(
我知道,自4.0以来,您无法在任何.NET版本上捕获AccessViolationException,这是通过设计。我找不到有关如何在PowerShell中处理它的文档
我的问题是我如何捕获此例外并阻止它完全崩溃我的脚本?在C#和其他语言中,我可以使用[HandleProcessCorruptedStateExceptions]
,但在PowerShell中找不到任何文档。
预先感谢您!
我不知道如何捕捉异常,但是看起来您正在使用CERT Store,这导致了例外。我的问题是,试图通过证书商店枚举,然后打开它是违反访问的例外。通过添加"仅读取"标志,我能够解决违规错误,并在任何其他错误中使用正常的尝试捕获。
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store($computer, "LocalMachine")
#Read only flag that fixed it.
$store.Open("ReadOnly")
$certs = $store.Certificates
$store.Close();