PowerShell Installing NuGet, says unable to access internet, but I actually can

后端 未结 3 432
萌比男神i
萌比男神i 2021-01-31 07:56

I followed the steps mentioned in Using PowerShell Behind a Proxy to configure my proxy server.

netsh winhttp set proxy \"[IP]:[Port]\"
$Wcl = New-Object System.         


        
相关标签:
3条回答
  • 2021-01-31 08:21

    Try this:

    [System.Net.WebRequest]::DefaultWebProxy.Credentials = System.Net.CredentialCache]::DefaultCredentials
    

    If the above doesn't work try this:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    0 讨论(0)
  • 2021-01-31 08:29

    could be TLS security related (ref: https://rnelson0.com/2018/05/17/powershell-in-a-post-tls1-1-world/)

    Try this command first:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    

    then try to do the update. Note: the command only affects the current session and does not persist.

    You may also check what version of TLS for client is set on computer. Looks like TLS 1.0 for client is required. (ref: https://powershell.org/forums/topic/wmf-5-1-upgrade-broken-repositories/)

    Michael

    0 讨论(0)
  • 2021-01-31 08:39

    As per https://community.spiceworks.com/topic/2265662-powershell-get-download-problem

    I had the same problem today...

    My issue was PowerShell Gallery would not download anything on W2016 boxes:

    VERBOSE: InstallPackage' - name='AzureRM.BootStrapper',
    version='0.5.0',destination='C:\Users\Administrator\AppData\Local\Temp\2\1254134668'
    VERBOSE: DownloadPackage' - name='AzureRM.BootStrapper',
    version='0.5.0',destination='C:\Users\Administrator\AppData\Local\Temp\2\1254134668\AzureRM.BootStrapper\AzureRM.BootSt
    rapper.nupkg', uri='https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0'
    VERBOSE: Downloading 'https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0'.
    VERBOSE: An error occurred while sending the request.
    VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0' for '2' more
    times
    VERBOSE: An error occurred while sending the request.
    VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0' for '1' more
    times
    VERBOSE: An error occurred while sending the request.
    VERBOSE: Retry downloading 'https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0' for '0' more
    times
    VERBOSE: Downloading package 'AzureRM.BootStrapper' failed, please make sure
    'https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0' is accessable.
    WARNING: Source Location 'https://www.powershellgallery.com/api/v2/package/AzureRM.BootStrapper/0.5.0' is not valid.
    PackageManagement\Install-Package : Package 'AzureRM.BootStrapper' failed to download.
    At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1772 char:21
    + ...          $null = PackageManagement\Install-Package @PSBoundParameters
    +                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : ResourceUnavailable: (C:\Users\Admini...tStrapper.nupkg:String) [Install-Package], Excep
       tion
        + FullyQualifiedErrorId : PackageFailedInstallOrDownload,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPac
       kage
    

    What helped me to find out it was TLS v1.2 was this error in Fiddler:

    System.Security.Authentication.AuthenticationException A call to SSPI failed, see inner exception
    

    From there I got this -> A call to SSPI failed, see inner exception - The Local Security Authority cannot be contacted

    Then tested locally with:

    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    

    Which worked fine!

    Hopefully, that will help somebody in the future :-)

    You can set it for the whole .NET framework by editing registry:

    # Set strong cryptography on 64 bit .Net Framework (version 4 and above)
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord
    
    
    # Set strong cryptography on 32 bit .Net Framework (version 4 and above)
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord 
    

    This happened a few days ago on Windows Server 2016 Datacentre boxes, Win 2019 works fine still.

    Commands thanks to: https://johnlouros.com/blog/enabling-strong-cryptography-for-all-dot-net-applications

    Happy Azure Stacking!!!

    0 讨论(0)
提交回复
热议问题