首页 > 系统相关 >监控 Windows 更新补丁安装过程中的文件夹和文件,可以通过 PowerShell 监控 Windows 更新的日志文件夹、注册表或其他相关位置。Windows 更新会在多个地方生成日志和文件,下

监控 Windows 更新补丁安装过程中的文件夹和文件,可以通过 PowerShell 监控 Windows 更新的日志文件夹、注册表或其他相关位置。Windows 更新会在多个地方生成日志和文件,下

时间:2024-11-08 16:30:26浏览次数:1  
标签:文件 FileSystemWatcher Windows 更新 文件夹 监控 日志

监控 Windows 更新补丁安装过程中的文件夹和文件,可以通过 PowerShell 监控 Windows 更新的日志文件夹、注册表或其他相关位置。Windows 更新会在多个地方生成日志和文件,下面提供了一个使用 PowerShell 监控 Windows 更新相关路径、文件夹及文件的示例。

监控 Windows 更新相关的文件夹和文件

Windows 更新的日志文件通常保存在以下路径:

  • C:\Windows\SoftwareDistribution\Download: 存储下载的更新文件。
  • C:\Windows\SoftwareDistribution\ReportingEvents.log: 记录有关更新过程的事件。
  • C:\Windows\WindowsUpdate.log: Windows 更新日志。

代码示例

以下是一个使用 PowerShell 监控这些文件夹和文件的脚本:

powershellCopy Code
# 定义要监控的路径
$watchPaths = @(
    "C:\Windows\SoftwareDistribution\Download",
    "C:\Windows\SoftwareDistribution\ReportingEvents.log",
    "C:\Windows\WindowsUpdate.log"
)

# 创建一个事件监视器来监控文件夹变化
$FileSystemWatcher = New-Object System.IO.FileSystemWatcher

# 设置监视路径
$FileSystemWatcher.Path = "C:\Windows\SoftwareDistribution"
$FileSystemWatcher.Filter = "*.*"  # 监视所有文件类型
$FileSystemWatcher.IncludeSubdirectories = $true  # 包括子目录
$FileSystemWatcher.EnableRaisingEvents = $true  # 启用事件触发

# 定义事件处理器
$onChanged = Register-ObjectEvent -InputObject $FileSystemWatcher -EventName "Changed" -Action {
    Write-Host "文件已更改: $($EventArgs.FullPath)"
}

$onCreated = Register-ObjectEvent -InputObject $FileSystemWatcher -EventName "Created" -Action {
    Write-Host "文件已创建: $($EventArgs.FullPath)"
}

$onDeleted = Register-ObjectEvent -InputObject $FileSystemWatcher -EventName "Deleted" -Action {
    Write-Host "文件已删除: $($EventArgs.FullPath)"
}

$onRenamed = Register-ObjectEvent -InputObject $FileSystemWatcher -EventName "Renamed" -Action {
    Write-Host "文件已重命名: $($EventArgs.OldFullPath) -> $($EventArgs.FullPath)"
}

# 打印正在监视的路径
Write-Host "正在监视以下文件夹和文件:"
$watchPaths | ForEach-Object { Write-Host $_ }

# 保持脚本运行,直到手动退出
Write-Host "按 'Ctrl+C' 停止监控..."
while ($true) { Start-Sleep -Seconds 5 }

# 清理事件处理程序
Unregister-Event -SourceIdentifier $onChanged.Name
Unregister-Event -SourceIdentifier $onCreated.Name
Unregister-Event -SourceIdentifier $onDeleted.Name
Unregister-Event -SourceIdentifier $onRenamed.Name

# 关闭监视器
$FileSystemWatcher.Dispose()

解释:

  1. 监视的路径:我们监控了 C:\Windows\SoftwareDistribution\Download(下载的更新文件)、C:\Windows\SoftwareDistribution\ReportingEvents.log(更新事件日志)和 C:\Windows\WindowsUpdate.log(Windows 更新日志)等路径。

  2. FileSystemWatcher:这个对象用来监控文件夹或文件的更改。我们设置它监控 C:\Windows\SoftwareDistribution 文件夹及其子目录中的所有文件。

  3. Register-ObjectEvent:这是 PowerShell 中用于注册文件系统事件的命令,我们为文件的更改创建删除重命名事件设置了处理函数。每次有相关操作时,都会输出变化信息。

  4. Start-Sleep:这个命令会让脚本保持运行,以便持续监控文件变化。用户可以按 Ctrl+C 来停止监控。

  5. 清理和释放资源:脚本结束时,我们使用 Unregister-Event 清理事件监听器,Dispose 关闭 FileSystemWatcher,避免资源泄漏。

监控更新日志文件

除了监控文件夹,C:\Windows\WindowsUpdate.log 文件还包含了详细的更新过程日志。你可以使用以下 PowerShell 代码来查看更新日志的内容:

powershellCopy Code
# 查看 Windows Update 的日志
$updateLogPath = "C:\Windows\WindowsUpdate.log"

# 显示最后 10 行日志
Get-Content -Path $updateLogPath -Tail 10

此脚本会输出 WindowsUpdate.log 文件中的最后 10 行内容,你可以根据需要调整查看日志的行数。

通过这个 PowerShell 脚本,你可以实时监控 Windows 更新相关的文件夹和文件,检测文件创建、删除、修改等变化。这对你了解更新过程和及时发现问题非常有帮助。

标签:文件,FileSystemWatcher,Windows,更新,文件夹,监控,日志
From: https://www.cnblogs.com/suv789/p/18535371

相关文章

  • windows搭建syncthing中继服务器和发现服务器
    软件准备1.stdiscosrv:发现服务器,下载地址https://github.com/syncthing/discosrv/releases2.strelaysrv:中继服务器,下载地址 https://github.com/syncthing/relaysrv/releases3.syncthing:文件同步程序,下载地址 https://syncthing.net/downloads根据自身需要下载相应系统相应......
  • C:\Windows\System32\spp\store 文件夹是 Windows 操作系统中与激活和许可证管理
    C:\Windows\System32\spp\store文件夹是Windows操作系统中与激活和许可证管理相关的一个重要文件夹。该文件夹存储了与Windows激活过程相关的信息、许可证密钥、许可证的状态等数据。具体来说,它主要涉及SoftwareProtectionPlatform(SPP),即软件保护平台。1. 什么是SPP......
  • GitHub | 发布到GitHub仓库并联文件夹的方式
    推送到Github推送步骤如果你只想更新单个文件,只需在第4步中指定该文件的路径即可。可能问题一效果推送步骤更新GitHub仓库中的文件通常涉及以下步骤:克隆仓库:首先,你需要将GitHub上的仓库克隆到本地。使用gitclone命令克隆仓库:gitclone仓库地址切......
  • Electron 项目中获取 Windows 进程列表的深入剖析
    Electron项目中获取Windows进程列表的深入剖析一、引言在Windows系统下的Electron项目开发中,获取进程列表信息是一项十分关键的任务。这对于进程管理、资源监控、应用程序交互等多种功能的实现都有着重要意义。我们将围绕给出的代码片段,深入探讨如何完善代码以准确......
  • 在 Windows Server 系统中,更改更新服务器地址(即更改 Windows 更新源)通常需要调整组策
    在WindowsServer系统中,更改更新服务器地址(即更改Windows更新源)通常需要调整组策略或注册表设置。以下是两种常见的方法来更改Windows更新服务器地址:方法一:通过组策略设置更新服务器地址打开组策略编辑器按下Win+R打开“运行”窗口,输入gpedit.msc并按回车,打开本地......
  • Microsoft Office 2019 (office全家桶)for Mac/Windows电脑安装包
    MicrosoftOffice2019forMac(Office全家桶)是一款功能全面且强大的办公软件套件,专为Mac用户设计。Mac苹果电脑下载:Office2019(含激活秘钥)Windows电脑下载:Office2019(含批量许可)    以下是其主要特点和优势:一、界面设计采用了Mac系统的设......
  • Windows基础 -- 常用cmd命令
    声明:本文的学习内容来源于B站up主“泷羽sec”的公开分享,所有内容仅限于网络安全技术的交流学习,不涉及任何侵犯版权或其他侵权意图。如有任何侵权问题,请联系本人,我将立即删除相关内容。本文旨在帮助网络安全爱好者提升自身安全技能,并严格遵守国家法律法规。任何人利用本文......
  • Windows下Cassandra数据库安装及编程访问
    前提紧要:由于我的Java版本是Java8所以为了兼容,我选择了apache-cassandra-3.11.11官网下载链接:https://www.apache.org/dyn/closer.lua/cassandra/3.11.11/apache-cassandra-3.11.11-bin.tar.gz通常推荐使用Java8来运行Cassandra3.x版本,因为它的性能和稳定性在这一组合下得......
  • windows & MacBook 下载视频网站视频
    下载yt-dlpgithub地址:https://github.com/yt-dlp/yt-dlp下载:https://github.com/yt-dlp/yt-dlp/releases下载ffmpeg官网:https://ffmpeg.org/解压后,只有bin下的这2个文件放C盘目录下将下面这3个程序,挪到:C:\Windows\System32下载视频在任意路径:cmd命令:yt-dlp{视频......
  • PowerShell DSC(Desired State Configuration)是一种配置管理框架,旨在通过声明性的方式
    PowerShellDSC(DesiredStateConfiguration)是一种配置管理框架,旨在通过声明性的方式自动化和管理计算机的配置。它是WindowsPowerShell的一部分,允许管理员定义和维护计算机系统的目标配置状态,而不是手动进行逐个更改。1. 什么是PowerShellDSC?PowerShellDSC是一种基于声......