mirror of
https://github.com/VirtualDrivers/Virtual-Display-Driver.git
synced 2026-10-22 06:32:32 -05:00
70 lines
2.7 KiB
PowerShell
70 lines
2.7 KiB
PowerShell
[CmdletBinding()]
|
|
param(
|
|
# SHA256 hash of the DevCon binary to install
|
|
# Possible values can be found at:
|
|
# https://github.com/Drawbackz/DevCon-Installer/blob/master/devcon_sources.json
|
|
# Look for the "sha256" field in the JSON for valid hash values
|
|
[Parameter(Mandatory=$true)]
|
|
[string]$DevconHash,
|
|
|
|
# Latest stable version of VDD
|
|
[Parameter(Mandatory=$false)]
|
|
[string]$DriverVersion = "latest"
|
|
)
|
|
|
|
# Create temp directory
|
|
$tempDir = Join-Path $env:TEMP "VDDInstall"
|
|
New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
|
|
|
|
# Download and run DevCon Installer
|
|
Write-Host "Installing DevCon..." -ForegroundColor Cyan
|
|
$devconPath = Join-Path $tempDir "Devcon.Installer.exe"
|
|
Invoke-WebRequest -Uri "https://github.com/Drawbackz/DevCon-Installer/releases/download/1.4-rc/Devcon.Installer.exe" -OutFile $devconPath
|
|
Start-Process -FilePath $devconPath -ArgumentList "install -hash $DevconHash -update -dir `"$tempDir`"" -Wait -NoNewWindow
|
|
|
|
# Define path to devcon executable
|
|
$devconExe = Join-Path $tempDir "devcon.exe"
|
|
|
|
# Handle driver download
|
|
if ($DriverVersion -eq "latest") {
|
|
Write-Host "Determining latest driver version..." -ForegroundColor Cyan
|
|
$apiUrl = "https://api.github.com/repos/VirtualDrivers/Virtual-Display-Driver/releases/latest"
|
|
$headers = @{
|
|
"Accept" = "application/vnd.github.v3+json"
|
|
"User-Agent" = "PowerShell-VDDInstaller"
|
|
}
|
|
|
|
try {
|
|
$releaseInfo = Invoke-RestMethod -Uri $apiUrl -Headers $headers
|
|
$latestVersion = $releaseInfo.tag_name
|
|
# Look for the x64 zip asset
|
|
$asset = $releaseInfo.assets | Where-Object { $_.name -match "x64\.zip$" } | Select-Object -First 1
|
|
|
|
if ($asset) {
|
|
$downloadUrl = $asset.browser_download_url
|
|
Write-Host "Found latest version: $latestVersion" -ForegroundColor Cyan
|
|
} else {
|
|
throw "Could not find x64 driver package in latest release"
|
|
}
|
|
} catch {
|
|
Write-Host "Error fetching latest release information: $_" -ForegroundColor Red
|
|
exit 1
|
|
}
|
|
} else {
|
|
# Use specified version
|
|
$downloadUrl = "https://github.com/VirtualDrivers/Virtual-Display-Driver/releases/download/$DriverVersion/Signed-Driver-v$DriverVersion-x64.zip"
|
|
}
|
|
|
|
# Download and extract driver package
|
|
Write-Host "Downloading driver from: $downloadUrl" -ForegroundColor Cyan
|
|
$driverZipPath = Join-Path $tempDir "driver.zip"
|
|
Invoke-WebRequest -Uri $downloadUrl -OutFile $driverZipPath
|
|
Expand-Archive -Path $driverZipPath -DestinationPath $tempDir -Force
|
|
|
|
# Install the driver
|
|
Write-Host "Installing virtual display driver..." -ForegroundColor Cyan
|
|
Push-Location $tempDir
|
|
& $devconExe install .\MttVDD.inf "Root\MttVDD"
|
|
Pop-Location
|
|
|
|
Write-Host "Driver installation completed." -ForegroundColor Green |