2015-08-05 2 views
2

I извинения, если вопрос не совсем верно, так как я не уверен в правильности формулировки/синтаксис этого вопроса ...Сравнивая 2 объекта в PowerCLI

Get-View -ViewType VirtualMachine | Where { $_.Guest.GuestFullname} | Sort Name |Select-Object Name, @{N=”SelectedOS”;E={$_.Guest.GuestFullName}}, @{N=”InstalledOS”;E={$_.Summary.Config.GuestFullName}} | Out-GridView 

Как бы сравнить и соответствовать данные «SelectedOS» и «InstalledOS» для вывода.

Так, например, текущий скрипт выведет:

Name               SelectedOS             InstalledOS 
----               ----------             ----------- 
VM-Demo-CCMIVR-1           Microsoft Windows Server 2012 (64-bit)      Microsoft Windows Server 2012 (64-bit) 
VM-Demo-vMCD2           Other 2.6.x Linux (32-bit)         CentOS 4/5/6 (32-bit) 
VM-Inf-CUC-10-5           Red Hat Enterprise Linux 6 (64-bit)       Red Hat Enterprise Linux 6 (64-bit) 
VM-Inf-CUCM-10-5           Red Hat Enterprise Linux 6 (64-bit)       Red Hat Enterprise Linux 6 (64-bit) 
VM-Inf-DC01            Microsoft Windows Server 2012 (64-bit)      Microsoft Windows Server 2012 (64-bit) 

Однако я только хочу видеть:

Name               SelectedOS             InstalledOS 
----               ----------             ----------- 
VM-Demo-CCMIVR-1           Microsoft Windows Server 2012 (64-bit)      Microsoft Windows Server 2012 (64-bit) 
VM-Inf-CUC-10-5           Red Hat Enterprise Linux 6 (64-bit)       Red Hat Enterprise Linux 6 (64-bit) 
VM-Inf-CUCM-10-5           Red Hat Enterprise Linux 6 (64-bit)       Red Hat Enterprise Linux 6 (64-bit) 
VM-Inf-DC01            Microsoft Windows Server 2012 (64-bit)      Microsoft Windows Server 2012 (64-bit) 

ответ

3

Если я читаю вас правильно, вы хотите сравнить и только показать машины, где " SelectedOS "и" InstalledOS "- то же самое. Для этого вам понадобится -eq в вашем заявлении Where. Например:

Where { $_.Guest.GuestFullname -eq $_.Summary.Config.GuestFullName } 

Так что ваш код будет.

+1

Возможно, стоит отметить, что, поскольку «SelectedOS -eq InstalledOS», вы, вероятно, могли бы опустить один из двух в выходе. Это может быть только моя сторона OCD выходит! ;) Хороший ответ, кстати, – TheMadTechnician

+0

Это было так очевидно. Я пытался сравнить результат не с исходным запросом. :( –

Смежные вопросы