I am getting errors re mediating profiles stating the "option.option has been changed from its expected default value". But there is no "option.option" in the settings. My workaround is to just take a profile from a host that already has this error and apply it to the other hosts in the cluster.
Thanks for the help.
Have you solved this error?
We are having the same issue in our environment with 6.5 U2
I ran into this recently in 6.5 U2. It appears to be a display error in the vSphere Web Client with some properties.
The way I found the values that were problematic was to use the MOB to check the CheckProfileCompliance_Task output.
You can access it in the MOB at this URL : https://my.vcenter.domain.local/mob/?moid=HostProfileManager
Click the Host Profile in question, and in the entity section, copy the "host-xxxxxx" value you want to validate for compliance.
Click the CheckProfileCompliance_Task option.
Replace the MOID value with your copied MOID and click Invoke Method.
Once you have invoked it, you'll see the task link. Click that and then go to info.
(Press F5 to refresh until the state under info is "success")
From there click that and then go to info, then result. You should see the actual message of options that have failed.
In my case they were related to the ESXi Host Client CEIP and some other variable Mem.VMOverheadGrowthLimit.
Hopefully this helps you narrow down your issue.
Super Helpful.
Followed the process, and found that Mem.VMOverheadGrowthLimit was also our issue, while adding 5.5 hosts to a 6.5 VC.
The Ultimate Solution was to disable DRS before remediating the new 5.5 host profile.
Thanks!
Glad it was helpful.
Here's a quick and dirty PowerCLI snippet I wrote to save me the clicks. It certainly has room for improvement so feel free to use it.
function Get-VMHostProfileComplianceVerbose {
param(
[Parameter(Mandatory=$true)][VMware.VimAutomation.ViCore.Impl.V1.Inventory.VMHostImpl]$VMHost,
[VMware.VimAutomation.ViCore.Types.V1.Host.Profile.VMHostProfile]$HostProfile
)
# Execute the compliance task.
try {
$Task = $HostProfile.ExtensionData.CheckProfileCompliance_Task($VMHost.ExtensionData.MoRef)
$TaskObject = Get-VIObjectByVIView -MORef $Task
Wait-Task -Task (Get-Task -Id $TaskObject.Id)
$Results = $TaskObject.ExtensionData.Info.Result
} catch {
Write-Information -MessageData "There was an error running the compliance task: $($Error[0].Exception)" -InformationAction Continue
break
}
$Output = @()
# Check if it's compliant or not.
if($Results.Count -eq 1 -and $Results[0].ComplianceStatus -eq "compliant") {
Write-Information -MessageData "This Host is compliant." -InformationAction Continue
break
} else {
$Failures = $Results[0].Failure
foreach($Failure in $Failures) {
# Check for the failures and make them more readable!
$Type = $Failure.FailureType.split(".")[$Failure.FailureType.split(".").count-1]
$Message = $Failure.Message.Message
$Output += "Compliance Failure Type: $Type, Message: $Message"
}
}
return $Output
}
That's some solid tech info. Much appreciated. I've taken down the whole thing into my personal notes.