2018/05/09
Azure上の仮想マシン、どの物理マシン上で動いているのかなー
下記レジストリ下で、調べられます。
同様に、ホストOSのバージョンとかもあります。
■レジストリ
HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Virtual Machine¥Guest¥Parameters
■キー
PhysicalHostName
これが regedt32.exeでも見られるし、reg.exeでも
===
reg query "HKEY_LOCAL_MACHINE¥SOFTWARE¥Microsoft¥Virtual Machine¥Guest¥Parameters" /v PhysicalHostName
===
取れるし、PowerShellでも取れる。
なのに、C#のプログラムから取れない・・・。
色々試行錯誤しました。レジストリのパーミッション調べたりして。
結果、VisualStudioの"Platform Target(プラットフォーム ターゲット)"を"Any CPU"にしていても、"Prefer 32-bit(32 ビットの優先)"というチェックボックスにチェックが入っていると、32bitアプリとして動いてしまうことが原因、と判明。このチェックボックス、デフォルトでチェックが付いているのです。。
64 bit Windows OS下では、レジストリは32bitアプリと64bitアプリとで見にいくところが違っているから注意して、ってのは見ていたのですが"Platform Target"が"Any CPU"なんだから、64bit OS上で動かしているわけだし64bitアプリとして動いているに決まってんだろ、としていたのが敗因でした。。
登録:
投稿 (Atom)