2013年3月4日月曜日

Virtual PC のゲストOSからホストOSのローカルプリンタを使いたい

前の投稿で、ゲストからのインターネット接続ができるようになったのに気をよくしてw今度はこれも前やりかけててあきらめてた、ゲストOSからのプリンタ出力ですよ。環境は前と同じ、Virtual PC 2007 でホストOS:Windows 7、ゲストOS:Windows XP SP3 です。

まぁ普通にググるとまず出てくるのが、記事が古いのか、ホストOSのシリアルポートをゲストOSから使えるよというもの。一応書いとくと、Virtual PC コンソールの設定でLPT1ポートにホストOSの物理パラレルポートを割り当てるとゲストOSに繋がってるみたいに使えるよということらしい。けど……今どきシリアルで繋がってるプリンタはほとんど無いわけで……USB接続のが使いたいわけで……。

と、さらに、USB接続のプリンタを使うべくググると、今度は、ホストOSのローカルプリンタを、ゲストPCからはネットワークの共有プリンタとして使うことができる、というのが出てきた。これでできそう?
それではと、ゲストOSにプリンタの追加で、ネットワークプリンタを検索……出てきません。つか、ホストOSのPC名が出てこないよ。あたりまえか。単にホスト・ゲストの関係ではあるが同じLAN上にいることになってないのではないか?

さらにググって基本に戻るw 同じワークグループにいないといけないのじゃないか? というわけでゲストPCのグループ名をホストPCのと同じにしてみた。……駄目でしたorz
ファイヤウォールとか関係あるんじゃないかと思ったけどよくわからんのでパスw なんか他にやり方あるんじゃないかとさらにググる。

おっ? なんか有望そうな Microsoft Loopback Adapter というものを発見。これは何かというと……ホストOSがそもそもLANを構成していない(スタンドアロン)場合でも、ホストOSとゲストOSとでLANを(ハードは1台しかないけど擬似的に?)構成することができるというものみたいです。スタンドアロンでもネットワーク上のやりとりをテストしてみたりとかできて便利……らしい。とりあえず使ってみよう。タダみたいだしw

まずホストOSの作業から。
Windows 7の場合は、デバイスマネージャーで「ネットワークアダプター」を選択→メニューの[操作]-[レガシーハードウェアの追加]→ウィザードが出てくるので[次へ]→「一覧から選択したハードウェアをインストールする」を選択して[次へ]→「ネットワークアダプター」を選択して[次へ]→製造元「Microsoft」、ネットワークアダプター「Microsoft Loopback Adapter」を選択して[次へ]→インストールを開始するには[次へ]→ウィザード完了画面が出たらおしまい。
これでインストールできた……えっ? よくわからんけどスルーでw 仮想ネットワークアダプタが1個増えたということらしいです。
あとネットワークの設定も必要。Windows 7だと「ネットワーク」→「ネットワークと共有センター」→「アダプターの設定の変更」で今繋がってるアダプターの一覧が出てくるので、そこから Microsoft Loopback Adapter の接続を選択→右クリックで「プロパティ」→「インターネットプロトコル バージョン4」を選択→「次のIPアドレスを使う」を選択→IPアドレス「192.168.1.1」、サブネットマスク「255.255.255.0」→[OK]

ホストOSにインストールしてからゲストOSを再起動すると、ゲストOS上で「新しいハードウェアが~」というおなじみのが出てきてこっちでもMicrosoft Loopback Adapterが使えるようになります。
で、Virtual PC コンソールの設定で「ネットワーク」を見ます。前の投稿で、インターネット接続したいなら「共有ネットワーク(NAT)」を選べということだったけど、ここでは今入れたLoopback Adapterを使いたい……ということで、1個追加。「ネットワークアダプタ数」を「2」にすると「アダプタ2」が選択可能になるので、「Microsoft Loopback Adapter」を選択。
それからこっちでもネットワークの設定。Windows XPではコンパネの「ネットワーク接続」で「LANまたは高速インターネット」のところを見ると2つあります……たぶんw ここにはホストOSで見たときみたいにアダプタの名前が出てこないけど、Virtual PC コンソールの設定の「アダプタ1」「アダプタ2」に対応してるということでしょうか。試しに1個目のプロパティで「インターネットプロトコル(TCP/IP)を見ると、前の投稿で設定したやつ(IP自動・DNS自動)になってます。では2個目のを設定。さっきのホストOSで設定したのと同じネットワークなので、IPアドレス「192.168.1.10」、サブネットマスク「255.255.255.0」としておきます。そしてゲストOS再起動。

これであらためてゲストPCでプリンタの追加をやってみると、やったーホストPCのローカルプリンタが参照できたよ! あとは普通のネットワークプリンタの追加と同じ手順です。やれやれ。
あ、普通だとプリンタドライバも取ってきて入れてくれたりしますが(しないことも多いw)、今回自分の環境では入れてくれなかったので、メーカーサイトからDLしてゲストOSにインストールしました。ここでも前の投稿でインターネット接続しておいたのが役に立っているw 直接DL→インストールできるので便利~。

しかしなんか本当にここまでしないといけなかったのだろうか? 実はもっと簡単な方法があったのではないか? まぁできたから良しとしようw

Virtual PC のゲストOSからインターネット接続したい

いつものことですが完全に自分用の覚え書きですw
Virtual PC 2007 をホストOS:Windows 7、ゲストOS:Windows XP SP3 で使ってます。
ホストOSではもちろんインターネット接続できてるんですが、ゲストOSからができない。ゲストOS情でIE起動すると(MSNがホームなんですが)接続できないよとIEのエラー画面に。
ググってみると、Virtual PC コンソールの[設定]でゲストOSの[ネットワーク]の設定を「共有ネットワーク(NAT)」にしないと駄目とかあるんだけど、それはもうすでに設定済み……であきらめて放置してましたw
今回どうしてもネットワーク接続が必要になったのでさらに頑張ってググると(頑張るとこそこかいっw)、たぶん基本的なことだからいままで見つからなかったのねという設定を発見。やったーできたよー。

ゲストOSでコントロールパネル→ネットワーク接続 でLANとかの接続一覧が出てきます。環境によるけどたぶんローカルエリア接続のどれかwでいま繋がってるのでそれを右クリック→プロパティ→インターネットプロトコル(TCP/IP)を選択して[プロパティ]→「全般」タブで「IPアドレスを自動的に取得する」と「DNSサーバーのアドレスを自動的に取得する]を選択。これでOK。

……って、普通、これがデフォルトなんじゃないかとw だから普通は苦もなく繋がるんじゃないかとw  自分の場合は他所のLANで動いてたゲストOSを外付HDDに入れて持ってきたものだったので、そこのLANでは動く設定になってたんでした。IPとDNS固定で設定されてたのよ。そんなとこ関係あると思わなかったわw よく考えれば関係あるのわかるはずなんだがorz