This commit is contained in:
ami-GS 2024-11-14 13:16:20 -08:00
Родитель ad8092c811
Коммит 52fa510340
3 изменённых файлов: 32 добавлений и 0 удалений

Просмотреть файл

@ -230,9 +230,17 @@ function Install-SigningCertificates {
# NB: XDP can be uninstalled via Uninstall-Xdp
function Install-Xdp-Driver {
if (!$IsWindows) { return } # Windows only
# Install VCRT. Not required for official XDP builds.
Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"
Start-Process -FilePath "vc_redist.x64.exe" -ArgumentList "/install /quiet /norestart" -Wait -NoNewWindow
Write-Host "Downloading XDP msi"
$MsiPath = Join-Path $ArtifactsPath "xdp.msi"
Invoke-WebRequest -Uri (Get-Content (Join-Path $PSScriptRoot "xdp.json") | ConvertFrom-Json).installer -OutFile $MsiPath
$CertFileName = 'xdp.cer'
Get-AuthenticodeSignature $MsiPath | Select-Object -ExpandProperty SignerCertificate | Export-Certificate -Type CERT -FilePath $CertFileName
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\root'
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\trustedpublisher'
Write-Host "Installing XDP driver"
msiexec.exe /i $MsiPath /quiet | Out-Null
}

Просмотреть файл

@ -67,10 +67,18 @@ if ($Command.Contains("/home/secnetperf/_work/quic/artifacts/bin/linux/x64_Relea
./artifacts/bin/windows/x64_Release_schannel/secnetperf -exec:$mode -io:$io -stats:$stats
} elseif ($Command.Contains("Install_XDP")) {
Write-Host "Executing command: Install_XDP"
# Install VCRT. Not required for official XDP builds.
Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"
Start-Process -FilePath "vc_redist.x64.exe" -ArgumentList "/install /quiet /norestart" -Wait -NoNewWindow
Write-Host "(SERVER) Downloading XDP installer"
$installerUri = $Command.Split(";")[1]
$msiPath = Repo-Path "xdp.msi"
Invoke-WebRequest -Uri $installerUri -OutFile $msiPath -UseBasicParsing
$CertFileName = 'xdp.cer'
Get-AuthenticodeSignature $msiPath | Select-Object -ExpandProperty SignerCertificate | Export-Certificate -Type CERT -FilePath $CertFileName
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\root'
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\trustedpublisher'
Write-Host "(SERVER) Installing XDP. Msi path: $msiPath"
msiexec.exe /i $msiPath /quiet | Out-Host
Wait-DriverStarted "xdp" 10000

Просмотреть файл

@ -135,11 +135,19 @@ function Wait-DriverStarted {
# Download and install XDP on both local and remote machines.
function Install-XDP {
param ($Session, $RemoteDir)
# Install VCRT. Not required for official XDP builds.
Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"
Start-Process -FilePath "vc_redist.x64.exe" -ArgumentList "/install /quiet /norestart" -Wait -NoNewWindow
$installerUri = (Get-Content (Join-Path $PSScriptRoot "xdp.json") | ConvertFrom-Json).installer
$msiPath = Repo-Path "artifacts/xdp.msi"
Write-Host "Downloading XDP installer"
whoami
Invoke-WebRequest -Uri $installerUri -OutFile $msiPath -UseBasicParsing
$CertFileName = 'xdp.cer'
Get-AuthenticodeSignature $msiPath | Select-Object -ExpandProperty SignerCertificate | Export-Certificate -Type CERT -FilePath $CertFileName
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\root'
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\trustedpublisher'
Write-Host "Installing XDP driver locally"
msiexec.exe /i $msiPath /quiet | Out-Null
$Size = Get-FileHash $msiPath
@ -157,6 +165,14 @@ function Install-XDP {
Copy-Item -ToSession $Session $msiPath -Destination $remoteMsiPath
$WaitDriverStartedStr = "${function:Wait-DriverStarted}"
Invoke-Command -Session $Session -ScriptBlock {
# Install VCRT. Not required for official XDP builds.
Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe"
Start-Process -FilePath "vc_redist.x64.exe" -ArgumentList "/install /quiet /norestart" -Wait -NoNewWindow
$CertFileName = 'xdp.cer'
Get-AuthenticodeSignature $Using:remoteMsiPath | Select-Object -ExpandProperty SignerCertificate | Export-Certificate -Type CERT -FilePath $CertFileName
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\root'
Import-Certificate -FilePath $CertFileName -CertStoreLocation 'cert:\localmachine\trustedpublisher'
msiexec.exe /i $Using:remoteMsiPath /quiet | Out-Host
$WaitDriverStarted = [scriptblock]::Create($Using:WaitDriverStartedStr)
& $WaitDriverStarted xdp 10000