Japanese

 View Only
  • 1.  NoGuestControlという項目について

    Posted Feb 18, 2025 11:15 PM

    お世話になっています。

    powershellでget-vmを実行した所、ConnectionStateにNoGuestControlと表示されることがあります。

    NoGuestControlとはどういう意味なのでしょうか?

    NoGuestControlをGuestControlに変える方法はありますでしょうか?



  • 2.  RE: NoGuestControlという項目について

    Posted Feb 19, 2025 01:41 AM

    get-vmだけではConnectionStateが表示されない認識なのですが具体的な再現コマンドはありますか?




  • 3.  RE: NoGuestControlという項目について

    Posted Feb 19, 2025 07:16 PM

    お世話になっています。こちらになります。

    PS C:\Windows\system32> get-vm xyz | get-networkadapter | select-object *

     

    MacAddress       : 00:50:56:9d:cc:99
    WakeOnLanEnabled : True
    NetworkName      : vlan009
    Type             : Vmxnet3
    ParentId         : VirtualMachine-vm-113668
    Parent           : tssv-maki-win2019
    Uid              : /VIServer=test-user@abc.co.jp:443/VirtualMachine=VirtualMachine-vm-113668/
                       NetworkAdapter=4000/
    ConnectionState  : Connected, NoGuestControl, StartConnected
    ExtensionData    : VMware.Vim.VirtualVmxnet3
    Id               : VirtualMachine-vm-113668/4000
    Name             : Network adapter 1




  • 4.  RE: NoGuestControlという項目について

    Posted Feb 19, 2025 09:13 PM

    返信ありがとうございます。
    network adapter のconnectionStateですね。

    いろいろと探した結果、MOBブラウザ(Property Path: config.hardware.device.connectable)でいうところのallowGuestControl (boolean) がtrueの場合にGuestControlとなり、falseの場合にNoGuestControlとなるようです。

    allowGuestControlの説明については公式Docからは探せませんでしたが、vSphere Client のAPI Exploreのvm/hardware/ethernet 内の VcenterVmHardwareEthernetUpdate のプロパティ?として説明がありました。

    allow_guest_control:  (boolean)
    Flag indicating whether the guest can connect and disconnect the device.

    (以前であればこういう情報もググれば出てきたのですが、今はBroadcom Tech Docで探しても見つけられず。)

    いろいろと試した結果、vmware tools からのデバイス操作と関係している項目のようです。
    vmware-tools-12-5-0.pdf

    上記ドキュメント(Connect or Disconnect a Virtual Device)では、allowGuestControl との関連性について言及はありませんが、どうやらデフォルトでデバイス単位でのallowGuestControlはtrue となっているようですが、代わりにVMの設定で、以下の設定を入れない限りはvmware toolsからはデバイスに対する変更が行えないようです。(そのため、allowGuestControlがデフォルトでtrueでも動作しない)

    isolation.device.connectable.disable = "FALSE"
    isolation.device.edit.disable = "FALSE"

    ラボで試した結果、vmxファイルに上記の設定を入れるとvmware toolsでデバイス情報の表示とEnable/Disableができるようになりました。
    その状態で、該当デバイスのみallowGuestControlをfalseにすると、該当デバイスのみvmware tools で表示されなくなりEnable/Disableができなくなりました。

    したがって、VM単位でvmware toolsからのデバイス操作を有効化していない限りは、allowGuestControl の値がGuestControlでもNoGuestControlでも気にしなくてよいと思います。

    VM単位ではGuestからのデバイス操作を有効化しつつ、特定のデバイスのみ無効化したい場合にこの項目を使うことになる理解です。

    なお、allowGuestControl の値を無効化したい場合は、API Explore からも実施(VM停止不要)できますが、vmxファイルに一行追加することでも実施できます(VM停止必須)。

    ethernet0.allowGuestConnectionControl = "FALSE"

    ※有効化したい場合はTRUEにするか、行を消せばTRUEになります。




  • 5.  RE: NoGuestControlという項目について

    Posted Feb 19, 2025 11:18 PM

    <device_name>.allowGuestConnectionControl = "false"

    この設定、デフォルトでは Ethernet 0 などが仮想マシン側からの「ネットワークデバイスの無効化」操作した際に、仮想デバイスとして切断されないよう設定されているものです。

    だいぶ昔ですが、ゲスト OS 上から不要なデバイスや NIC を削除するときに誤って Ethernet 0 を削除してしまって、仮想デバイス側からも切断されて通信できなくなる(Windows ならデバイスマネージャーから NIC が見えなくなる)、といった事があったので、Ethernet 0 などにはこの値が入っています。
    ※ ESX 4 などを使った超初期の VDI などでそんな事があった記憶で、自分自身も検証環境でやらかした気がします。



    ------------------------------
    Kawaman (Yuki Kawamitsu)
    https://vexpert.vmware.com/directory/477
    ------------------------------