Windows Virtual PC のログオン時起動

| コメント(0) | トラックバック(0) このエントリーを含むはてなブックマーク

Windows 7 Enterprise で SA を行使して Windows Virtual PC に Windows を導入しようとしている。この時、ログオン時に 仮想マシンを自動起動したくなって、挑戦してみた。

情報源

Virtual PC Guy's BlogListing virtual machines under Powershellを参考に、COMインタフェースを使って書いてみる。

どんな言語で書こうか悩みつつ

スクリプト

コードネーム monad と呼ばれていた PowerShell を使って書いてみた。とりあえず Win7_1 や Win7_2 という名前の仮想マシンを起動するには以下のようなスクリプトでよい。

$vpc = new-object com VirtualPC.Application
$vpc.FindVirtualMachine("Win7_1").startup()
$vpc.FindVirtualMachine("Win7_2").startup()

ただし、PowerShell スクリプトを Windows 7 で実行するには、署名をするか、セキュリティを下げるかしないといけない。

そこで、我らが VBScript を使って書いてみた

Set vpc = CreateObject("VirtualPC.Application")
Set vm  = vpc.FindVirtualMachine("Win7_1")

If vm.State = 1 Then 
    vm.startup()
ElseIf vm.State = 2 Then 
    vm.startup()
ElseIf vm.State = 6 Then 
    vm.Resume 
End If

Set vm  = vpc.FindVirtualMachine("Win7_2")
If vm.State = 1 Then 
    vm.startup()
ElseIf vm.State = 2 Then 
    vm.startup()
ElseIf vm.State = 6 Then 
    vm.Resume 
End If

なお、vm.State に合わせないと、 startup が失敗することがあった。ちょっと条件に合わせて、操作を変更している。これをスタートアップに登録してみた。

(2009/11/24 ソースコードを修正)

まとめ

Windows Virtual PC からは COM インタフェースで操作できるようになった。

詳しく見ると、いろいろなことができ、仮想マシンにキーイベントも送れるようである。今後の自動化などに興味がわいてくる

トラックバック(0)

トラックバックURL: http://www.m-tea.info/mt-tb.cgi/19

コメントする

あわせて読みたいブログパーツ

このブログ記事について

このページは、k1ha410が2009年11月19日 00:08に書いたブログ記事です。

ひとつ前のブログ記事は「IronRuby と MRIの連携(dRuby)編 -連続要求発行不具合報告編-」です。

次のブログ記事は「ネットワークファイルコピー中にWindows Server 2008 カーネルが高負荷」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。