PowerCLI is a very flexible tool for vSphere automation. One morning, I connect to vSphere environment & found this error. See Fig-1.
"The underlying connection was closed: An unexpected error occurred on a send"
Fig-1: Error connecting to vCenter
I can ping to vCenter server & can connect to vSphere Web Client. So, I checked for the $Error[0] for exception, it is likely to be a certificate error. But, when I checked the certificate by vSphere Web Client, it's not going to be expired soon.PowerCLI C:\> $error[0] | fl * -Force
PSMessageDetails :
Exception : VMware.VimAutomation.Sdk.Types.V1.ErrorHandling.VimException.ViError: 7/22/2017 12:10:08 AM Connect-VIServer The underlying connection was closed: An unexpected error occurred on a send. ---> System.Net.WebException: The underlying connection was
closed: An unexpected error occurred on a send. ---> System.IO.IOException: The handshake failed due to an unexpected packet format.
at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state,
Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean
preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result)
at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.ConnectStream.WriteHeaders(Boolean async)
--- End of inner exception stack trace ---
So, I check the PowerCLI Connection Settings by the following command, See Fig-2.
Get-PowerCLIConfiguration | fl *
Fig-2 Get PowerCLI Connection Configuration
Now, I found that the connection is using the system proxy (marked in Fig-2). So, I check the system proxy settings.Control Panel > Internet Options > Connections > LAN Settings > Proxy server and it is using 127.0.0.1 with 6289 port. See Fig-3.
Fig-3: The proxy is used in Internet Options
Set-PowerCLIConfiguration -Scope User -ProxyPolicy NoProxy
Fig-4: Change PowerCLI configuration to use No Proxy
Session - changes are maintained for current opened PowerCLI session only
User - changes are permanent for current user only
AllUsers - changes are permanent for all users
Now, we can connect to vCenter successfully. See Fig-5
Fig-5: Connection is ok now
Nice Blog, Best microsoft office 2010 professional for Mac Home and Business edition is a powerful suite which fulfils the productivity applications, written for Mac OS X.
ReplyDelete