PowerCLI – HPE – ESXi iSCSI Advanced Options

PowerCLI
# found https://vmscribble.com/

Write-Host ""
Write-Host "Change the iSCSI vmhba64 Advanced Options LoginTimeout | NoopOutTimeout | NoopOutInterval to 30"
Read-Host "Press Enter to continue"

# Set Variables
$vCenter = Read-Host "Enter the vCenter Name"
$esxihost = Read-Host "Enter the ESXi host Name"
$iScsiHbaDevice = 'vmhba64'

# Connect to the vCenter
Connect-VIServer $vCenter | out-null 

# Get-View for the host
$HostView = Get-VMHost $esxihost | Get-View
$HostStorageSystemID = $HostView.configmanager.StorageSystem

# NoopTimeout
$NoopTimeout = New-Object VMware.Vim.HostInternetScsiHbaParamValue[] (1)
$NoopTimeout[0] = New-Object VMware.Vim.HostInternetScsiHbaParamValue
$NoopTimeout[0].Value = 30
$NoopTimeout[0].Key = 'NoopTimeout'
$_this = Get-View -Id $HostStorageSystemID
$_this.UpdateInternetScsiAdvancedOptions($iScsiHbaDevice, $null, $NoopTimeout)

# LoginTimeout
$LoginTimeout = New-Object VMware.Vim.HostInternetScsiHbaParamValue[] (1)
$LoginTimeout[0] = New-Object VMware.Vim.HostInternetScsiHbaParamValue
$LoginTimeout[0].Value = 30
$LoginTimeout[0].Key = 'LoginTimeout'
$_this = Get-View -Id $HostStorageSystemID
$_this.UpdateInternetScsiAdvancedOptions($iScsiHbaDevice, $null, $LoginTimeout)

# NoopInterval
$NoopInterval = New-Object VMware.Vim.HostInternetScsiHbaParamValue[] (1)
$NoopInterval[0] = New-Object VMware.Vim.HostInternetScsiHbaParamValue
$NoopInterval[0].Value = 30
$NoopInterval[0].Key = 'NoopInterval'
$_this = Get-View -Id $HostStorageSystemID
$_this.UpdateInternetScsiAdvancedOptions($iScsiHbaDevice, $null, $NoopInterval)

Write-Host ""
Write-Host "Please REBOOT $esxihost for the changes to take effect." -foregroundcolor Yellow

# Disconnect from the vCenter
Disconnect-VIServer $vCenter -Confirm:$false