What output do you get if you run:
Connect-VIserver-Server$HostToPatch-user$HostUser-password$HostPass$esxcli=Get-EsxCli-VMHost$HostToPatch$esxcli.software.vib |Get-Member-MemberTypeCodeMethod |Where-Object {$_.Name -eq"remove"} |Select-Object-PropertyDefinition
On my ESXi 5.1 server I get:
Definition
----------
vim.EsxCLI.software.vib.remove.InstallationResult remove(boolean dryrun, boolean force, boolean maintenancemode, boolean noliveinstall, string[] vibname)
This means that the dryrun parameter is the first one. That is according to the vSphere Command-Line Interface reference for "esxcli software vib remove":
- --dry-run
- Performs a dry-run only. Report the VIB-level operations that would be performed, but do not change anything in the system.
- --force | -f
- Bypasses checks for package dependencies, conflicts, obsolescence, and acceptance levels. Really not recommended unless you know what you are doing. Use of this option will result in a warning being displayed in the vSphere Client.
- --maintenance-mode
- Pretends that maintenance mode is in effect. Otherwise, remove will stop for live removes that require maintenance mode. This flag has no effect for reboot required remediations.
- --no-live-install
- Forces an remove to /altbootbank even if the VIBs are eligible for live removal. Will cause installation to be skipped on PXE-booted hosts.
- --vibname | -n
- Specifies one or more VIBs on the host to remove. Must be one of the following forms: name, name:version, vendor:name, vendor:name:version. (required)
- --help
- Show the help message.
If you get the same output, then I would try to modify the first $false parameter in $true.
$dellsoftware | ForEach { $esxcli.software.vib.remove($true,$true,$false,$true,$_.Name)}
It doesn't seem logical, but you can always try.