С помощью VMPlayer возможно ли программно создать общую папку с хостом?

#delphi #vmware #vmware-player

#delphi #vmware #vmware-player

Вопрос:

Ответ предпочтительнее использовать Delphi, но было бы полезно любое решение.

Что я хотел бы сделать, так это создать приложение, которое при запуске из VMPlayer создаст общую папку в известном месте на хосте.

VMPlayer будет работать под управлением Windows XP 32bit, а хост, работающий под управлением ОС Windows, также, вероятно, Windows 7 x64.

Комментарии:

1. Из VMPlayer вы можете вручную создать общую папку для хоста / клиента, перейдя в Настройки / Параметры / Общие папки. Я надеюсь, что смогу создать приложение (что-то, что можно было бы запускать из клиентской ОС), которое могло бы создать такую общую связь в отличие от настройки вручную. Поскольку это VMware Player, и у меня не будет (или не захочется) доступа к хост-системам enduser systems, поэтому я не могу использовать решения, требующие VMware Server или тому подобное.

2. @TheSeven, говоря о виртуализации VMware, вы должны использовать общепринятую терминологию: у вас есть операционная система хоста, работающая под управлением VmPlayer; VmPlayer эмулирует аппаратное обеспечение, и на эмулируемом оборудовании вы запускаете ГОСТЕВУЮ операционную систему. Вы можете запускать свои собственные программы либо на ХОСТЕ, либо в ГОСТЕВОЙ операционной системе. Я не уверен, что означает «внутри VMPlayer»: если вы нажимаете кнопки на самом VMPlayer, вы в основном используете программу, которая запущена в операционной системе хоста. […]

3. […] поскольку вы можете запускать свои программы только на ГОСТЕВОМ компьютере или ХОСТЕ, и вы говорите, что хотите, чтобы ваша программа запускалась «внутри VMPLayer», я предполагаю, что вы хотите, чтобы она запускалась в гостевой операционной системе. Вы не можете создавать общие папки из гостевой операционной системы, это сделало бы продукты VMware непригодными для «тестирования безопасности». Люди часто запускают неизвестное программное обеспечение на VMware, потому что они знают, что это не повлияет на ОС хоста. Но если вредоносное программное обеспечение может создавать общие папки из ГОСТЕВОЙ системы по желанию, оно может заразить ХОСТ!

4. Cosmin — Я уверен, что вы правы в том, что гостевая система не может создать общий ресурс на хосте. Это было бы серьезным нарушением безопасности. Виноват, я не продумал это до конца. Есть ли способ создать общий ресурс программно (или, возможно, с помощью командной строки?) это должно быть сделано со стороны хоста. Спасибо за разъяснения.

Ответ №1:

Существует vmrun.exe утилита, которую можно использовать для управления виртуальной машиной. Посмотрите на:

http://www.vmware.com/support/developer/vix-api/vix110_vmrun_command.pdf

Комментарии:

1. Спасибо за информацию, но я не думаю, что это будет применимо к VMware Player. У меня также не будет доступа к системам конечного пользователя.

2. @TheSeven, прежде всего, это применимо к VmPlayer. Доступны не все функциональные возможности, и я не могу проверить, доступно ли создание общей папки на VmPlayer или нет (я использую Workstation), но, вероятно, это потому, что она не указана как «недоступная». Во-вторых, как вы собираетесь развернуть VmPlayer и образ вашей виртуальной машины без доступа к системе пользователя? VmPlayer является чрезвычайно навязчивым, он устанавливает несколько драйверов, может потребовать перезагрузки: если вы можете это сделать, вы наверняка можете запустить скрипт для создания общей папки.

Ответ №2:

Вы должны думать о своем виртуализированном оборудовании VMPlayer как о независимом компьютере, выполняющем свою собственную независимую работу на своем собственном оборудовании. Вот так работает виртуализация!

Технически ХОСТ даже не знает, что он «запущен» на другом компьютере, поэтому он не собирается относиться к нему по-другому. То же самое верно и для ГОСТЕВОЙ операционной системы: вы используете операционную систему «vanila», у нее нет причин относиться к своему ХОСТ-компьютеру по-другому, для GUST ХОСТ — это просто другой компьютер, доступный через локальную сеть.

При этом вы можете переписать свой вопрос следующим образом:

Я хотел бы создать приложение, которое при запуске с одного компьютера создаст общую папку в известном расположении на другом компьютере. На одном компьютере будет установлена 32-разрядная версия Windows XP, на другом — другая версия Windows, вероятно, Windows 7 x64

Ответ: Конечно, вы не можете этого сделать: это создало бы брешь в системе безопасности! Если вы можете создать общую папку, любой может создать общую папку. Любой может создать общую папку в любом месте на вашем компьютере!

В заключение, если бы вы могли запустить свое приложение на ХОСТЕ, а не на ГОСТЕВОЙ, вы могли бы использовать VMware API, чтобы что-то сделать, но AFAIK API недоступен с бесплатным VmPlayer. Кроме того, если бы вы могли запускать приложения как на гостевом, так и на хостовом устройствах, вы могли бы делать все, что захотите.

Комментарии:

1. Я частично не согласен: если и хост, и VM-client работают в одном домене с доверительными отношениями, то да, это должно быть выполнимо. Если домена нет, то вам нужно быть частью той же рабочей группы (хотя не уверен, сможете ли вы создавать общие папки в последнем случае).

2. @Johan, самая важная часть моего ответа заключается в том, что в «оборудовании» VMware нет ничего особенного; Опять же, если два обычных компьютера являются частью одного и того же домена с доверительными отношениями, они могли бы это сделать, часть «VM» не имеет значения. Не то чтобы я что-то знал о доменах…

3. Вы можете вручную создать общий диск в VMware Workstation или VMware Player, который подключается к одной или нескольким папкам на хост-компьютере, перейдя в Настройки / Параметры / Общие папки. У меня есть устаревшее 16-разрядное приложение, которое используется рядом моих клиентов и которое они не могут запустить при обновлении своих систем, например, до 64-разрядной версии Windows 7. На данный момент обновление приложения невозможно. XPMode с использованием MS Virtual PC не подходит из-за отсутствия общей папки. Ищу способ (отличный от ручного) создать связь общего ресурса хост / клиент.

4. @TheSeven, что ты делаешь "Settings/Options/Shared Folders" ? Я смотрю на свои инструменты VMware (запущенные в гостевой системе), и у меня нет таких опций. Если вы говорите о меню «Настройки» VmPlayer, то технически оно запущено на ГОСТЕВОЙ системе, а не на хосте.

5. Настройки находятся в интерфейсе VMPlayer, а не в инструментах VMware. Изначально я думал, что это было на гостевой стороне. Думая об этом как о части интерфейса, я был бы более склонен сказать, что это было частью хоста. Интересный вопрос, я недостаточно знаю о внутренних компонентах VMware, чтобы делать больше, чем строить предположения.