如何让PowerShell等待AWS ENA驱动安装脚本完成后再执行重启?
解决AWS ENA驱动升级脚本中重启时机异常问题
核心问题根源
直接调用.\install.ps1后立刻执行Restart-Computer,本质是因为install.ps1内部启动了异步运行的驱动安装进程,脚本自身提前返回,导致重启命令在驱动实际安装完成前就触发,进而引发实例重启卡顿。
具体解决方案
1. 强制等待install.ps1完全执行
用Start-Process命令调用脚本并强制等待其结束,替代直接调用的方式,确保脚本逻辑走完:
cd \Temp\AwsEnaNetworkDriver # 启动install.ps1并等待其执行完毕 Start-Process powershell.exe -ArgumentList "-File .\install.ps1" -Wait -NoNewWindow
2. 验证驱动安装状态(推荐添加)
在脚本执行结束后,额外校验ENA驱动的实际状态,避免脚本执行完成但驱动未生效就重启:
# 检查ENA驱动服务是否正常运行 $enaService = Get-Service -Name "AwsEnaNetworkDriver" -ErrorAction SilentlyContinue while ($null -eq $enaService -or $enaService.Status -ne "Running") { Start-Sleep -Seconds 5 $enaService = Get-Service -Name "AwsEnaNetworkDriver" -ErrorAction SilentlyContinue } # 可选:校验驱动版本(替换为你的目标版本) $targetVersion = "2.2.10" $currentVersion = (Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DeviceName -like "*Elastic Network Adapter*"}).DriverVersion while ($currentVersion -ne $targetVersion) { Start-Sleep -Seconds 5 $currentVersion = (Get-WmiObject Win32_PnPSignedDriver | Where-Object {$_.DeviceName -like "*Elastic Network Adapter*"}).DriverVersion }
3. 等待网络恢复
由于安装过程会出现15-20秒的网络离线,可添加网络连通性检查,确保网络恢复后再重启:
# 等待默认网关连通(验证网络恢复) $defaultGateway = (Get-NetRoute -DestinationPrefix 0.0.0.0/0).NextHop while (-not (Test-Connection -ComputerName $defaultGateway -Count 1 -Quiet -ErrorAction SilentlyContinue)) { Start-Sleep -Seconds 3 }
完整脚本示例
cd \Temp\AwsEnaNetworkDriver # 等待install.ps1执行完成 Start-Process powershell.exe -ArgumentList "-File .\install.ps1" -Wait -NoNewWindow # 等待ENA服务启动 $enaService = Get-Service -Name "AwsEnaNetworkDriver" -ErrorAction SilentlyContinue while ($null -eq $enaService -or $enaService.Status -ne "Running") { Start-Sleep -Seconds 5 $enaService = Get-Service -Name "AwsEnaNetworkDriver" -ErrorAction SilentlyContinue } # 等待网络恢复 $defaultGateway = (Get-NetRoute -DestinationPrefix 0.0.0.0/0).NextHop while (-not (Test-Connection -ComputerName $defaultGateway -Count 1 -Quiet -ErrorAction SilentlyContinue)) { Start-Sleep -Seconds 3 } # 执行重启 Restart-Computer -Force
内容的提问来源于stack exchange,提问作者prof x
相关产品推荐
相关产品推荐

