PSResourceGet
PSResourceGet copied to clipboard
Update-PSResource Az failure
Prerequisites
- [X] Write a descriptive title.
- [X] Make sure you are able to repro it on the latest version
- [X] Search the existing issues.
Steps to reproduce
I am unable to update the Az module.
Expected behavior
Az module would be updated.
Actual behavior
PS C:\> Update-PSResource Az -Repository PSGallery
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its Trusted value by running the Set-PSResourceRepository cmdlet. Are
you sure you want to install the PSResource from 'PSGallery'?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): A
Update-PSResource: 'An error occurred while sending the request.' Request sent: 'https://www.powershellgallery.com/api/v2/FindPackagesById()?id='Az.Advisor'&$orderby=NormalizedVersion%20desc&$inlinecount=allpages&$skip=0&$filter=Id%20eq%20'Az.Advisor'%20and%20NormalizedVersion%20ge%20'2.0.0'%20and%20NormalizedVersion%20le%20'2.0.9'' Inner exception: 'Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..'
Update-PSResource: Object reference not set to an instance of an object.
Error details
PS C:\> Get-Error
Exception :
Type : System.NullReferenceException
TargetSite :
Name : InstallVersion
DeclaringType : Microsoft.PowerShell.PSResourceGet.Cmdlets.V2ServerAPICalls, Microsoft.PowerShell.PSResourceGet, Version=1.0.1.0, Culture=neutral,
PublicKeyToken=null
MemberType : Method
Module : Microsoft.PowerShell.PSResourceGet.dll
Message : Object reference not set to an instance of an object.
Source : Microsoft.PowerShell.PSResourceGet
HResult : -2147467261
StackTrace :
at Microsoft.PowerShell.PSResourceGet.Cmdlets.V2ServerAPICalls.InstallVersion(String packageName, String version, ErrorRecord& errRecord)
at Microsoft.PowerShell.PSResourceGet.Cmdlets.V2ServerAPICalls.InstallPackage(String packageName, String packageVersion, Boolean includePrerelease, ErrorRecord&
errRecord)
at Microsoft.PowerShell.PSResourceGet.Cmdlets.InstallHelper.BeginPackageInstall(VersionType searchVersionType, NuGetVersion specificVersion, VersionRange
versionRange, String pkgNameToInstall, PSRepositoryInfo repository, ServerApiCall currentServer, ResponseUtil currentResponseUtil, String tempInstallPath, Hashtable
packagesHash, ErrorRecord& errRecord)
at Microsoft.PowerShell.PSResourceGet.Cmdlets.InstallHelper.InstallPackages(String[] pkgNamesToInstall, PSRepositoryInfo repository, ServerApiCall currentServer,
ResponseUtil currentResponseUtil, ScopeType scope, Boolean skipDependencyCheck, FindHelper findHelper)
at Microsoft.PowerShell.PSResourceGet.Cmdlets.InstallHelper.ProcessRepositories(String[] repository, Boolean trustRepository, Boolean skipDependencyCheck,
ScopeType scope)
at Microsoft.PowerShell.PSResourceGet.Cmdlets.InstallHelper.BeginInstallPackages(String[] names, VersionRange versionRange, NuGetVersion nugetVersion, VersionType
versionType, String versionString, Boolean prerelease, String[] repository, Boolean acceptLicense, Boolean quiet, Boolean reinstall, Boolean force, Boolean
trustRepository, Boolean noClobber, Boolean asNupkg, Boolean includeXml, Boolean skipDependencyCheck, Boolean authenticodeCheck, Boolean savePkg, List`1
pathsToInstallPkg, Nullable`1 scope, String tmpPath, HashSet`1 pkgsInstalled)
at Microsoft.PowerShell.PSResourceGet.Cmdlets.UpdatePSResource.ProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()
CategoryInfo : NotSpecified: (:) [Update-PSResource], NullReferenceException
FullyQualifiedErrorId : System.NullReferenceException,Microsoft.PowerShell.PSResourceGet.Cmdlets.UpdatePSResource
InvocationInfo :
MyCommand : Update-PSResource
ScriptLineNumber : 1
OffsetInLine : 1
HistoryId : 83
Line : Update-PSResource Az -Repository PSGallery
Statement : Update-PSResource Az -Repository PSGallery
PositionMessage : At line:1 char:1
+ Update-PSResource Az -Repository PSGallery
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InvocationName : Update-PSResource
CommandOrigin : Internal
ScriptStackTrace : at <ScriptBlock>, <No file>: line 1
Environment data
PS C:\> $PSVersionTable
Name Value
---- -----
PSVersion 7.4.1
PSEdition Core
GitCommitId 7.4.1
OS Microsoft Windows 10.0.19044
Platform Win32NT
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
WSManStackVersion 3.0
Version
Script 2.2.5 PowerShellGet Desk
Visuals
No response
@Liturgist can you repro this with the latest version of Microsoft.PowerShell.PSResourceGet? And if so, can you share the output of gmo "Microsoft.PowerShell.PSResourceGet"? Thanks!
Can't repro. It's very slow, but it works. PSResourceGet v1.0.5.
# Clean up destination
[System.IO.Directory]::GetDirectories(
('{0}\PowerShell\Modules' -f [System.Environment]::GetFolderPath('MyDocuments'))
).Where{
$_.Split([System.IO.Path]::DirectorySeparatorChar)[-1] -eq 'Az' -or
$_.Split([System.IO.Path]::DirectorySeparatorChar)[-1].StartsWith('Az.','OrdinalIgnoreCase')
}.ForEach{
[System.IO.Directory]::Delete($_,$true)
}
# Install older version first
Install-PSResource -Repository 'PSGallery' -TrustRepository -Name 'Az' -Version '11.6.0' -Scope 'CurrentUser' -Verbose
# Update
Update-PSResource -Repository 'PSGallery' -TrustRepository -Name 'Az' -Scope 'CurrentUser' -Verbose
Close issue?
@anamnavi, Az.* directories are in 'C:\Users\$Env:USERNAME\OneDrive\Documents\PowerShell\Modules'. Different failure message now.
PS C:\src> Update-PSResource Az -Repository PSGallery
Untrusted repository
You are installing the modules from an untrusted repository. If you trust this repository, change its Trusted value by running the Set-PSResourceRepository cmdlet.
Are you sure you want to install the PSresource from 'PSGallery' ?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"): Y
Update-PSResource: Module 'Az' was not updated because no valid module was found in the module directory.Verify that the module is located in the folder specified by $env: PSModulePath.
PS C:\src> $PSVersionTable.PSVersion.ToString()
7.4.5
PS C:\src> gmo "Microsoft.PowerShell.PSResourceGet"
PS C:\src>
@Liturgist Run it again with -Debug?
Update-PSResource -Repository 'PSGallery' -TrustRepository -Name 'Az' -Debug
What version of Az do you currently have installed?
Get-Module -ListAvailable -Name 'Az'
# PSResourceGet must be able to detect it too
Get-InstalledPSResource -Name 'Az' -Scope 'CurrentUser'
What version of Microsoft.PowerShell.PSResourceGet did you use?
Import-Module -Name 'Microsoft.PowerShell.PSResourceGet' -PassThru
Microsoft.PowerShell.PSResourceGet currently does not care about / read the $env:PSModulePath variable, instead it's hard coded to use MyDocuments for user context:
Unless you have folder redirection / known folder move enabled in OneDrive, PSResourceGet might not check that OneDrive folder. So what does this return for you?
[System.Environment]::GetFolderPath('MyDocuments')