$ESXArray = @(
New-Object PSObject -Property @{Hostname = 'ServerNameONE'; Password = 'Passw0rd1'}
New-Object PSObject -Property @{Hostname = 'ServerNameTWO'; Password = 'Passw0rd2'}
New-Object PSObject -Property @{Hostname = 'ServerNameThree'; Password = 'Passw0rd3'}
)
$cmdsub = @'
/etc/init.d/slpd stop;
/etc/init.d/slpd status;
esxcli network firewall ruleset set -r CIMSLP -e 0;
chkconfig slpd off;
chkconfig --list | grep slpd;
'@
foreach($ESXHostObject in $ESXArray)
{
Write-Host "Processing $($ESXHostObject.Hostname)"
$secPswd = ConvertTo-SecureString $($ESXHostObject.Password) -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ('root', $secPswd)
$ESXHost = Get-VMHost -Name $ESXHostObject.Hostname
Get-VMHostService -VMHost $ESXHost | where{$_.Key -eq 'TSM-SSH'} | Start-VMHostService -Confirm:$false | Out-Null
$session = New-SSHSession -ComputerName $ESXHost.Name -Credential $cred –AcceptKey
Invoke-SSHCommand -SSHSession $session -Command $cmdSub | Select -ExpandProperty Output
Remove-SSHSession -SSHSession $session | Out-Null
Get-VMHostService -VMHost $ESXHost | where{$_.Key -eq 'TSM-SSH'} | Stop-VMHostService -Confirm:$false | Out-Null
}