Andreas Mertens Ответов: 2

Программно смонтировать VHD в виртуальной машине hyper-V (V2)


Я пытаюсь настроить виртуальную машину Hyper-V программно, от начала до конца, использование только C# и WMI Поскольку это происходит в Windows 10, пространство имен WMI виртуализация\V2, который значительно отличается от пространства имен WMI, существовавшего до Windows 8.

На данный момент у меня есть созданная виртуальная машина, и у меня есть созданный виртуальный HD, но чего не хватает, так это возможность подключения виртуального жесткого диска на виртуальной машине.

Я просмотрел интернет и нашел решения для этого в пространстве имен WMI V1, но образцы в V2 отсутствуют. Но из того, что я вижу, мне нужно добавить "синтетический дисковод" к контроллеру IDE в качестве ресурса, а затем добавить на него виртуальный дисковод. Но я получаю ошибку от WMI, говоря, что он не может добавить ресурс.

Я видел много примеров использования PowerShell, но я намерен обернуть это в установщик MSI, чтобы при необходимости установить PowerShell. Я бы предпочел избежать этого, если это вообще возможно.

Что я уже пробовал:

Одна вещь, которую я сделал, - это взял виртуальную машину с подключенным VHD, затем пересек ресурсы, подключенные от виртуального IDE-контроллера, и захватил эту информацию. Затем я взял свою "голую" виртуальную машину и попытался добавить те же ресурсы, но снова это не удалось.

Я также использую WMI Explorer 2.0 (от Vinay Pamnani), который, как я обнаружил, очень полезен для изучения пространства имен WMI, но он не дает никакого представления о том, что мне нужно делать.

Kornfeld Eliyahu Peter

Сценарий PowerShell не очень хорош?

Andreas Mertens

Я выпускаю новый продукт, размещенный в виртуальной машине, для клиентов, которые не очень сложны. Я бы предпочел не устанавливать PowerShell на их машины, если смогу этого избежать.

Kornfeld Eliyahu Peter

PowerShell включен начиная с Windows 7 (v 2.0)...

Andreas Mertens

Это функция, которую можно включить или выключить, и я бы предпочел не иметь дела с добавлением этой функции, если мне это не нужно. И я также не хочу иметь дело с проблемами управления версиями PowerShell.

В основном PowerShell просто вызывает одни и те же объекты и методы WMI, поэтому сделать то же самое в C#должно быть просто. Это все, что я ищу...

2 Ответов

Рейтинг:
18

Andreas Mertens

После долгого просеивания найденных в интернете решений и их опробования я обнаружил следующее: Подключение виртуального жесткого диска для виртуальной машины помощью Hyper-V в пространстве имен WMI В2 – блог Тейлор Браун [^]

Он написан для PowerShell, но точно показывает, как распределять ресурсы. Проблема, которую я вижу в предыдущем решении, заключалась в том, что для второго ресурса (VHD) путь к VHD был применен к Соединение свойство, когда оно должно было быть применено к HostResource собственность.

Из того, что я могу сказать, свойство Connection относится к ресурсам, локальным для виртуальной машины, в то время как свойство HostResource относится к ресурсам, находящимся в хост-системе, на которые должна ссылаться виртуальная машина.


Graeme_Grant

5+ ... молодец! :)

Рейтинг:
0

Andreas Mertens

Я увидел, что проводок, а также. К сожалению, это неверно и не работает.