Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Run the code blocks in one of the following sections to update or install the latest version of the Azure PowerShell modules from the PSGallery: 

  • Update modules:

Expand
Info

This will perform the following actions for each PowerShell module:

  • Remove the modules from the current session if loaded

  • Update the module if installed and install the module if not

Unload Graph PowerShell modules respecting dependency on Microsoft.Graph.Authentication

Code Block
# get loaded modules with base module split out
$Modules, $BaseModule = (Get-Module -Name 'Az.*').Where({$_.Name -ne 'Az.Accounts'},[System.Management.Automation.WhereOperatorSelectionMode]::Split)
# unload modules with base module last
$Modules | ForEach-Object { Remove-Module -Name $_.Name -Force }; $BaseModule | ForEach-Object { Remove-Module -Name $_.Name -Force }

Update Graph PowerShell modules

Code Block
Get-Module -ListAvailable -Name Az.* | ForEach-Object { Update-Module -Name $_.Name } 
  • Reinstall modules 

Expand
Info

This will perform the following actions for each PowerShell module:

  • Remove the modules from the current session if loaded

  • Remove the module files from the AllUsers scope

  • Install the modules from the PowerShell gallery

Unload Azure PowerShell modules respecting the dependency on Az.Accounts

Code Block# get loaded modules with base module split out $Modules, $BaseModule Note

This step should only be completed in the prod (AUSTIN) domain.

Run the following commands to verify the NuGet provider is installed:

Code Block
languagepowershell
Find-PackageProvider -Name 'NuGet' -Force -ForceBootstrap

Run the following commands to trust the PSGallery:

Code Block
languagepowershell
Set-PSRepository -Name 'PSGallery' -InstallationPolicy Trusted

Run the following commands to define the names of the Azure PowerShell module collection and of any modules that are a dependency for other modules the collection:

Code Block
languagepowershell
$PowerShellModuleName = 'Az'
$DependsOnModuleNames = 'Az.Accounts'

Run the following commands to split the Azure PowerShell modules respecting the module dependencies:

Code Block
languagepowershell
$Modules, $Dependencies = (Get-Module -Name 
'Az
"$PowerShellModuleName.*
'
").Where({$_.Name -
ne 'Az.Accounts'
notin $DependsOnModuleNames},[System.Management.Automation.WhereOperatorSelectionMode]::Split)
# unload modules with base module last

Run the following commands to unload the Azure PowerShell modules respecting the module dependencies:

Code Block
languagepowershell
$Modules | ForEach-Object { Remove-Module -Name $_.Name -Force -Verbose }; 
$BaseModule
$Dependencies | ForEach-Object { Remove-Module -Name $_.Name -Force -Verbose }
Remove

Run the following commands to remove the Azure PowerShell modules currently installed:

Code Block
languagepowershell
Get-ChildItem -Path "$env:ProgramFiles\WindowsPowerShell\Modules" -Filter 
'Az.*'
"$PowerShellModuleName*" | Remove-Item -Force -Recurse -
ForceInstall
Verbose

Run the following commands to install the latest version of the Azure PowerShell modules from the PSGallery: 

Code Block
languagepowershell
Save-Module -Path "$env:ProgramFiles\WindowsPowerShell\Modules" -Name $PowerShellModuleName -Force -Verbose
Note

There is a bug in version 3.0.0 of the Az

-Force

.Accounts module that prevents sign in to Azure via the Web Account Manager (WAM) on Windows.

Run the following commands to disable the login via WAM functionality:

Code Block
languagepowershell
Update-AzConfig -EnableLoginByWam $false