 |
|
breakfruit |
19-05-2015 13:58 2508993 |
Использование объекта как значения
Друзья, камнями не закидывайте и палками не бейте. Только начал разбираться в PS.
Задача, казалось бы простая. Есть список VM, из которого нужно взять конкретный ID и использовать его для работы стороннего командлета. Скрипт выглядит банально
Код:
Add-PSSnapin SecurityManager
$script:vm_name=Read-Host "Virtual Machine name is..."
$script:vm_group=Read-Host "Group name is..."
$script:vm_ident=Get-VM "$vm_name" | Select ID
$script:vm_group_id=foreach ($vm_group in Get-VMGroups | Select-Object ID)
{
Set-VMGroupsMembership -VMId $vm_ident -GroupsList $vm_group_id
}
На выходе получаю
Код:
Cannot bind parameter 'VMId'. Cannot convert value
"@{Id=e0f63469-1c5e-4c8e-a0ae-5b92e7cfe1da}" to type "System.Guid". Error: "Cannot convert
the "@{Id=e0f63469-1c5e-4c8e-a0ae-5b92e7cfe1da}" value of type
"Selected.Microsoft.HyperV.PowerShell.VirtualMachine" to type "System.Guid".
Нужно именно значение. Это реально сделать? Загуглился уже весь, глаза в мыле.
|
Я скрипт не разбирал, да и VM под рукой нет, но по сообщению об ошибке явно видна попытка автоматического преобразования хэш-таблицы в объект типа «System.Guid».
|
Select-Object ID заменить на Select-Object -Expand ID
|
breakfruit |
19-05-2015 15:32 2509025 |
Цитата:
Цитата Iska
Я скрипт не разбирал, да и VM под рукой нет, но по сообщению об ошибке явно видна попытка автоматического преобразования хэш-таблицы в объект типа «System.Guid». »
|
Возможно, но как я уже сказал - я чайник. Мне не о много, увы, это сказало... =( Вернее, перевести-то и додумать, что он НЕ может преобразовать объект в guid - я могу :)
Цитата:
Цитата Kazun
Select-Object ID заменить на Select-Object -Expand ID »
|
Это интереснее. Только у меня доступен вариант -ExpandProperty. Полагаю, версия PS свежее.
В принципе, скрипт затыкается на командлете стороннего разработчика, так что спасибо за оперативную помощь!
|
Время: 02:58.
© OSzone.net 2001-