Skip to main content


当创建虚拟机的时候你可能需要将虚拟机根据不同的属性放入不同的OU中,比如根据角色、组、用户组等。在vRealize Automation Center (vRA)中可以很轻易地创建一个下拉菜单实现这类属性的选择,但是这类属性的值往往都以字符串的形式传递到vRO中,而vRO的活动目录工作流中并没有提供字符串转OU对象的功能。

[do_widget "Language Switcher" wrap=aside title=false]


  1. 先读一下上边这篇文章,并理解其中代码的意思。

  2. 我是根据服务器角色来划分OU的,比如Production、Development、POC等。OUs

  3. 我是用自定义动作来实现转化的。WorkFlow2


Temp = "OU="+targetOU+",OU=Server,DC=CONTOSO,DC=COM";

var searchOU = Temp.split("=")[1].split(",")[0];
System.log("Search OU: " +searchOU);

var ouArray ="OrganizationalUnit", searchOU);
System.log("ouArray is:"+ouArray);

var ouIndex = { return e.distinguishedName.toLowerCase(); }).indexOf(Temp.toLowerCase());

if (ouIndex > -1) {
ou = ouArray[ouIndex];
System.log("Found OU: " +ou.distinguishedName);
return ou;
} else {
throw("OU not found");

概括来说你需要创建一个输入参数 - targetOU,这个参数把字符串导入自定义动作。变量Temp用呈现OU的区别名称(DN),这里我直接把DN其余部分直接写进去了。剩下的代码和文章中所说的一致,只是在If判断中我加了个return ou确保最终获得的OU对象返回出来。


Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install yum -y install yum -y install yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $