Forum Discussion
Mukund2021
Jan 21, 2022Copper Contributor
The underlying connection was closed: An unexpected error occurred on a send
PowerShell Script connecting to SharePoint online using Connect-PNPOnline
as below code sample
$credential = Import-Clixml $currfolderPath"\SPOnlineCredential.xml"
$credentials = New-Object System.Management.Automation.PSCredential ($credential.UserName, $credential.Password)
Write-Host "User Crendtial to Run the script" $credential.UserName
$con=Connect-PnPOnline -Url $siteName -Credentials $credentials –ReturnConnection
$ctx=Get-PnPContext
gives below error:
System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.Net.FixedSizeReader.ReadPacket(Byte[] buffer, Int32 offset, Int32 count)
at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest)
at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, 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 ---
at PnP.PowerShell.Commands.Base.ConnectOnline.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
If you run the command below, does it allow you to connect?
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls -bor [Net.SecurityProtocolType]::Tls11 -bor [Net.SecurityProtocolType]::Tls12
(It allows TLS, TLS 1.1 and TLS 1.2)
- Mukund2021Copper Contributor
Dear Harm_Veenstra,
Thank you for your reply, I have used all the possible Security Protocol on defining on Top of the script and also inside the function of my PowerShell script , Please find the attached screen shot for the same but still I am getting same error, Is it some thing I should upgrade PowerShellGet Module but it is also , at latest version 1.0.0.1, Please guide me for this error
Thank you so much.
With Regards
Mukund
- Perhaps upgrading to the newer pnp.powershell module is an idea? https://www.sharepointdiary.com/2021/02/how-to-install-pnp-powershell-module-for-sharepoint-online.html Has the same commands, when running the older just now it said to uninstall the old version (uninstall-Module -Name SharePointPnPPowerShellOnline -AllVersions -Force) and use install-module pnp.powershell