Windows Server on Google Compute Engine

「ちょっと GCP で Windows を使う」みたいな要件が発生して GCE で DaaS っぽい用途の Windows Server を立てたのでメモ。

tl;dr

基本的に「Creating and managing Windows Server instances」を読めば済むが以下はちょっとわかりづらかった。

  • インスタンス立てたあとパスワード設定必要
  • 音を出すには Audio Service をスタート
  • ファイル共有は RDP クライアントで設定できる

Create an instance

今回は GCP の Web UI でインスタンスを立てる。
Boot disk で Windows Server のイメージを選ぶ。
その他は Linux インスタンスを立てるときと特に変わらない。

なお Core と名前がついてるイメージは GUI がない Windows Server(「Explorer なし」と言った方が合っているかもしれない)なので注意。

また Windows 10 などのクライアント版 Windows はイメージが存在しない。
たしかライセンス上の問題だったと記憶している。
どうしてもクライアント版 Windows が必要な場合は Azure でWindows Virtual Desktopを使うことになる。

Set Windows password

Linux インスタンスの場合は Metadata に SSH 公開鍵がセットされたりするが、Windows の場合はそもそも(まだ)SSH でログインというわけにもいかないので、ユーザー名とパスワードをセットして RDP クライアントで GUI ログインする。
ポイントとしては「GCP で生成されたパスワードがセットされて表示される」点、「自分で決めたパスワードをセットする」わけではないので事前のパスワード生成などは不要。

立てたインスタンスの詳細画面を開いて Set Windows password ボタンを押す。

そうすると Username を聞かれるので任意のユーザー名を設定する。
書かれている通り「存在しなければ作成、存在すればパスワードを再設定」となる。

GCP で生成されセットされたパスワードが表示されるのでコピーしてメモしておく。
このダイアログを閉じてしまうとパスワードを知ることができないので注意。
(同じ手順で別のパスワードをセットすることはできる)

Connect to the instance via RDP

パスワードを設定したら RDP でインスタンスに接続する。

もし GCP の Web UI を Chrome で開いていてChrome RDP for Google Cloud Platformがインストールされている場合、 RDP ボタンを押すと Chrome が RDP クライアントになって便利。
他の RDP クライアントを使う場合は External IP に対して接続すれば繋がる。

この RDP クライアントの場合は矢印部分を引っ張ると切断や Ctrl+Alt+Delの送信などが行える。

Share file from macOS

macOS の場合はMicrosoft Remote Desktop 10を使うとローカルのディレクトリをインスタンスからマウントできる。

このようにインスタンスの This PC に表示される。

Start Audio Service

Windows Server だからなのか Audio Service を明示的に起動しないと音が鳴らない。

設定の Themes を起動する。

Sound をクリックするとダイアログが表示され Would you like to enable the Windows Audio Service? と聞かれるので Yes を押す。
そうすると RDP クライアント経由で音が鳴るようになる。

Youtube を開いて適当な動画を再生すると映像と音声再生とレイテンシが一度に確認できて便利。
(Chrome 拡張の RDP クライアントでは音が鳴らないようなので注意)

Install Chrome via IE

Windows Server には IE が入っているが標準設定ではかなりセキュアに設定されており、なんというか色々なことができない。
Server Manager の IE Enhanced Security Configuration をクリックして表示されたダイアログで一時的に Off にすると Chrome などがダウンロードできる。