「Windows 10 IoT Core」でリモートセッション
前段ではGUIシェルがないと述べたWindows 10 IoT Coreだが、GUIにこだわらなければ操作手段はほかにもある。Windows PowerShellを使い、CUIベースでリモートセッションを行なえばいいのだ。ディスプレイは必要なく、Windows 10の動作するマシンが1台あればいい。
利用手順はGitHubで公開されているが、管理者権限でPowerShellを起動してWindowsリモート管理サービスを開始(「net start WinRM
」を実行)、その後Windows IoTマシン(Raspberry Pi)を信頼するホストとして登録すれば準備完了だ。
> Set-Item wsman:\localhost\Client\TrustedHosts minwinpc -Concatenate -Force
表示されたダイアログには、管理者(Administrator)がログインするときに使う既定のパスワード「p@ssw0rd
」を入力すればいい。認証が完了すると、PowerShellのプロンプトがラズベリー・パイのものに変化するので、リモートセッションが開始されたことを確認できる。
ここまでの印象だが、ある操作から次の操作までの間隔がやや長い。同じマシン(Raspberry Pi 2)でLinuxを動かしているときのSSHによるリモートログインは一瞬で開始されるが、IoT Coreのリモートセッションはそれに比べ数段テンポが遅く感じられる。
> Enter-pssession -ComputerName miniwinpc -Credential Administrator
最初はお約束、OSのバージョンを表示してみよう。. NET FrameworkのSystem.Environmentクラスに情報があるので、以下のとおりコマンドを実行すればプラットフォーム名(古式ゆかしい「Win32NT」)とともに表示されるはずだ。
> [environment]::OSVersion
「Get-Process
」を実行して実行中のプロセス一覧を確認したところ、デフォルトで起動するアプリ(IoTCoreDefaultApp)のほかに、クライアントサーバー・ランタイム・サブシステム「csrss」、デスクトップウィンドウマネージャー「dwm」といったWindows定番のプロセスを確認できた。
GUIシェルの利用が前提ではないはずのIoT Coreだが、「SearchIndexer」(ファイル検索のインデックスを作成用)、「RuntimeBroker」(Windowsストア関連)という常駐プロセスも確認できた。デフォルトで稼働している理由は不明だが、ひょっとするとデスクトップPC的な活用も考慮されているのかもしれない。
解像度を変更できるかどうか、試してみた
ディスプレイの解像度を変更できるかどうかが気になっていたため、「SetDisplayResolution」を実行してみたところ、HDMIケーブルでつないだ液晶TVには1280×1024ピクセルで出力していることを確認。これを800×600や1920×1080に変更できないものかと試したが、「The graphics mode is not supported」と失敗に終わった。やはり解像度はLinuxなど他のOS同様にconfig.txtを使わねば調整できないのだろうか……。次回は、Raspberry Pi 2で快適に使うためのコンフィグレーションに挑戦する予定だ。