「タスクスケジューラ」を触っていて、面白いアイデアを思いつきました。ネットブックやUMPCと呼ばれたモバイルPCで、Windowsストアアプリを動かすという実験です。“へぇ〜”という感じで、気楽に読んでください。
筆者は「UMPC」(Ultra Mobile PC)というカテゴリのPCを所有しています。最近のモバイルPCやタブレット、スマホに比べるとパフォーマンスは決して良いとはいえませんが、小さくて軽い(580g)ので、PCを使う機会の少ない旅のお供にしています。
2007年前後、ネットブック(Netbook)やUMPCは、PCをモバイル環境で利用したいユーザーに人気がありました。しかし、その後の「iPad」の登場により影を潜め、Windows 8の登場でとどめを刺されました。
Windows 8の最小システム要件は1024×768ピクセルの解像度であり、それ以下の解像度では新しいモダンUIで動作するWindowsストアアプリを起動できません。ネットブックやUMPCの初期モデルや低価格モデルは、1024×576や1024×600といったワイドではありながら、低解像度のディスプレーを搭載していました。
そして、ネットブックやUMPCは、Windows 8の開発段階で見捨てられたのです。その理由は以下のマイクロソフトのブログで語られていますが、ネットブックやUMPCのユーザーは決して納得できないでしょう。
ネットブックやUMPCのユーザーはWindows 8の登場以降、自分のマシンをどうしているのでしょうか。おそらく、プレインストールのWindows VistaやWindows 7のまま利用している人が多いでしょう。パフォーマンスを向上させるために、内蔵のHDDをSSDに換装したという人もいるようです。パフォーマンスが出ないという理由でWindows XP搭載モデルを選択した人は、もう使うのを止めてしまったかもしれませんね。
筆者はどうかといえば、Windows 8、Windows 8.1と後継バージョンのWindowsにアップグレードして、最新のOS環境で利用しています(写真1)。デスクトップ環境で使う分には、解像度の問題はWindowsの機能に影響しません。もともと内蔵されていた指紋リーダーやワンセグTVもちゃんと使えています。
Windows 8/8.1の最小システム要件である解像度1024×768に満たないPCであっても、Windows 8/8.1の新規インストールやアップグレードは可能であり、モダンUIであるスタート画面やPCの設定変更UIも利用できます。最も大きな制約は、Windowsストアアプリを実行できないことです(画面1)。「ストア」アプリも実行できないため、新しいWindowsストアアプリをインストールすることもできません。
この制限があるにもかかわらず、Windows 8やWindows 8.1の導入を決行したユーザーの多くは、PCをデスクトップとデスクトップアプリだけで利用しているはずです。
筆者としてはそれで十分であり、困っているわけではないのですが、Windows 8やWindows 8.1のフル機能を利用できないことに不満があるユーザーもいるでしょう。中には、1024×768以上の解像度に対応した外部ディスプレーをVGAやUSBに接続して、デスクトップPCのように利用している人もいます。この方法が最も素直ですが、UMPCやネットブックとしては“負け”のような気がします。
Windowsのレジストリを編集するか、解像度をごまかすフリーソフト(おそらくレジストリを操作)を利用して、1024×576や1024×600のディスプレーに無理やり1024×768を表示させるという“チカラワザ”でWindowsストアアプリを利用しているツワモノもいるようです。その場合、アイコンやテキストが縦につぶれて表示されることをガマンしなければなりません(画面2)。この他にも、Windowsのシステムファイルを改変してゴニョゴニョ……(ここでは説明できません)という良からぬやからもいるようです。
実は、筆者もレジストリの編集で解像度をごまかす方法は試してみました。しかし、PCの再起動後、画面は真っ黒のままで何も操作できない状態になってしまいました。こうなってしまうと復旧が大変なので、具体的なレジストリの変更方法には触れません。この忠告にもかかわらずやってしまったという方は、筆者のもう1つの連載「山市良のうぃんどうず日記:セーフモードでも起動できないという悪夢からの脱出[その1]」で紹介したオフラインのレジストリ編集テクニックでレジストリを元に戻しましょう。それで復旧できると思います。
本連載では過去に数回「タスクスケジューラ」を扱ってきましたが、低解像度のネットブック/UMPCでWindowsストアアプリを実行するという、魔法のようなアイデアを思いつきました。PCのコンソール画面から「リモートデスクトップ接続」クライアントを実行して、高解像度でローカルPCに接続するという方法です。この新しいレシピの材料は、以下の通りです。
Windowsの企業向けエディションは、シングルユーザー接続に対応したRDP(リモートデスクトッププロトコル)のサーバー機能を搭載しています(画面3)。また、Windows標準の「リモートデスクトップ接続」クライアントは、画面解像度を指定して接続することが可能ですし、「スマートサイズ指定」(スマートサイジング)という縮小表示機能も標準でサポートしています。
これらの機能を利用すれば、1024×768に満たないディスプレーに、1024×768以上のデスクトップを表示させることが可能です。
スマートサイズ指定は、Windows XPからサポートされている縮小表示機能です。Windows 7まではRDPファイルに次のよう記述して、RDPファイルから接続を開始する必要がありました。
desktopwidth:i:1280
desktopheight:i:1240
smart sizing:i:1
Windows 8からは「リモートデスクトップ接続」ウィンドウでスマートサイズ指定を有効化できるようになっているため、もっと簡単に縮小表示が可能です。
「PsExec」(PsExec.exe)は、Windows SysinternalsのPsToolsに含まれるユーティリティの1つです。Windows XPから最新のWindows 8.1まで対応しており、リモートPCでプログラムを開始したり、ローカルPCの別のユーザーセッションでプログラムを開始したり、システムアカウント(SYSTEM)権限でプログラムを開始したりすることが柔軟できます。
PsExecを利用すれば、Windowsのログオン(サインイン)画面やロック画面である「セキュリティで保護されたWinlogonデスクトップ」セッションでプログラムを開始することもできます。例えば、「コマンドプロンプト」を管理者として開き、次のコマンドラインを実行します(画面4)。
PsExec -x -s Cmd.exe
この状態で[Ctrl]+[Alt]+[Del]キーを押してコンピューターをロックすると、ロック画面に表示された「コマンドプロンプト」ウィンドウを確認できるでしょう。ウィンドウが見当たらない場合は、[Alt]+[Tab]キーで切り替えることができます。
PsExecの機能をうまく利用すれば、Windowsのログオン画面で「リモートデスクトップ接続」クライアントを起動することができます。ただし、PsExecを実行した側のユーザーセッションが終了してしまうと、PsExecから開始したプログラムも終了してしまいます。そこで登場するのがタスクスケジューラになります。
タスクスケジューラのタスクを利用すれば、コンピューターの起動時にユーザーがログオンしているかどうかに関係なく、最上位の特権で任意のコマンドラインを自動実行させることができます。
次のようなコマンドラインを開始するように仕込んでおけば、次回起動時にWindowsのログオン画面と同時に「リモートデスクトップ接続」ウィンドウが起動するはずです(画面5)。
PsExec -x -s mstsc /w:1280 /h:768
リモートデスクトップ接続クライアント(mstsc.exe)をオプションなしで起動した場合は、ローカルPCのディスプレーの解像度が設定可能な最大値(全画面表示)になりますが、「mstsc /w:1280 /h:768」と指定すると接続元のPCの解像度に関係なく、1280×768の解像度設定で「リモートデスクトップ接続」クライアントを開始できます。
Windows 8以降の場合、接続元のPCの解像度がこれより小さければ、自動的にリモートサイズ指定による縮小表示が有効になります。ここで「mstsc /w:1024 /h:768」としてもよいのですが、1024×600に縦横比が近い1280×768の方が画面のつぶれが気にならないと思います。
なお、PsExecはそのPCで初めて実行した際、ライセンス条項への同意を求めるダイアログボックスを表示するため、タスクで自動実行させる前に、適当なコマンドラインで実行してライセンス条項への同意を済ませておいてください。
タスクを作成したら、PCを再起動して、ログオン画面が表示されるまで待ちます。ログオン画面が表示されたら、PsExecの処理が完了するまでちょっと待ってから、[Alt]+[Tab]キーを押してみてください(画面6)。「リモートデスクトップ接続」ウィンドウに切り替えることができるはずです。なお、ここで「リモートデスクトップ接続」ウィンドウを使用せずに、通常通りにログオンしてしまうと「リモートデスクトップ接続」ウィンドウは終了してしまいます。
念のためオプション設定を開き、解像度の設定を確認すると、ちゃんと1280×768になっています。
さて、ここで問題があります。「リモートデスクトップ接続」ウィンドウの「コンピューター」には、何を入力して接続すればよいのかということです。試しに「コンピューター名」「localhost」「127.0.0.1」を指定してみると、いずれも「既に進行中のコンソールセッションがあるため、リモートコンピューター上の他のコンソールセッションに接続できませんでした」と表示され、接続が拒否されました。そこで「127.0.0.2」(127.0.0.2〜127.255.255.254の間なら何でもよい)を指定すると接続が成功し、資格情報の入力画面が表示されました(画面7)。
見事、ローカルのデスクトップにリモートデスクトップ接続できました。最初からスマートサイズ指定が有効になり、1280×768のデスクトップが1024×600に縮小されました(画面8)。縦横比が近いので、テキストや画面要素のつぶれはほとんど気になりません。
Windowsストアアプリの開始はもちろん、複数のアプリのスナップ表示(画面分割)もできます(画面9)。なお、Windows 8の場合、スナップ表示のためには1366×768以上の解像度が必要です。Windows 8.1では、スナップ表示の解像度要件が1024×768以上に緩和されました。
1280×768のデスクトップが1024×600に縮小されているため、テキストや画面の項目表示はどうしても小さくなります。この問題は、コントロールパネルの「デスクトップのカスタマイズ」→「ディスプレー」で表示サイズを調整することである程度解消できるでしょう。
別の方法として、細かい作業が必要なときは、スマートサイズ指定を解除すればよいのです(画面10)。これなら1280×768のデスクトップを標準サイズで参照しながら、縦と横のスクロールバーで画面全体にアクセスできます。マウスとキーボードの操作が可能であれば、この使い方は思った以上に快適かもしれません。
一方、縮小された画面でのタッチ操作は快適とはいきませんでした。目的の場所を正確にタッチするのには苦労します。筆者の古いUMPCはペン操作向けのシングルポイントタッチの機種であり、もともとタッチの精度は良くないのですが、ズレがさらに大きくなった感じでした。
最後に、ポカーンとしているそこのあなた。もう一度、おさらいしましょう。画面を縮小すれば、どうなっているのかがよく分かります。ローカルコンソールからは一度もログオンしていないんです(画面11)。
実は、この方法に問題がないわけではありません。なぜなら、Windowsのログオン画面で通常は実行されるはずのない「リモートデスクトップ接続」ウィンドウが、システムアカウントという高い権限で動いているからです。例えば、「リモートデスクトップ接続」のエクスプローラーインターフェース(RDPファイルの保存や開く機能)はセキュリティの大きな穴になるかもしれません。
最初に断ったように、今回紹介したアイデアはあくまでも実験的な試みです。この方法が実用的かどうか、そしてセキュリティに関する問題は別として、さまざまなテクノロジやツールの便利機能について、この記事を通じて知っていただけたと思います。実際、筆者のUMPCでは、この方法は試しただけで、採用はしていません。なぜなら、Windowsストアアプリを利用できなくても、何一つ不自由していませんから。
山市 良(やまいち りょう)
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2014)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.