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 などがダウンロードできる。