I got:
Get-VMHost : Missing an argument for parameter 'Name'. Specify a parameter of type 'System.String[]' and try again.
At line:1 char:12
+ Get-VMHost -Name -PipelineVariable esx
+ ~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-VMHost], ParameterBindingException
+ FullyQualifiedErrorId : MissingArgument,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetVMHost
Just had to drop -name and it worked perfectly, thanks LucD!
Get-VMHost -PipelineVariable esx |
ForEach-Object -Process {
Write-Host "Looking at $($esx.Name)"
Write-Host "`tBefore change"
$esxcli.system.coredump.network.get.Invoke()
$vc = ([uri]$esx.ExtensionData.Client.ServiceUrl).Host
$esxcli = Get-EsxCli -VMHost $esx -V2
$arguments = $esxcli.system.coredump.network.set.CreateArgs()
$arguments.interfacename = 'vmk0'
$arguments.serverip = ([System.Net.Dns]::GetHostAddresses($vc)).IPAddressToString
$arguments.serverport = 6500
$esxcli.system.coredump.network.set.Invoke($arguments)
$arguments = $esxcli.system.coredump.network.set.CreateArgs()
$arguments.enable = $true
$esxcli.system.coredump.network.set.Invoke($arguments)
Write-Host "`tAfter change"
$esxcli.system.coredump.network.get.Invoke()
}