Why can't PowerShell find the gcloud cmdlets?

I've updated the Google Cloud SDK (gcloud), both in general with:

gcloud components update

And just for PowerShell with:

gcloud components update powershell

Running gcloud --version shows:

Google Cloud SDK 122.0.0
beta 2016.01.12
bq 2.0.24
bq-win 2.0.24
bundled-python 2.7.10
core 2016.08.16
core-win 2016.08.05
gcloud
gsutil 4.20
gsutil-win 4.20
powershell 0.1.3
windows-ssh-tools 2016.05.13

When I open PowerShell and try Get-GcsBucket though, I see this error:

Get-GcsBucket : The term 'Get-GcsBucket' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

How can I get PowerShell to recognize the gcloud cmdlets?

Jon Skeet
people
quotationmark

Unfortunately the PSModulePath modification required to make the cmdlets available to PowerShell only happens when the Google Cloud SDK is installed - not when it's just updated.

The simplest fix for most people will be to uninstall and reinstall the Google Cloud SDK. This doesn't lose any configuration information, so you don't need to run gcloud init or gcloud auth afterwards.

As an alternative, you can run the command that the installer would normally run. Find your Google Cloud SDK installation directory (e.g. %AppData%\..\Local\Google\Cloud SDK or %ProgramFiles(x86)%\Google\Cloud SDK). Within that directory, find google-cloud-sdk\platform\GoogleCloudPowerShell. In there, there's a script called AppendPsModulePath.ps1. Run that, and it will modify the PSModulePath environment variable for your current user. From then on, new PowerShell windows will have the cmdlets available.

people

See more on this question at Stackoverflow