Powercli missing functions CIUSER CIGROUP

Carsten Landeck
20. October 2017
Reading time: 2 min

[vc_row][vc_column][vc_column_text]Currently I am working on a project which requires to change a LDAP of a VMware vCloud Director from one AD Domain to another.

During my research I found, that automation is required for the large setup of VCD.

I looked at Powercli functions like GET-CISUER, REMOVE-CIUSER, NEW-CIUSER, GET-CIGROUP, REMOVE-CIGROUP, NEW-CIGROUP

Link :

I found get-ciuser as a standard cmdlet ( Official Powercli Reference ) and new-cisuer as blog post 

The missing functions I wrote by myself and here they are:

 

Function New-CIUserLDAP { 
    Param ( 
        $Name, 
        [Switch]$Enabled, 
        $Org, 
        $Role 
    ) 
    Process { 
        write-host "New LDAP User "$name "in " $Org " as "$Role
        $OrgED = (Get-Org $Org).ExtensionData 
        $orgAdminUser = New-Object VMware.VimAutomation.Cloud.Views.User 
        $orgAdminUser.Name = $Name 
        $orgAdminUser.IsEnabled = $Enabled

        $orgAdminUser.IsExternal = "True"
        
        $vcloud = $DefaultCIServers[0].ExtensionData 
        
        $orgAdminRole = $vcloud.RoleReferences.RoleReference | where {$_.Name -eq $Role} 
        $orgAdminUser.Role = $orgAdminRole 
        
        $user = $orgED.CreateUser($orgAdminUser) 
        Get-CIUser -Org $Org -Name $Name 
    } 
}    


Function New-CIGroup { 
    Param ( 
        $Name, 
        $Org, 
        $Role 
    ) 
    Process { 

        write-host "New CIGROUP "$name "in " $Org " as " $Role
        $OrgED = (Get-Org $Org).ExtensionData 
      
        $orgGroup = New-Object VMware.VimAutomation.Cloud.Views.Group 
        $orgGroup.Name = $Name 
              
        $vcloud = $DefaultCIServers[0].ExtensionData 
        
        $orgAdminRole = $vcloud.RoleReferences.RoleReference | where {$_.Name -eq $Role} 
        $orgGroup.Role = $orgAdminRole 
        
        $group = $orgED.CreateGroup($orgGroup) 
        $group | ft
    } 
}   


Function Remove-CIGroup { 
    Param ( 
        $Name, 
        $Org
       
    ) 
    Process { 

        write-host "Remove "$name "in " $Org
        $OrgED = (Get-Org $Org).ExtensionData 
        
        $group = $OrgED.Groups.GroupReference | where{$_.name -match $name}

        $groupview = $group.GetCIView()
        $groupview.delete()


    } 
}     

Function Remove-CIUser { 
    Param ( 
        $Name, 
        $Org
       
    ) 
    Process { 
        write-host "Remove "$name "in " $Org
         
        $user = get-ciuser -Org $Org $Name
        $user.ExtensionData.Delete()


    } 
}     

New-CIUserLDAP -enabled 'ldapuser' 'Org-ADMIN' 'vApp User'
New-CIGroup 'ADGroup' 'Org-ADMIN' 'vApp User'
Remove-CIGroup 'ADGroup' 'Org-ADMIN'
remove-ciuser 'ldpauser' 'org-admin'

 

 

[/vc_column_text][/vc_column][/vc_row]