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

Powershell Form监听wsusutil.exe执行完成后执行后续任务方案

问题解决方法

修正后完整代码

$btnStartExport.Add_Click({
 
  $nicedate = get-date -UFormat %m-%d-%y # 按MM-DD-YY格式生成日期
  
  $WSUSUtilPath = "c:\Program Files\Update Services\Tools\"
  $WSUSMetaDataPath = "c:\tools\wsusexport\"
  $isotitle = "WSUS Offline Server update $nicedate"
  $isofilename = "WSUSSvrOffline-$nicedate.iso"
  $isoFullPath = Join-Path -Path $txtISOLocation.Text -ChildPath $isofilename # 正确拼接ISO输出路径

  # Step1 检查目录是否存在
  Check-Path $WSUSMetaDataPath

  # Step2 导出WSUS元数据
  try {
    $wsusProcess = Start-Process -FilePath "$WSUSUtilPath\WsusUtil.exe" `
      -ArgumentList @("export","$WSUSMetaDataPath\$nicedate-export.xml.gz","$WSUSMetaDataPath\$nicedate-export.log") `
      -WindowStyle Hidden `
      -Wait `
      -PassThru `
      -ErrorAction Stop
  }
  catch {
    # 可在此处添加启动进程失败的提示逻辑
    Write-Error "启动WsusUtil失败:$_"
    return
  }

  # 可选:判断导出是否成功
  if ($wsusProcess.ExitCode -ne 0) {
    # 可在此处添加导出失败的提示逻辑
    Write-Error "WSUS元数据导出失败,退出码:$($wsusProcess.ExitCode)"
    return
  }

  # Step3 生成ISO文件
  Get-ChildItem "$WSUSMetaDataPath", $txtWSUSContentPath.Text | New-IsoFile -Path $isoFullPath -Force -Title $isotitle
  
  # Step4 清理元数据目录
  Get-ChildItem -Path $WSUSMetaDataPath -Include *.* -File -Recurse | ForEach-Object { $_.Delete() }
  
})
$frmMain.controls.add($btnStartExport)

两个问题的具体解决方案

1、监听wsusutil.exe运行结束再执行后续操作

你之前用do-until逻辑出现重复启动进程的问题,是因为把Start-Process写在了循环体内,每次循环都会重新启动一次程序。
正确实现不需要自己写循环监听:

  • 使用Start-Process自带的-Wait参数,执行后会自动阻塞当前线程直到目标进程退出,后续代码会自动在进程结束后运行
  • 搭配-PassThru参数可以拿到进程对象,通过ExitCode属性可以判断导出操作是否执行成功,避免导出失败还继续生成无效ISO

2、-NoNewWindow参数仍然弹出黑框

-NoNewWindow仅对当前PowerShell会话拉起的子控制台程序有效,wsusutil作为系统内置工具会忽略该参数,要完全隐藏窗口只需替换参数即可:

  • 去掉-NoNewWindow,改用-WindowStyle Hidden直接设置进程窗口为隐藏状态
  • 你代码里已经把日志输出通过参数传给了wsusutil,不会有额外输出触发窗口弹出,修改后不会再出现黑框

其他修复说明

  • 修正了原代码中SilentyContinue的拼写错误(正确为SilentlyContinue,本次优化方案中改用try-catch捕获启动异常)
  • 改用Join-Path拼接ISO输出路径,避免手动拼接出现路径分隔符缺失的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:45:04