PowerShell を使用して Windows VM に接続する


このドキュメントでは、PowerShell を使用して Windows 仮想マシン(VM)インスタンスに接続する方法について説明します。

始める前に

  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.

PowerShell を使用した接続

Windows ワークステーションに PowerShell がインストールされている場合には、リモート PowerShell セッションから Windows Server インスタンスに接続できます。

  1. リモート Windows インスタンスのユーザー名とパスワードを作成していない場合には、Windows パスワードを作成またはリセットします

  2. ファイアウォール ルールを追加して、Windows Server インスタンスが存在する Google Cloud VPC ネットワーク上のポート 5986 を開くようにこのルールを設定します。

  3. ローカル ワークステーションで、PowerShell ターミナルを開きます。

  4. 省略可: ユーザー認証情報を格納する変数を初期化できます。初期化すると、インスタンスに接続するたびに、認証情報を入力する必要がなくなります。この手順をスキップすると、ユーザー名とパスワードを要求するプロンプトが後で表示されます。

    $credentials = Get-Credential
    
  5. 双方向の PowerShell セッションを確立するか、Windows Server VM 上でリモートでコマンドを呼び出すかを選択します。

双方向の PowerShell セッションの確立

PowerShell セッションを確立するには、次のコマンドを実行します。

Enter-PSSession -ComputerName IP_ADDRESS -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials

IP_ADDRESS は、接続するインスタンスの外部 IP アドレス、DNS 名、または Windows コンピュータ名に置き換えます。

接続後、コマンド プロンプトが変更され、リモート Windows インスタンスの IP アドレスが含まれるようになります。これで、ターミナルからリモートの Windows Server インスタンスで PowerShell コマンドを実行できます。

Windows Server VM 上のコマンドをリモートで呼び出す

Enter-PSSession コマンドの代わりに、-ScriptBlock フラグを指定して Invoke-Command を実行すると、インタラクティブ セッションを確立せずにリモート インスタンスで PowerShell コマンドを実行できます。

Invoke-Command -ComputerName IP_ADDRESS -ScriptBlock { SCRIPT } -UseSSL -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck) -Credential $credentials

次のように置き換えます。

  • IP_ADDRESS: 接続するインスタンスの IP アドレス、DNS 名、または Windows コンピュータ名。
  • SCRIPT: リモート インスタンスで実行する 1 つ以上のコマンド。たとえば、ログイベントのリストを表示するには、Get-EventLog -log "Windows PowerShell" を指定します。

次のステップ