Skip to content

Importing Az Module after Integrated Console has loaded any of the Az* modules will results in no exported commands for said module #2545

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
APStrickland opened this issue Mar 10, 2020 · 9 comments · Fixed by PowerShell/PowerShellEditorServices#1227
Labels
Resolution-Fixed Will close automatically.

Comments

@APStrickland
Copy link

APStrickland commented Mar 10, 2020

System Details

System Details Output

### VSCode version: 1.42.1 c47d83b293181d9be64f27ff093689e8e7aed054 x64

### VSCode extensions:
bewhite.dokd-vscode-preview@0.2.1
bibhasdn.git-easy@1.11.0
blackmist.LinkCheckMD@0.3.1
ChakrounAnas.turbo-console-log@1.4.0
CoenraadS.bracket-pair-colorizer@1.0.61
DavidAnson.vscode-markdownlint@0.34.0
DavidWang.ini-for-vscode@0.0.4
docsmsft.docs-article-templates@0.2.7
docsmsft.docs-authoring-pack@0.1.7
docsmsft.docs-images@0.0.5
docsmsft.docs-linting@0.0.1
docsmsft.docs-markdown@0.2.58
docsmsft.docs-metadata@1.0.4
docsmsft.docs-preview@0.3.40
docsmsft.docs-yaml@0.2.4
DotJoshJohnson.xml@2.5.0
eamodio.gitlens@10.2.1
gicentre.markdown-preview-enhanced-with-litvis@0.20.0
ionutvmi.reg@1.0.1
ms-dotnettools.csharp@1.21.13
ms-mssql.mssql@1.9.0
ms-vscode.azurecli@0.5.0
ms-vscode.powershell@2020.3.0
ms-vsts.team@1.161.0
msazurermtools.azurerm-vscode-tools@0.8.4
oderwat.indent-rainbow@7.4.0
PKief.material-icon-theme@4.0.1
redhat.vscode-yaml@0.7.2
streetsidesoftware.code-spell-checker@1.8.0
tomoki1207.pdf@0.5.1
vscode-icons-team.vscode-icons@10.0.0


### PSES version: 2.0.0.0

### PowerShell version:

Name                           Value
----                           -----
PSVersion                      7.0.0
PSEdition                      Core
GitCommitId                    7.0.0
OS                             Microsoft Windows 10.0.18363
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Issue Description

If a PS1 file is opened that contains an Az module reference and then Import-Module Az is called, the Az cmdlets in the PS1 file will no longer work.

Expected Behaviour

When importing the Az Module, all Az cmdlets should work

PS C:\temp\Bug> Import-Module -Name Az
PS C:\temp\Bug> Get-Command -Module Az.Storage

CommandType     Name                                               Version    Source    
-----------     ----                                               -------    ------    
Alias           Disable-AzStorageSoftDelete                        1.9.0      Az.Storage
Alias           Enable-AzStorageSoftDelete                         1.9.0      Az.Storage
Alias           Get-AzStorageContainerAcl                          1.9.0      Az.Storage
Alias           Start-CopyAzureStorageBlob                         1.9.0      Az.Storage
Alias           Stop-CopyAzureStorageBlob                          1.9.0      Az.Storage
Cmdlet          Add-AzRmStorageContainerLegalHold                  1.9.0      Az.Storage
Cmdlet          Add-AzStorageAccountManagementPolicyAction         1.9.0      Az.Storage
Cmdlet          Add-AzStorageAccountNetworkRule                    1.9.0      Az.Storage
Cmdlet          Close-AzStorageFileHandle                          1.9.0      Az.Storage
Cmdlet          Disable-AzStorageBlobDeleteRetentionPolicy         1.9.0      Az.Storage
Cmdlet          Disable-AzStorageDeleteRetentionPolicy             1.9.0      Az.Storage
Cmdlet          Disable-AzStorageStaticWebsite                     1.9.0      Az.Storage
Cmdlet          Enable-AzStorageBlobDeleteRetentionPolicy          1.9.0      Az.Storage
Cmdlet          Enable-AzStorageDeleteRetentionPolicy              1.9.0      Az.Storage
Cmdlet          Enable-AzStorageStaticWebsite                      1.9.0      Az.Storage
Cmdlet          Get-AzRmStorageContainer                           1.9.0      Az.Storage
Cmdlet          Get-AzRmStorageContainerImmutabilityPolicy         1.9.0      Az.Storage
Cmdlet          Get-AzRmStorageShare                               1.9.0      Az.Storage
Cmdlet          Get-AzStorageAccount                               1.9.0      Az.Storage
Cmdlet          Get-AzStorageAccountKey                            1.9.0      Az.Storage
Cmdlet          Get-AzStorageAccountManagementPolicy               1.9.0      Az.Storage
Cmdlet          Get-AzStorageAccountNameAvailability               1.9.0      Az.Storage
Cmdlet          Get-AzStorageAccountNetworkRuleSet                 1.9.0      Az.Storage
Cmdlet          Get-AzStorageBlob                                  1.9.0      Az.Storage
Cmdlet          Get-AzStorageBlobContent                           1.9.0      Az.Storage
Cmdlet          Get-AzStorageBlobCopyState                         1.9.0      Az.Storage
Cmdlet          Get-AzStorageBlobServiceProperty                   1.9.0      Az.Storage
Cmdlet          Get-AzStorageContainer                             1.9.0      Az.Storage
Cmdlet          Get-AzStorageContainerStoredAccessPolicy           1.9.0      Az.Storage
Cmdlet          Get-AzStorageCORSRule                              1.9.0      Az.Storage
Cmdlet          Get-AzStorageFile                                  1.9.0      Az.Storage
Cmdlet          Get-AzStorageFileContent                           1.9.0      Az.Storage
Cmdlet          Get-AzStorageFileCopyState                         1.9.0      Az.Storage
Cmdlet          Get-AzStorageFileHandle                            1.9.0      Az.Storage
Cmdlet          Get-AzStorageQueue                                 1.9.0      Az.Storage
Cmdlet          Get-AzStorageQueueStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Get-AzStorageServiceLoggingProperty                1.9.0      Az.Storage
Cmdlet          Get-AzStorageServiceMetricsProperty                1.9.0      Az.Storage
Cmdlet          Get-AzStorageServiceProperty                       1.9.0      Az.Storage
Cmdlet          Get-AzStorageShare                                 1.9.0      Az.Storage
Cmdlet          Get-AzStorageShareStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Get-AzStorageTable                                 1.9.0      Az.Storage
Cmdlet          Get-AzStorageTableStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Get-AzStorageUsage                                 1.9.0      Az.Storage
Cmdlet          Lock-AzRmStorageContainerImmutabilityPolicy        1.9.0      Az.Storage
Cmdlet          New-AzRmStorageContainer                           1.9.0      Az.Storage
Cmdlet          New-AzRmStorageShare                               1.9.0      Az.Storage
Cmdlet          New-AzStorageAccount                               1.9.0      Az.Storage
Cmdlet          New-AzStorageAccountKey                            1.9.0      Az.Storage
Cmdlet          New-AzStorageAccountManagementPolicyFilter         1.9.0      Az.Storage
Cmdlet          New-AzStorageAccountManagementPolicyRule           1.9.0      Az.Storage
Cmdlet          New-AzStorageAccountSASToken                       1.9.0      Az.Storage
Cmdlet          New-AzStorageBlobSASToken                          1.9.0      Az.Storage
Cmdlet          New-AzStorageContainer                             1.9.0      Az.Storage
Cmdlet          New-AzStorageContainerSASToken                     1.9.0      Az.Storage
Cmdlet          New-AzStorageContainerStoredAccessPolicy           1.9.0      Az.Storage
Cmdlet          New-AzStorageContext                               1.9.0      Az.Storage
Cmdlet          New-AzStorageDirectory                             1.9.0      Az.Storage
Cmdlet          New-AzStorageFileSASToken                          1.9.0      Az.Storage
Cmdlet          New-AzStorageQueue                                 1.9.0      Az.Storage
Cmdlet          New-AzStorageQueueSASToken                         1.9.0      Az.Storage
Cmdlet          New-AzStorageQueueStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          New-AzStorageShare                                 1.9.0      Az.Storage
Cmdlet          New-AzStorageShareSASToken                         1.9.0      Az.Storage
Cmdlet          New-AzStorageShareStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          New-AzStorageTable                                 1.9.0      Az.Storage
Cmdlet          New-AzStorageTableSASToken                         1.9.0      Az.Storage
Cmdlet          New-AzStorageTableStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Remove-AzRmStorageContainer                        1.9.0      Az.Storage
Cmdlet          Remove-AzRmStorageContainerImmutabilityPolicy      1.9.0      Az.Storage
Cmdlet          Remove-AzRmStorageContainerLegalHold               1.9.0      Az.Storage
Cmdlet          Remove-AzRmStorageShare                            1.9.0      Az.Storage
Cmdlet          Remove-AzStorageAccount                            1.9.0      Az.Storage
Cmdlet          Remove-AzStorageAccountManagementPolicy            1.9.0      Az.Storage
Cmdlet          Remove-AzStorageAccountNetworkRule                 1.9.0      Az.Storage
Cmdlet          Remove-AzStorageBlob                               1.9.0      Az.Storage
Cmdlet          Remove-AzStorageContainer                          1.9.0      Az.Storage
Cmdlet          Remove-AzStorageContainerStoredAccessPolicy        1.9.0      Az.Storage
Cmdlet          Remove-AzStorageCORSRule                           1.9.0      Az.Storage
Cmdlet          Remove-AzStorageDirectory                          1.9.0      Az.Storage
Cmdlet          Remove-AzStorageFile                               1.9.0      Az.Storage
Cmdlet          Remove-AzStorageQueue                              1.9.0      Az.Storage
Cmdlet          Remove-AzStorageQueueStoredAccessPolicy            1.9.0      Az.Storage
Cmdlet          Remove-AzStorageShare                              1.9.0      Az.Storage
Cmdlet          Remove-AzStorageShareStoredAccessPolicy            1.9.0      Az.Storage
Cmdlet          Remove-AzStorageTable                              1.9.0      Az.Storage
Cmdlet          Remove-AzStorageTableStoredAccessPolicy            1.9.0      Az.Storage
Cmdlet          Set-AzCurrentStorageAccount                        1.9.0      Az.Storage
Cmdlet          Set-AzRmStorageContainerImmutabilityPolicy         1.9.0      Az.Storage
Cmdlet          Set-AzStorageAccount                               1.9.0      Az.Storage
Cmdlet          Set-AzStorageAccountManagementPolicy               1.9.0      Az.Storage
Cmdlet          Set-AzStorageBlobContent                           1.9.0      Az.Storage
Cmdlet          Set-AzStorageContainerAcl                          1.9.0      Az.Storage
Cmdlet          Set-AzStorageContainerStoredAccessPolicy           1.9.0      Az.Storage
Cmdlet          Set-AzStorageCORSRule                              1.9.0      Az.Storage
Cmdlet          Set-AzStorageFileContent                           1.9.0      Az.Storage
Cmdlet          Set-AzStorageQueueStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Set-AzStorageServiceLoggingProperty                1.9.0      Az.Storage
Cmdlet          Set-AzStorageServiceMetricsProperty                1.9.0      Az.Storage
Cmdlet          Set-AzStorageShareQuota                            1.9.0      Az.Storage
Cmdlet          Set-AzStorageShareStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Set-AzStorageTableStoredAccessPolicy               1.9.0      Az.Storage
Cmdlet          Start-AzStorageBlobCopy                            1.9.0      Az.Storage
Cmdlet          Start-AzStorageBlobIncrementalCopy                 1.9.0      Az.Storage
Cmdlet          Start-AzStorageFileCopy                            1.9.0      Az.Storage
Cmdlet          Stop-AzStorageBlobCopy                             1.9.0      Az.Storage
Cmdlet          Stop-AzStorageFileCopy                             1.9.0      Az.Storage
Cmdlet          Update-AzRmStorageContainer                        1.9.0      Az.Storage
Cmdlet          Update-AzRmStorageShare                            1.9.0      Az.Storage
Cmdlet          Update-AzStorageAccountNetworkRuleSet              1.9.0      Az.Storage
Cmdlet          Update-AzStorageBlobServiceProperty                1.9.0      Az.Storage
Cmdlet          Update-AzStorageServiceProperty                    1.9.0      Az.Storage

Actual Behaviour

If the module is pre-loaded by the Console, the module will not have any exported commands

PS C:\temp\Bug> Import-Module -Name Az
Import-Module: C:\Program Files\WindowsPowerShell\Modules\Az.Storage\1.8.0\Az.Storage.psm1:92:1
Line |
  92 |  Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azu …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Assembly with same name is already loaded

Import-Module: C:\Program Files\WindowsPowerShell\Modules\Az.Storage\1.8.0\Az.Storage.psm1:93:1
Line |
  93 |  Import-Module (Join-Path -Path $PSScriptRoot -ChildPath Microsoft.Azu …
     |  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     | Assembly with same name is already loaded

PS C:\temp\Bug> Get-Command -Module Az.Storage
PS C:\temp\Bug> 

Attached Logs

Bug.zip contains a PS1 file to use as a way to replicate the behavior.
fail.zip
workaround.zip
Bug.zip

@ghost ghost added the Needs: Triage Maintainer attention needed! label Mar 10, 2020
@rjmholt
Copy link
Contributor

rjmholt commented Mar 10, 2020

I suspect this is the same issue as #2397.

Can you try out the VSIX in #2397 (comment) and let us know what happens?

@rjmholt
Copy link
Contributor

rjmholt commented Mar 10, 2020

Also, this is known not to happen in PS 6 and 7, since we have a particular solution available in .NET Core only

@APStrickland
Copy link
Author

@rjmholt - Tried the Preview version zipped in #2397 without any luck. I had the same results as before.

@rjmholt
Copy link
Contributor

rjmholt commented Mar 10, 2020

Can you try this one:

psvsix.zip

Just want to double check.

Note you'll need to uninstall the PowerShell extension and reload VSCode to make sure the PowerShell Preview extension is the one you're seeing work

@APStrickland
Copy link
Author

Uninstalled the PowerShell extension and the PowerShell Preview extension. Relaunched VSCode. Installed via the ZIP file. Relaunched VSCode. Issue remained.

Note: I was trying to run my scripts (Pester Tests) via a PowerShell 7 prompt outside of VSCode with similar results.

PowerShell 7.0.0
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/powershell
Type 'help' to get help.

PS C:\Windows\System32> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.0.0
PSEdition                      Core
GitCommitId                    7.0.0
OS                             Microsoft Windows 10.0.18363
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

I'm having a harder time putting together a simple repo test script for sharing without an attached editor as with VSCode but my scripts are consistently failing.
When I try

Get-Command -Module Az.Resources

after my scripts fail I get an empty result as with the original issue.

@rjmholt
Copy link
Contributor

rjmholt commented Mar 10, 2020

Oh, you're using PS 7! Well this is especially unexpected, since we did a lot of work on this for #2334 sorry #2292

@rjmholt
Copy link
Contributor

rjmholt commented Mar 10, 2020

Oh! You seem to be loading from the Windows PowerShell module path though.

Have you started VSCode from WIndows PowerShell and are running PS 7 in it?

@rjmholt
Copy link
Contributor

rjmholt commented Mar 10, 2020

If so, try starting VSCode from PS 7

@APStrickland
Copy link
Author

I removed all Az modules from Windows Powershell's Module path. Reinstalled the required version via PS7 and all is well: Using both the extension you attached and the stable released version 2020.3.0.

Seems the transition from Windows PowerShell to PS 7 wasn't seemless for me.

Thanks for your assistance, cheers!

@SydneyhSmith SydneyhSmith added Resolution-Fixed Will close automatically. and removed Needs: Triage Maintainer attention needed! labels Mar 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Resolution-Fixed Will close automatically.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants