为什么 PowerShell 找不到 gcloud cmdlet?

Why can't PowerShell find the gcloud cmdlets?

我已经更新了 Google Cloud SDK (gcloud),一般都更新了:

gcloud components update

仅适用于 PowerShell:

gcloud components update powershell

运行 gcloud --version 显示:

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

当我打开 PowerShell 并尝试 Get-GcsBucket 时,我看到了这个错误:

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.

如何让 PowerShell 识别 gcloud cmdlet?

对于大多数人来说,最简单的解决方法是卸载并重新安装 Google Cloud SDK。这不会丢失任何配置信息,因此您之后不需要 运行 gcloud initgcloud auth

作为替代方案,您可以 运行 安装程序通常 运行 的命令。找到您的 Google Cloud SDK 安装目录(例如 %AppData%\..\Local\Google\Cloud SDK%ProgramFiles(x86)%\Google\Cloud SDK)。在该目录中,找到 google-cloud-sdk\platform\GoogleCloudPowerShell。在那里,有一个名为 AppendPsModulePath.ps1 的脚本。 运行 那个,它会为你当前的用户修改 PSModulePath 环境变量。从那时起,新的 PowerShell windows 将提供可用的 cmdlet。