Почему PowerShell не может найти командлеты gcloud?

Я обновил 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: термин Get-GcsBucket не распознается как имя командлета, функции, файла script или исполняемой программы. Проверьте правильность написания имени или если путь был включен, проверьте правильность пути и повторите попытку.

Как я могу заставить PowerShell распознавать командлеты gcloud?

Ответы

Ответ 1

К сожалению, изменение PSModulePath, необходимое для того, чтобы командлеты были доступны для PowerShell, происходит только в том случае, если установлен Google Cloud SDK, а не когда он просто обновлено.

Самым простым решением для большинства людей будет удаление и переустановка Google Cloud SDK. Это не потеряет никакой информации о конфигурации, поэтому вам не нужно запускать gcloud init или gcloud auth впоследствии.

В качестве альтернативы вы можете запустить команду, которую обычно запускает установщик. Найдите свой установочный каталог Google Cloud SDK (например, %AppData%\..\Local\Google\Cloud SDK или %ProgramFiles(x86)%\Google\Cloud SDK). Внутри этого каталога найдите google-cloud-sdk\platform\GoogleCloudPowerShell. Там есть script, называемый AppendPsModulePath.ps1. Запустите это, и он изменит переменную среды PSModulePath для вашего текущего пользователя. С тех пор новые окна PowerShell будут иметь доступные командлеты.