Several times i had the need to synchronise Virtual Machine notes (vmware) with Active Directory Computer description. As in big environment, different team are managing each of these components, the need to be able to link an Active Directory computer account to a vm with XenApp / XenDesktop delivery group has often been seen as useful.

Delivery group name : Desktop123

2016-03-30_09-49-08

Virtual Machine note (vmware) : Desktop123

2016-03-30_10-06-01

Active Directory account Description : Desktop123

2016-03-30_09-54-43

The idea is to simply synchronise the information through the platforms so everyone knows quickly what machine does what. In this particular example that was about XenApp Servers and XenDesktop VDI.

You will need a machine where :

  • XenDesktop 7.x SDK (Powershell is installed)
  • vmware PowerCli installed
  • RSAT role deployed as well
Add-PSSnapin Citrix*
Add-PSSnapin vmware*
Import-module ActiveDirectory
Connect-VIServer $vcenter
 
$XDDC = "yourXDControllerFQDN:80"
$vcenter = "yourvCenterFQDN"
 
#Get-BrokerMachine  -AdminAddress $XDDC -Filter "((SessionSupport -eq `"SingleSession`" -or SessionSupport -eq `"MultiSession`"))" -Skip 0 | Select-Object HostedMachineName,DesktopGroupName | Export-Csv $file1 -Delimiter ";" -Encoding UTF8 –NoTypeInformation
 
foreach ($list in (Get-BrokerMachine  -AdminAddress $XDDC -Filter "((SessionSupport -eq `"SingleSession`" -or SessionSupport -eq `"MultiSession`"))" -Skip 0 | Select-Object HostedMachineName,DesktopGroupName)) {
 
    if ($list.HostedMachineName -eq $null) {
 
    Write-Host "No Machine" -ForegroundColor Red
 
    }
 
    Else { Write-Host $list.HostedMachineName -ForegroundColor Green 
 
 
 
Set-VM $list.HostedMachineName -Notes $list.DesktopGroupName -Confirm:$false
Set-ADComputer $list.HostedMachineName -Description $list.DesktopGroupName -Verbose
 
    }
}
 
Disconnect-VIServer $vcenter -Confirm:$false

Thank to Rodolphe Herpeux who simplified the first version of this script I wrote.

9 28