I Would like to Write-Host current value for $Exists. Don't know how to extract Tag.Name from
com.vmware.cis.tagging.TagAssociationModel
Get-VICredentialStoreItem -File C:\Users\xxxxxxxxxx\AppData\Roaming\VMware\credstore\vicredentials.xml | %{
Connect-VIServer -Server $_.host -User $_.User -Password $_.Password
}
$environmentcsv = "d:\tags\environment.csv"
$CMDBInfo = Import-CSV "$environmentcsv"
$category = "environment"
ForEach ($item in $CMDBInfo)
{
$EnvironmentName = $item.Name
Write-Host "processing" $EnvironmentName
Get-Folder -Name $EnvironmentName -Server (([uri]$vm.ExtensionData.Client.ServiceUrl).Host) | Get-VM | Get-View -Property @("Name") |
Select -Property Name |
Export-CSV D:\tags\"$EnvironmentName.csv" -NoTypeInformation -UseCulture
$DBInfo = Import-CSV D:\tags\"$EnvironmentName.csv"
ForEach ($item in $DBInfo)
{
$Name = $item.Name
$vm = Get-VM -Name $Name
$Exists = Get-TagAssignment -Entity $vm -Server (([uri]$vm.ExtensionData.Client.ServiceUrl).Host) | where{$_.Tag.Category.Name -eq $category}
If ( !$Exists ) {
New-TagAssignment -Entity $vm -Tag $EnvironmentName -Server (([uri]$vm.ExtensionData.Client.ServiceUrl).Host) | Out-Null
Write-Host ".... Assigning tag "$EnvironmentName" in Category "$category" to VM "$Name" "
}
}
}