参考VMWare的Webservice API的文档,实现创建ESX|ESXi用户并给用户赋予用户组。
版本: ESX|ESXi 4.0
JAVA代码如下:
view plaincopy to clipboardprint?
import ja***net.URL;
import co***mware.vim25.HostAccountSpec;
import co***mware.vim25.ManagedObjectReference;
import co***mware.vim25.Permission;
import co***mware.vim25.ServiceContent;
import co***mware.vim25.VimPortType;
import co***mware.vim25.VimServiceLocator;
import com.vmware.security.credstore.*;
/**
*
* 创建ESX or ESXi用户(非vCenter)
*
* @author forandever
* @date 2009-12-31
*/
public class CreateUser {
/**
* 创建用户
* @param hostName 主机IP地址。例如:
20***01.1.121
* @param userName 连接用户名。例如: root
* @param password 连接密码。例如:123456
* @throws Exception
*/
private void createUser(String hostName, String userName, String password) throws Exception {
ServerConn conn = new ServerConn();
co***prepare(hostName, userName, password);
ManagedObjectReference hostLocalAccountManager =
co***get_sic().getAccountManager();
ManagedObjectReference hostAuthorizationManager =
co***get_sic().getAuthorizationManager();
String new_userName = generateUserName();
String new_password = generatePassword();
HostAccountSpec hostAccountSpec = new HostAccountSpec();
ho***ccountSpec.setId(new_userName);
ho***ccountSpec.setPassword(new_password);
ho***ccountSpec.setDescription("这是通过API新创建的用户");
co***get_service().createUser(hostLocalAccountManager,
hostAccountSpec);
Sy***m.out.println(new_userName + " " + new_password);
ManagedObjectReference rootFolder =
co***get_sic().getRootFolder();
// 设置权限组
Permission per = new Permission();
pe***etGroup(false);
pe***etPrincipal(new_userName);
pe***etRoleId(-1);
pe***etPropagate(true);
pe***etEntity(rootFolder);
co***get_service().setEntityPermissions(hostAuthorizationManager,
rootFolder,
new Permission [] {per});
// CredentialStore csObj =
Cr***ntialStoreFactory.getCredentialStore();
//
cs***.addPassword(getServerName(),userName,
pa***ord.toCharArray());
Sy***m.out.println("新用户创建成功");
}
public static void main(String [] args) throws Exception {
CreateUser createUser = new CreateUser();
cr***eUser.createUser("202.101.1.121", "root", "123456");
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/forandever/archive/2009/12/30/5105408.aspx