You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现指定文件夹文件变更时自动重启IIS?

实现指定文件夹文件变更时自动重启IIS的步骤

下面提供两种可行的实现方案,按需选择:

方法一:借助任务计划程序(系统自带工具)

1. 先写好重启IIS的脚本

新建一个文本文件,输入以下命令后保存为RestartIIS.bat(比如存到C:\Scripts文件夹下):

iisreset /restart

右键以管理员身份运行该脚本,测试是否能正常重启IIS。

2. 打开任务计划程序

按下Win+R,输入taskschd.msc回车启动工具。

3. 创建新任务

右键左侧“任务计划程序库”,选择“创建基本任务”:

  • 给任务命名(比如“文件变更触发IIS重启”),填写描述后点击下一步;
  • 触发器选择“当特定事件被记录时”,点击下一步;
  • 日志选择Microsoft-Windows-Filesystem/Operational,来源选择Microsoft-Windows-Filesystem,事件ID填4663,点击下一步;
  • 点击“自定义”按钮,切换到“XML”标签,勾选“手动编辑查询”,替换为以下XML内容(筛选指定文件夹的文件变更事件):
<QueryList>
  <Query Id="0" Path="Microsoft-Windows-Filesystem/Operational">
    <Select Path="Microsoft-Windows-Filesystem/Operational">*[System[EventID=4663]] and *[EventData[Data[@Name='ObjectType']='File'] and *[EventData[Data[@Name='ObjectName']='C:\inetpub\wwwroot\mywebsite\products\files']]]</Select>
  </Query>
</QueryList>
  • 操作选择“启动程序”,点击下一步;
  • 程序或脚本选择刚才创建的C:\Scripts\RestartIIS.bat,点击下一步。

4. 配置任务权限

完成创建前,勾选“当单击完成时,打开此任务的属性对话框”:

  • 在“常规”标签下,勾选“使用最高权限运行”(重启IIS需要管理员权限);
  • 在“设置”标签下,取消勾选“如果任务运行时间超过XX小时就停止”,确保任务能正常执行。

方法二:用PowerShell脚本实时监控

1. 编写监控脚本

新建文本文件,输入以下代码后保存为RestartIISOnChange.ps1(比如存到C:\Scripts文件夹下):

# 目标监控文件夹路径
$folderPath = "C:\inetpub\wwwroot\mywebsite\products\files"

# 创建文件监控对象
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = $folderPath
$watcher.IncludeSubdirectories = $true  # 如需监控子文件夹设为true,否则设为false
$watcher.EnableRaisingEvents = $true

# 定义文件变更时的执行动作
$action = {
    $path = $Event.SourceEventArgs.FullPath
    $changeType = $Event.SourceEventArgs.ChangeType
    Write-Host "文件 $path 发生 $changeType 变更,开始重启IIS..."
    # 执行IIS重启命令
    iisreset /restart
}

# 注册文件变更事件(修改、创建、删除、重命名)
Register-ObjectEvent $watcher "Changed" -Action $action | Out-Null
Register-ObjectEvent $watcher "Created" -Action $action | Out-Null
Register-ObjectEvent $watcher "Deleted" -Action $action | Out-Null
Register-ObjectEvent $watcher "Renamed" -Action $action | Out-Null

Write-Host "正在监控文件夹 $folderPath 的变更..."
# 保持脚本运行
while ($true) { Sleep 5 }

2. 测试脚本

右键以管理员身份运行PowerShell,执行脚本C:\Scripts\RestartIISOnChange.ps1,修改目标文件夹内的文件,验证是否自动重启IIS。

3. 设置脚本开机自启(可选)

如果需要脚本持续运行,可通过任务计划程序配置:

  • 创建新任务,触发器选择“登录时”;
  • 操作选择“启动程序”,程序填powershell.exe,参数填-ExecutionPolicy Bypass -File "C:\Scripts\RestartIISOnChange.ps1";
  • 同样勾选“使用最高权限运行”。

注意事项

  • 权限要求:两种方案都需要管理员权限才能执行,否则无法重启IIS。
  • 文件审核开启:方法一中的4663事件需要系统开启目标文件夹的文件审核,操作路径:文件夹属性→安全→高级→审核→添加,设置对“修改”等操作的审核规则,否则不会生成对应事件。
  • 避免频繁触发:如果目标文件夹有高频文件变更,建议在脚本中添加延迟判断逻辑,防止IIS被频繁重启导致服务不稳定。

内容的提问来源于stack exchange,提问作者Phuluso Ramulifho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 19:25:27