51 lines
1.2 KiB
PowerShell
51 lines
1.2 KiB
PowerShell
$package = 'VirtualBox.ExtensionPack'
|
|
$vboxName = 'Oracle VM VirtualBox Extension Pack'
|
|
|
|
try {
|
|
# simulate the unix command for finding things in path
|
|
# http://stackoverflow.com/questions/63805/equivalent-of-nix-which-command-in-powershell
|
|
function Which([string]$cmd)
|
|
{
|
|
Get-Command -ErrorAction "SilentlyContinue" $cmd |
|
|
Select -ExpandProperty Definition
|
|
}
|
|
|
|
function Uninstall-ExtensionPack([string] $name)
|
|
{
|
|
$vboxManageDefault = Join-Path $Env:ProgramFiles 'Oracle\VirtualBox\VBoxManage.exe'
|
|
|
|
$vboxManage = (Which VBoxManage),
|
|
$vboxManageDefault |
|
|
? { Test-Path $_ } |
|
|
Select -First 1
|
|
|
|
if (!$vboxManage)
|
|
{
|
|
throw 'Could not find VirtualBox VBoxManage.exe necessary to install extension pack'
|
|
}
|
|
|
|
&$vBoxManage extpack uninstall `"$name`"
|
|
}
|
|
|
|
Uninstall-ExtensionPack $vboxName
|
|
|
|
if ($LASTEXITCODE -ne 0)
|
|
{
|
|
Write-ChocolateyFailure $package @"
|
|
Due to a VirtualBox bug, VBoxManage appears unresponsive.
|
|
|
|
Please reboot the machine, and attempt to uninstall the VirtualBox extension pack
|
|
using the command line:
|
|
|
|
VBoxManage extpack uninstall `"$vboxName`"
|
|
"@
|
|
}
|
|
else
|
|
{
|
|
Write-ChocolateySuccess $package
|
|
}
|
|
} catch {
|
|
Write-ChocolateyFailure $package "$($_.Exception.Message)"
|
|
throw
|
|
}
|