vagrant/test/vagrant-spec/scripts/windows-setup.virtualbox.ps1

70 lines
2.4 KiB
PowerShell
Raw Normal View History

Write-Output "Downloading virtualbox guest additions"
$vboxadd_url = "http://download.virtualbox.org/virtualbox/5.2.2/VBoxGuestAdditions_5.2.2.iso"
$vboxadd_output = "C:/Windows/Temp/vboxguestadditions.iso"
(New-Object System.Net.WebClient).DownloadFile($vboxadd_url, $vboxadd_output)
Write-Output "Mounting virtualbox guest additions"
Mount-DiskImage -ImagePath $vboxadd_output
Write-Output "Installing Virtualbox Guest Additions"
Write-Output "Checking for Certificates in vBox ISO"
if(test-path E:\ -Filter *.cer)
{
Get-ChildItem E:\cert -Filter *.cer | ForEach-Object { certutil -addstore -f "TrustedPublisher" $_.FullName }
}
Start-Process -FilePath "E:\VBoxWindowsAdditions.exe" -ArgumentList "/S" -Wait
Write-Output "Downloading virtualbox"
$vbox_url = "http://download.virtualbox.org/virtualbox/5.2.2/VirtualBox-5.2.2-119230-Win.exe"
$vbox_output = "C:/Windows/Temp/virtualbox.exe"
(New-Object System.Net.WebClient).DownloadFile($vbox_url, $vbox_output)
Write-Output "Installing virtualbox"
# Extract the contents of the installer
Start-Process -FilePath $vbox_output `
-ArgumentList ('--extract','--silent','--path','C:\Windows\Temp') `
-Wait `
-NoNewWindow
# Find the installer
# Determine if this is a 64-bit or 32-bit CPU
$architecture="x86"
if ((Get-WmiObject -Class Win32_OperatingSystem).OSArchitecture -eq "64-bit") {
$architecture = "amd64"
}
cd "C:\Windows\Temp"
$matches = Get-ChildItem | Where-Object { $_.Name -match "VirtualBox-.*_$($architecture).msi" }
if ($matches.Count -ne 1) {
Write-Host "Multiple matches for VirtualBox MSI found: $($matches.Count)"
exit 1
}
$installerPath = Resolve-Path $matches[0]
# Run the installer
Start-Process -FilePath "$($env:systemroot)\System32\msiexec.exe" `
-ArgumentList "/i `"$installerPath`" /qn /norestart /l*v `"$($pwd)\vbox_install.log`"" `
-Verb RunAs `
-Wait `
-WorkingDirectory "$pwd"
cd "C:\vagrant\pkg\dist"
$vagrant_matches = Get-ChildItem | Where-Object { $_.Name -match "vagrant.*_x86_64.msi" }
if ($vagrant_matches.Count -ne 1) {
Write-Host "Could not find vagrant installer"
exit 1
}
$vagrant_installerPath = Resolve-Path $vagrant_matches[0]
Write-Output $vagrant_installerPath
Write-Output "Installing vagrant"
Start-Process -FilePath "$($env:systemroot)\System32\msiexec.exe" `
-ArgumentList "/i `"$vagrant_installerPath`" /qn /norestart /l*v `"$($pwd)\vagrant_install.log`"" `
-Verb RunAs `
-Wait `
-WorkingDirectory "$pwd"