如果标记名称中包含空格,则如何将vmware标记添加到虚拟机

时间:2017-02-20 17:29:18

标签: powershell vmware powercli

我正在尝试创建一个添加"标签"到我的虚拟机。我正在使用Powershell / PowerCLI来做到这一点。如果标签名称中没有空格,我可以添加名称。例如,Application标签是名称"测试"它将它添加到服务器罚款。但如果所有者的名字是" John Doe"它不会因为空间而占用。到目前为止,这是myscript:

$vCenter = "test.com"
$ServerName = "test1"

Add-PSSnapin VMware.VimAutomation.Core
Connect-ViServer -server $vCenter -ErrorAction Stop 

$AppTag = Read-Host "What is the Application tag name for $ServerName"
$myTag1 = Get-Tag $AppTag
$myVM = Get-VM "$ServerName"
New-TagAssignment -Tag $myTag1 -Entity $myVM

$AppOwnerTag = Read-Host "What is the Application Owner tag name for $ServerName"
$myTag2 = Get-Tag $AppOwnerTag
$myVM = Get-VM $ServerName
New-TagAssignment -Tag $myTag2 -Entity $myVM

$CreatedByTag = Read-Host "What is the Created By tag name for $ServerName"
$myTag3 = Get-Tag $CreatedByTag
$myVM = Get-VM $ServerName
New-TagAssignment -Tag $myTag3 -Entity $myVM

1 个答案:

答案 0 :(得分:0)

是的,您可以在标记名称中使用空格。您遇到的问题可能是由于PowerShell的版本,或者如果您在vCenters中有多个具有相同名称或相同标记的标记,则会出现问题:

  • 首先使用命令Get-PowerCLIVersion确认您的PowerShell VMware PowerCLI版本至少为6.5.3,或者如果您想要使用Get-Module -Name VMware.* | Select Name,Version。根据{{​​3}},New-TagAssignment有一个相关问题并已得到修复。如果您不确定如何升级或安装VMware PowerCLI,如果您按照本VMware PowerCLI Blog for version 6.5.3文章中的说明安装了PackageManager,则可以Import-Module VMware.PowerCLI作为管理员,如此另一个VMware PowerCLI Installation Blog中所述。
  • 另一件事是确认您的查询是否正确且只有一个vCenter处于活动状态。例如,您可能需要将命令修改为New-TagAssignment -Tag $myTag3 -Entity $myVM -Server $vCenter。 $ vCenter与Connect-VIServer $vCenter时使用的名称相同,在您的情况下,我假设为“test.com”。如果您在执行此查询之前登录了其他vCenter,而不是其他vCenters,则可能是您的修复程序。例如,我没有在脚本底部看到Disconnect-VIServer $vCenter,这就是我建议的原因。
  • 最后要尝试的是,您可能在多个标签类别中使用相同的标签名称。 4sysops中的建议是通过在命令中指定类别来明确获取标记,例如$myTag1 = Get-Tag $AppTag -Category $myCategory。另一个不太理想的选项可能是重命名这些类别中的标签,使它们不重叠。