powershell 无法在Windows 2016中获取Windows更新日志

m4pnthwp  于 2023-01-13  发布在  Shell
关注(0)|答案(2)|浏览(228)

当尝试运行Get-WindowsUpdateLog时,我得到下面的错误。我遇到了一个博客复制SymSrv.dll文件到服务器。这是没有意义的,因为我必须在这么多的服务器上进行故障排除。没有其他方法来阅读Windows 2016中的Windows Update日志吗?
复制项目:找不到路径“C:\Program Files\Windows Defender\SymSrv.dll”,因为该路径不存在。

pb3s4cty

pb3s4cty1#

您也可以从WinSxS文件夹(搜索范围)本地获取该文件。
这对我们很有效,但是WindowsUpdate.log文件中的输出是垃圾。

kg7wmglp

kg7wmglp2#

当我从32位应用程序启动Get-WindowsUpdateLog时,我遇到了类似的问题,默认情况下使用32位powershell。这个link帮助了我。通过确保我们运行64位版本的powershell得到了修复。从我的32位实用程序中,我应用了powershell的完整路径:C:\Windows\sysnative\WindowsPowerShell\v1.0\powershell.exe(使用“sysnative”而不是“System32”来定位真实的的System32文件夹),并且它工作正常。
正如您在C:\Windows\system32\WindowsPowerShell\v1.0\Modules\WindowsUpdate\WindowsUpdateLog.psm1中所看到的,其中有一段代码:

$SYMSRV_DLL_PATH = "$env:ProgramFiles\Windows Defender\SymSrv.dll" 
..
Copy-Item -Path $SYMSRV_DLL_PATH -Destination $WORKDIR -Force -ErrorAction Stop.

因此,SymSrv.dll从Program Files文件夹复制到临时文件夹。但是,对于32位进程,$env:ProgramFiles的目标不是Program Files,而是Program Files(x86)文件夹(不包含SymSrv.dll)。这就是为什么我们必须运行64位版本的powershell。

相关问题