web-dev-qa-db-ja.com

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」という用語は、コマンドレット、関数、スクリプトファイル、または操作可能なプログラムの名前として認識されません。名前のスペルを確認するか、パスが含まれている場合は、パスが正しいことを確認して、再試行してください。

PowerShellにgcloudコマンドレットを認識させるにはどうすればよいですか?

24
Jon Skeet

残念ながら、PowerShellでコマンドレットを使用できるようにするために必要な PSModulePath 変更は、Google Cloud SDKがインストールされている場合にのみ発生し、更新されたばかりの場合には発生しません。

ほとんどの人にとって最も簡単な修正は、Google CloudSDKをアンインストールして再インストールすることです。これによって構成情報が失われることはないため、後で_gcloud init_または_gcloud auth_を実行する必要はありません。

別の方法として、インストーラーが通常実行するコマンドを実行することもできます。 Google Cloud SDKのインストールディレクトリを見つけます(例:_%AppData%\..\Local\Google\Cloud SDK_または%ProgramFiles(x86)%\Google\Cloud SDK)。そのディレクトリ内で、_google-cloud-sdk\platform\GoogleCloudPowerShell_を見つけます。そこには、_AppendPsModulePath.ps1_というスクリプトがあります。それを実行すると、現在のユーザーのPSModulePath環境変数が変更されます。それ以降、新しいPowerShellウィンドウでコマンドレットを使用できるようになります。

25
Jon Skeet