首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >访问GuestAuthentication对象以获取来宾for Vmware Java API中的进程列表

访问GuestAuthentication对象以获取来宾for Vmware Java API中的进程列表
EN

Stack Overflow用户
提问于 2014-09-15 19:22:26
回答 1查看 684关注 0票数 0

我正在使用VMwareExsi API,即vijava sdk来访问虚拟机管理程序中运行的一些虚拟机。我正在尝试获取在其中一个Vms中运行的所有进程的列表。我有一个GuestProcessManager实例,我正在调用GuestProcessManager .listProcessesInGuest(GuestAuthentication gauth,pids)。显然,gauth是我无法获取GuestAuthentication对象的method.But的强制参数。我如何检索它?

我尝试了以下方法:

代码语言:javascript
复制
Folder rootFolder = si.getRootFolder();

ManagedEntity[] mes = new InventoryNavigator(rootFolder)

  .searchManagedEntities("VirtualMachine");

NamePasswordAuthentication auth = null;

  auth = new NamePasswordAuthentication();

  String username = "xxx";

  String password = "xxxxxxx";

  long[] pids=null;

         auth.setUsername(username);

         auth.setPassword(password);

         auth.setInteractiveSession(true);

  GuestProcessInfo[] processInfo=si.getGuestOperationsManager().getProcessManager((VirtualMachine)mes[1]).listProcessesInGuest(auth,pids);

我得到的是:异常导致:VI SDK调用exception:com.vmware.vim25.GuestOperationsUnavailable.

如果我将interactivesession设置为false,则异常消息将更改为exception caused:VI SDK调用exception:com.vmware.vim25.GuestComponentsOutOfDate。我正在使用vijava5.5 .jar进行开发。

主机上的系统和EXSI版本: vmnix-x86VMware ESXi 5.5.0。

下面是我从我的虚拟机获取的一些信息,这些信息显示虚拟机处于运行状态。CPU分配份额::2000

内存分配份额::20480 RunTime最大CPU使用率::5799

RunTime最大内存使用率::2048

运行时内存开销::36024320

平均CPU利用率1.375237150741635E-4

VmVirtualMachine的列出流程:2@ 10.126.77.45

异常导致:VI SDK调用exception:com.vmware.vim25.GuestOperationsUnavailable

来宾操作系统:Red Hat Enterprise Linux 5(64位)

虚拟机版本:vmx-10

CPU:4 vCPU

内存:12288 MB

内存开销:373.0514 MB

VMware工具:来宾工具运行

IP地址:10.126.77.221

状态:正在运行

EN

回答 1

Stack Overflow用户

发布于 2014-10-13 17:24:15

您能否提供更多详细信息Vcenter版本、Esxi版本、VMware工具版本等。

我怀疑的是vmware工具没有正常运行,或者某些版本不匹配阻止了身份验证。

我已经离开java好几年了。但当我编写下面的代码时,它对我来说工作得很好。你能在你的设置中检查这段代码吗!

代码语言:javascript
复制
        ServiceInstance si = new ServiceInstance(new URL("https://10.22.10.13/sdk"), "Administrator", "Password", true);
        Folder rootFolder = si.getRootFolder();
        String name = rootFolder.getName();
        ManagedEntity[] mes = new InventoryNavigator(rootFolder).searchManagedEntities("VirtualMachine");
        if(mes==null || mes.length ==0)
        {
          return;
        }

        VirtualMachine vm = null;
        for (ManagedEntity entity : mes) {
            if (entity.getName().equals("Ubuntu12")){
                vm = (VirtualMachine)entity;
                break;
            }
        }
        NamePasswordAuthentication creds = new NamePasswordAuthentication();
        creds.username = "reuben";
        creds.password = "reuben";

        GuestProcessInfo[] processes = si.getGuestOperationsManager().getProcessManager(vm).listProcessesInGuest(creds, null);
        for (GuestProcessInfo process: processes){
            System.out.println("Process Name: "+process.name);
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25846931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档