如何在Azure Pipeline中记录各服务器.NET SDK安装的起止时间?
可以标记每台服务器的SDK安装时间
当然可以,你只需要在远程执行的脚本块里加个时间记录逻辑,把相关信息输出到Azure Pipeline日志里,就能清晰追踪每台服务器的安装耗时和状态。
修改后的脚本示例
Invoke-Command -ComputerName $computers -Credential $credential { # 记录当前服务器的安装开始时间 $installStartTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff" Write-Host "[$env:COMPUTERNAME] .NET SDK 安装开始时间: $installStartTime" # 执行SDK安装,捕获进程退出码判断结果 $installProcess = Start-Process -FilePath "c:\temp\dotnet-sdk-8.0.303-win-x64.exe" ` -ArgumentList "/install /quiet /norestart" -Wait -PassThru # 记录安装结束时间并计算耗时 $installEndTime = Get-Date -Format "yyyy-MM-dd HH:mm:ss.fff" $installDuration = (Get-Date $installEndTime) - (Get-Date $installStartTime) $installStatus = if ($installProcess.ExitCode -eq 0) { "成功" } else { "失败,退出码: $($installProcess.ExitCode)" } # 输出完整安装信息到Pipeline日志 Write-Host "[$env:COMPUTERNAME] .NET SDK 安装结束时间: $installEndTime" Write-Host "[$env:COMPUTERNAME] 安装耗时: $($installDuration.TotalSeconds) 秒" Write-Host "[$env:COMPUTERNAME] 安装状态: $installStatus" }
核心细节说明
- 用
$env:COMPUTERNAME获取当前服务器名称,确保每条日志都能对应到具体机器 - 时间格式保留毫秒级精度,方便精准排查耗时差异
- 替换直接执行exe为
Start-Process,能捕获安装程序的退出码,准确判断安装是否成功 Write-Host的输出会直接显示在Azure Pipeline的任务日志中,无需额外配置就能查看
内容的提问来源于stack exchange,提问作者Rod
相关产品推荐
相关产品推荐

